Making whitelist rejection string configurable

Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/69c1375a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/69c1375a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/69c1375a

Branch: refs/heads/master
Commit: 69c1375a7e2788770e3a28cada26465591e367f1
Parents: dac34c4
Author: Kevin Hawkins <[email protected]>
Authored: Tue Oct 30 10:00:36 2012 -0700
Committer: Andrew Grieve <[email protected]>
Committed: Wed Nov 7 11:21:27 2012 -0500

----------------------------------------------------------------------
 CordovaLib/Classes/CDVWhitelist.h   |    3 +++
 CordovaLib/Classes/CDVWhitelist.m   |    7 +++++--
 CordovaLibTests/CDVWhitelistTests.m |   16 ++++++++++++++++
 3 files changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/69c1375a/CordovaLib/Classes/CDVWhitelist.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVWhitelist.h 
b/CordovaLib/Classes/CDVWhitelist.h
index 0eb28f9..b848342 100644
--- a/CordovaLib/Classes/CDVWhitelist.h
+++ b/CordovaLib/Classes/CDVWhitelist.h
@@ -19,11 +19,14 @@
 
 #import <Foundation/Foundation.h>
 
+extern NSString * const kCDVDefaultWhitelistRejectionString;
+
 @interface CDVWhitelist : NSObject
 
 @property (nonatomic, readonly, strong) NSArray* whitelist;
 @property (nonatomic, readonly, strong) NSArray* expandedWhitelist;
 @property (nonatomic, readonly, assign) BOOL allowAll;
+@property (nonatomic, copy) NSString *whitelistRejectionFormatString;
 
 - (id)initWithArray:(NSArray*)array;
 - (BOOL)URLIsAllowed:(NSURL*)url;

http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/69c1375a/CordovaLib/Classes/CDVWhitelist.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVWhitelist.m 
b/CordovaLib/Classes/CDVWhitelist.m
index ad2a0c6..1bf0f56 100644
--- a/CordovaLib/Classes/CDVWhitelist.m
+++ b/CordovaLib/Classes/CDVWhitelist.m
@@ -19,6 +19,8 @@
 
 #import "CDVWhitelist.h"
 
+NSString * const kCDVDefaultWhitelistRejectionString = @"ERROR whitelist 
rejection: url='%@'";
+
 @interface CDVWhitelist ()
 
 @property (nonatomic, readwrite, strong) NSArray* whitelist;
@@ -31,7 +33,7 @@
 
 @implementation CDVWhitelist
 
-@synthesize whitelist, expandedWhitelist, allowAll;
+@synthesize whitelist, expandedWhitelist, allowAll, 
whitelistRejectionFormatString;
 
 - (id)initWithArray:(NSArray*)array
 {
@@ -40,6 +42,7 @@
         self.whitelist = array;
         self.expandedWhitelist = nil;
         self.allowAll = NO;
+        self.whitelistRejectionFormatString = 
kCDVDefaultWhitelistRejectionString;
         [self processWhitelist];
     }
 
@@ -183,7 +186,7 @@
 
 - (NSString*)errorStringForURL:(NSURL*)url
 {
-    return [NSString stringWithFormat:@"ERROR whitelist rejection: url='%@'", 
[url absoluteString]];
+    return [NSString stringWithFormat:self.whitelistRejectionFormatString, 
[url absoluteString]];
 }
 
 @end

http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/69c1375a/CordovaLibTests/CDVWhitelistTests.m
----------------------------------------------------------------------
diff --git a/CordovaLibTests/CDVWhitelistTests.m 
b/CordovaLibTests/CDVWhitelistTests.m
index cd5cca3..2e26779 100644
--- a/CordovaLibTests/CDVWhitelistTests.m
+++ b/CordovaLibTests/CDVWhitelistTests.m
@@ -245,4 +245,20 @@
     STAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://google.com";]], nil);
 }
 
+- (void)testWhitelistRejectionString
+{
+    NSArray *allowedHosts = [NSArray 
arrayWithObject:@"http://www.yahoo.com/";];  // Doesn't matter in this test.
+    CDVWhitelist *whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+    
+    NSURL *testUrl = [NSURL URLWithString:@"http://www/google.com";];
+    NSString *errorString = [whitelist errorStringForURL:testUrl];
+    NSString *expectedErrorString = [NSString 
stringWithFormat:kCDVDefaultWhitelistRejectionString, [testUrl absoluteString]];
+    STAssertTrue([expectedErrorString isEqualToString:errorString], @"Default 
error string has an unexpected value.");
+    
+    whitelist.whitelistRejectionFormatString = @"Hey, '%@' is, like, bogus 
man!";
+    errorString = [whitelist errorStringForURL:testUrl];
+    expectedErrorString = [NSString 
stringWithFormat:whitelist.whitelistRejectionFormatString, [testUrl 
absoluteString]];
+    STAssertTrue([expectedErrorString isEqualToString:errorString], 
@"Customized whitelist rejection string has unexpected value.");
+}
+
 @end

Reply via email to