Repository: cordova-ios
Updated Branches:
  refs/heads/master 765065ce3 -> cba612ff0


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVWhitelistTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVWhitelistTests.m 
b/tests/CordovaLibTests/CDVWhitelistTests.m
new file mode 100644
index 0000000..abb984c
--- /dev/null
+++ b/tests/CordovaLibTests/CDVWhitelistTests.m
@@ -0,0 +1,259 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import <XCTest/XCTest.h>
+
+#import "CDVWhitelist.h"
+
+@interface CDVWhitelistTests : XCTestCase
+@end
+
+@implementation CDVWhitelistTests
+
+- (void)setUp
+{
+    [super setUp];
+
+    // setup code here
+}
+
+- (void)tearDown
+{
+    // Tear-down code here.
+
+    [super tearDown];
+}
+
+- (void)testAllowedSchemes
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"*.apache.org",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist schemeIsAllowed:@"http"]);
+    XCTAssertTrue([whitelist schemeIsAllowed:@"https"]);
+    XCTAssertTrue([whitelist schemeIsAllowed:@"ftp"]);
+    XCTAssertTrue([whitelist schemeIsAllowed:@"ftps"]);
+    XCTAssertFalse([whitelist schemeIsAllowed:@"gopher"]);
+}
+
+- (void)testSubdomainWildcard
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"*.apache.org",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://build.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://sub1.sub0.build.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org.ca";]]);
+}
+
+- (void)testCatchallWildcardOnly
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"*",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://build.apache.prg";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftp://MyDangerousSite.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftps://apache.org.SuspiciousSite.com"]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"gopher://apache.org";]]);
+}
+
+- (void)testCatchallWildcardByProto
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"http://*";,
+        @"https://*";,
+        @"ftp://*";,
+        @"ftps://*",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://build.apache.prg";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftp://MyDangerousSite.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftps://apache.org.SuspiciousSite.com"]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"gopher://apache.org";]]);
+}
+
+- (void)testExactMatch
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"www.apache.org",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://www.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://build.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+}
+
+- (void)testNoMatchInQueryParam
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"www.apache.org",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"www.malicious-site.org?url=http://www.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"www.malicious-site.org?url=www.apache.org"]]);
+}
+
+- (void)testIpExactMatch
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"192.168.1.1",
+        @"192.168.2.1",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.1.1";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.2.1";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.3.1";]]);
+}
+
+- (void)testIpWildcardMatch
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"192.168.1.*",
+        @"192.168.2.*",
+        nil];
+    
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org";]]);
+    
+    // Ever since Cordova 3.1, whitelist wildcards are simplified, only "*" 
and "*.apache.org" (subdomain example) are allowed. Therefore the next four 
tests should fail
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.1.1";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.1.2";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.2.1";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.2.2";]]);
+    
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://192.168.3.1";]]);
+}
+
+- (void)testHostnameExtraction
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"http://apache.org/";,
+        @"http://apache.org/foo/bar?x=y";,
+        @"ftp://apache.org/foo/bar?x=y";,
+        @"ftps://apache.org/foo/bar?x=y",
+        @"http://apache.*/foo/bar?x=y";,
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://apache.org/";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://google.com/";]]);
+}
+
+- (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]];
+
+    XCTAssertTrue([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]];
+    XCTAssertTrue([expectedErrorString isEqualToString:errorString], 
@"Customized whitelist rejection string has unexpected value.");
+}
+
+- (void)testSpecificProtocol
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"http://www.apache.org";,
+        @"cordova://www.google.com",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://www.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"cordova://www.google.com"]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"cordova://www.apache.org"]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://www.google.com";]]);
+}
+
+- (void)testWildcardPlusOtherUrls
+{
+    // test for https://issues.apache.org/jira/browse/CB-3394
+
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"*",
+        @"cordova.apache.org",
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://*.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://www.google.com";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftp://cordova.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://cordova.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://cordova.apache.org";]]);
+}
+
+- (void)testWildcardPlusScheme
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"http://*.apache.org";,
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://www.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://www.google.com";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"ftp://cordova.apache.org";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://cordova.apache.org";]]);
+    XCTAssertFalse([whitelist URLIsAllowed:[NSURL 
URLWithString:@"https://cordova.apache.org";]]);
+}
+
+- (void)testCredentials
+{
+    NSArray* allowedHosts = [NSArray arrayWithObjects:
+        @"http://*.apache.org";,
+        @"http://www.google.com";,
+        nil];
+
+    CDVWhitelist* whitelist = [[CDVWhitelist alloc] 
initWithArray:allowedHosts];
+
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://user:[email protected]";]]);
+    XCTAssertTrue([whitelist URLIsAllowed:[NSURL 
URLWithString:@"http://user:[email protected]";]]);
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/AppDelegate.h
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/AppDelegate.h 
b/tests/CordovaLibTests/CordovaLibApp/AppDelegate.h
new file mode 100644
index 0000000..d26fb8e
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/AppDelegate.h
@@ -0,0 +1,33 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+@class ViewController;
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow* window;
+
+@property (strong, nonatomic) ViewController* viewController;
+
+- (void)createViewController;
+- (void)destroyViewController;
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/AppDelegate.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/AppDelegate.m 
b/tests/CordovaLibTests/CordovaLibApp/AppDelegate.m
new file mode 100644
index 0000000..065abd4
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/AppDelegate.m
@@ -0,0 +1,102 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import "AppDelegate.h"
+
+#import "ViewController.h"
+
+@implementation AppDelegate
+
+@synthesize window = _window;
+@synthesize viewController = _viewController;
+
+- (id)init
+{
+    NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage 
sharedHTTPCookieStorage];
+
+    [cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
+
+    self = [super init];
+    return self;
+}
+
+- (void)createViewController
+{
+    NSAssert(!self.viewController, @"ViewController already created.");
+
+    self.viewController = [[ViewController alloc] init];
+    self.viewController.wwwFolderName = @"www";
+    self.viewController.startPage = @"index.html";
+
+    // NOTE: To customize the view's frame size (which defaults to full 
screen), override
+    // [self.viewController viewWillAppear:] in your view controller.
+
+    self.window.rootViewController = self.viewController;
+}
+
+- (void)destroyViewController
+{
+    self.viewController = nil;
+}
+
+- (BOOL)application:(UIApplication*)application 
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
+{
+    CGRect screenBounds = [[UIScreen mainScreen] bounds];
+
+    self.window = [[UIWindow alloc] initWithFrame:screenBounds];
+    self.window.autoresizesSubviews = YES;
+
+    // Create the main view on start-up only when not running unit tests.
+    if (!NSClassFromString(@"CDVWebViewTest")) {
+        [self createViewController];
+    }
+
+    [self.window makeKeyAndVisible];
+
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication*)application
+{
+    // Sent when the application is about to move from active to inactive 
state. This can occur for certain types of temporary interruptions (such as an 
incoming phone call or SMS message) or when the user quits the application and 
it begins the transition to the background state.
+    // Use this method to pause ongoing tasks, disable timers, and throttle 
down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication*)application
+{
+    // Use this method to release shared resources, save user data, invalidate 
timers, and store enough application state information to restore your 
application to its current state in case it is terminated later.
+    // If your application supports background execution, this method is 
called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication*)application
+{
+    // Called as part of the transition from the background to the inactive 
state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication*)application
+{
+    // Restart any tasks that were paused (or not yet started) while the 
application was inactive. If the application was previously in the background, 
optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication*)application
+{
+    // Called when the application is about to terminate. Save data if 
appropriate. See also applicationDidEnterBackground:.
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/CordovaLibApp-Info.plist
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/CordovaLibApp-Info.plist 
b/tests/CordovaLibTests/CordovaLibApp/CordovaLibApp-Info.plist
new file mode 100644
index 0000000..6c21097
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/CordovaLibApp-Info.plist
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>en</string>
+       <key>CFBundleDisplayName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundleExecutable</key>
+       <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIdentifier</key>
+       
<string>org.apache.cordova.cordovalibapptests.${PRODUCT_NAME:rfc1034identifier}</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundlePackageType</key>
+       <string>APPL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.0</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>LSRequiresIPhoneOS</key>
+       <true/>
+       <key>UIRequiredDeviceCapabilities</key>
+       <array>
+               <string>armv7</string>
+       </array>
+       <key>UISupportedInterfaceOrientations</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
+       <key>UISupportedInterfaceOrientations~ipad</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationPortraitUpsideDown</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/ViewController.h
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/ViewController.h 
b/tests/CordovaLibTests/CordovaLibApp/ViewController.h
new file mode 100644
index 0000000..befeaae
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/ViewController.h
@@ -0,0 +1,25 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import <UIKit/UIKit.h>
+#import "CDVViewController.h"
+
+@interface ViewController : CDVViewController
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/ViewController.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/ViewController.m 
b/tests/CordovaLibTests/CordovaLibApp/ViewController.m
new file mode 100644
index 0000000..7de6791
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/ViewController.m
@@ -0,0 +1,53 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import "ViewController.h"
+
+@interface ViewController ()
+
+@end
+
+@implementation ViewController
+
+- (void)viewWillAppear:(BOOL)animated
+{
+    // View defaults to full size.  If you want to customize the view's size, 
or its subviews (e.g. webView),
+    // you can do so here.
+
+    [super viewWillAppear:animated];
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+    // Do any additional setup after loading the view, typically from a nib.
+}
+
+- (void)viewDidUnload
+{
+    [super viewDidUnload];
+    // Release any retained subviews of the main view.
+}
+
+- 
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+    return [super shouldAutorotateToInterfaceOrientation:interfaceOrientation];
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/config.xml
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/config.xml 
b/tests/CordovaLibTests/CordovaLibApp/config.xml
new file mode 100644
index 0000000..1fcc8d7
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/config.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<widget xmlns     = "http://www.w3.org/ns/widgets";
+        id        = "io.cordova.helloCordova"
+        version   = "2.0.0">
+    <name>Hello Cordova</name>
+
+    <description>
+        A sample Apache Cordova application that responds to the deviceready 
event.
+    </description>
+
+    <author href="http://cordova.io"; email="[email protected]">
+        Apache Cordova Team
+    </author>
+
+    <access origin="*"/>
+
+    <!-- <content src="http://mysite.com/myapp.html"; /> for external pages -->
+    <content src="index.html" />
+
+    <!-- Preferences for iOS -->
+    <preference name="AllowInlineMediaPlayback" value="false" />
+    <preference name="BackupWebStorage" value="cloud" />
+    <preference name="DisallowOverscroll" value="false" />
+    <preference name="EnableViewportScale" value="false" />
+    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
+    <preference name="MediaPlaybackRequiresUserAction" value="false" />
+    <preference name="SuppressesIncrementalRendering" value="false" />
+    <preference name="TopActivityIndicator" value="gray" />
+    <preference name="GapBetweenPages" value="0" />
+    <preference name="PageLength" value="0" />
+    <preference name="PaginationBreakingMode" value="page" /> <!-- page, 
column -->
+    <preference name="PaginationMode" value="unpaginated" /> <!-- unpaginated, 
leftToRight, topToBottom, bottomToTop, rightToLeft -->
+
+    <feature name="LocalStorage">
+        <param name="ios-package" value="CDVLocalStorage"/>
+    </feature>
+</widget>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/en.lproj/InfoPlist.strings
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/en.lproj/InfoPlist.strings 
b/tests/CordovaLibTests/CordovaLibApp/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..01d5c8c
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/en.lproj/InfoPlist.strings
@@ -0,0 +1,20 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+ http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+/* Localized versions of Info.plist keys */
+

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/main.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/main.m 
b/tests/CordovaLibTests/CordovaLibApp/main.m
new file mode 100644
index 0000000..120ac53
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/main.m
@@ -0,0 +1,29 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+#import "AppDelegate.h"
+
+int main(int argc, char* argv[])
+{
+    @autoreleasepool {
+        return UIApplicationMain(argc, argv, nil, 
NSStringFromClass([AppDelegate class]));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibApp/www/index.html
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/www/index.html 
b/tests/CordovaLibTests/CordovaLibApp/www/index.html
new file mode 100644
index 0000000..7f8bc5a
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibApp/www/index.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+-->
+  <head>
+  <title></title>
+  
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, 
maximum-scale=1.0, user-scalable=no;" />
+       <meta charset="utf-8">
+
+
+       <!-- iPad/iPhone specific css below, add after your main css >
+       <link rel="stylesheet" media="only screen and (max-device-width: 
1024px)" href="ipad.css" type="text/css" />            
+       <link rel="stylesheet" media="only screen and (max-device-width: 
480px)" href="iphone.css" type="text/css" />           
+       -->
+       <!-- If your application is targeting iOS BEFORE 4.0 you MUST put 
json2.js from http://www.JSON.org/json2.js into your www directory and include 
it here -->
+       <script type="text/javascript" charset="utf-8" 
src="cordova.js"></script>
+    <script type="text/javascript">
+
+
+       // If you want to prevent dragging, uncomment this section
+       /*
+       function preventBehavior(e) 
+       { 
+      e.preventDefault(); 
+    };
+       document.addEventListener("touchmove", preventBehavior, false);
+       */
+       
+       /* If you are supporting your own protocol, the var invokeString will 
contain any arguments to the app launch.
+       see 
http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
+       for more details -jm */
+       /*
+       function handleOpenURL(url)
+       {
+               // TODO: do something with the url passed in.
+       }
+       */
+       
+       function onBodyLoad()
+       {               
+               document.addEventListener("deviceready", onDeviceReady, false);
+       }
+       
+       /* When this function is called, Cordova has been initialized and is 
ready to roll */
+       /* If you are supporting your own protocol, the var invokeString will 
contain any arguments to the app launch.
+       see 
http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
+       for more details -jm */
+       function onDeviceReady()
+       {
+    // Used by unit tests to tell when the page is loaded.
+    window.pageIsLoaded = true;
+               // do your thing!
+               console.log("Cordova is working")
+       }
+    
+    </script>
+  </head>
+  <body onload="onBodyLoad()">
+       <h1>Hey, it's Cordova!</h1>
+       <ol>
+               <li>Check your console log for any white-list rejection 
errors.</li>
+               <li>Add your allowed <strong>hosts</strong> in config.xml as 
access tags and set the origin attribute. (wildcards OK, don't enter the URL 
scheme)</li>
+       </ol>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaLibTests-Info.plist
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibTests-Info.plist 
b/tests/CordovaLibTests/CordovaLibTests-Info.plist
new file mode 100644
index 0000000..a57a78d
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaLibTests-Info.plist
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+-->
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>en</string>
+       <key>CFBundleExecutable</key>
+       <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIdentifier</key>
+       <string>org.apache.cordova.${PRODUCT_NAME:rfc1034identifier}</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.0</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1</string>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj 
b/tests/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..e1bab9e
--- /dev/null
+++ b/tests/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
@@ -0,0 +1,715 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 46;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               3019D58D1918C00C00D72DCC /* XCTest.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 3019D58B1918BFF800D72DCC /* XCTest.framework */; 
};
+               302193F91745430F00BC8D2B /* ImageIO.framework in Frameworks */ 
= {isa = PBXBuildFile; fileRef = 302193F81745430F00BC8D2B /* ImageIO.framework 
*/; };
+               3035621714104C34006C2D43 /* CDVWhitelistTests.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 30356213141049E1006C2D43 /* CDVWhitelistTests.m 
*/; };
+               303A406A152124BB00182201 /* UIKit.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 686357AA141002F100DF4CF2 /* UIKit.framework */; 
};
+               303A406B152124BB00182201 /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 686357AC141002F100DF4CF2 /* 
Foundation.framework */; };
+               303A406C152124BB00182201 /* CoreGraphics.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357AE141002F100DF4CF2 /* 
CoreGraphics.framework */; };
+               303A4072152124BB00182201 /* InfoPlist.strings in Resources */ = 
{isa = PBXBuildFile; fileRef = 303A4070152124BB00182201 /* InfoPlist.strings 
*/; };
+               303A4074152124BB00182201 /* main.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 303A4073152124BB00182201 /* main.m */; };
+               303A4078152124BB00182201 /* AppDelegate.m in Sources */ = {isa 
= PBXBuildFile; fileRef = 303A4077152124BB00182201 /* AppDelegate.m */; };
+               303A407B152124BB00182201 /* ViewController.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 303A407A152124BB00182201 /* ViewController.m */; 
};
+               30610C9219AD9B95000B3781 /* CDVCommandDelegateTests.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 30610C9119AD9B95000B3781 /* 
CDVCommandDelegateTests.m */; };
+               3062D1AE151D4D9D000D9128 /* CDVLocalStorageTests.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = 3062D1AD151D4D9D000D9128 /* 
CDVLocalStorageTests.m */; };
+               30B342F515224B360070E6A5 /* CDVWebViewTest.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 30B342F415224B360070E6A5 /* CDVWebViewTest.m */; 
};
+               30D1B08C15A2B36D0060C291 /* CDVBase64Tests.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 30D1B08B15A2B36D0060C291 /* CDVBase64Tests.m */; 
};
+               30F8AE0515212587006625B3 /* AddressBook.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 68A32D7414103017006B237C /* 
AddressBook.framework */; };
+               30F8AE0615212587006625B3 /* AddressBookUI.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CC14100AAD00DF4CF2 /* 
AddressBookUI.framework */; };
+               30F8AE0715212587006625B3 /* AudioToolbox.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CE14100ADA00DF4CF2 /* 
AudioToolbox.framework */; };
+               30F8AE0815212587006625B3 /* AVFoundation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CF14100ADB00DF4CF2 /* 
AVFoundation.framework */; };
+               30F8AE0915212587006625B3 /* CoreLocation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D014100ADE00DF4CF2 /* 
CoreLocation.framework */; };
+               30F8AE0A15212587006625B3 /* CoreMedia.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 686357DC14100B1600DF4CF2 /* 
CoreMedia.framework */; };
+               30F8AE0B15212587006625B3 /* SystemConfiguration.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D414100AF200DF4CF2 /* 
SystemConfiguration.framework */; };
+               30F8AE0C152125B6006625B3 /* MobileCoreServices.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D214100AE700DF4CF2 /* 
MobileCoreServices.framework */; };
+               30F8AE1D152129DA006625B3 /* www in Resources */ = {isa = 
PBXBuildFile; fileRef = 30F8AE1C152129DA006625B3 /* www */; };
+               686357B5141002F200DF4CF2 /* InfoPlist.strings in Resources */ = 
{isa = PBXBuildFile; fileRef = 686357B3141002F200DF4CF2 /* InfoPlist.strings 
*/; };
+               686357BA141002F200DF4CF2 /* 
CDVPluginResultJSONSerializationTests.m in Sources */ = {isa = PBXBuildFile; 
fileRef = 686357B9141002F200DF4CF2 /* CDVPluginResultJSONSerializationTests.m 
*/; };
+               68A32D7514103017006B237C /* AddressBook.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 68A32D7414103017006B237C /* 
AddressBook.framework */; };
+               68A32D7614103078006B237C /* CoreMedia.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 686357DC14100B1600DF4CF2 /* 
CoreMedia.framework */; };
+               68A32D7714103082006B237C /* AudioToolbox.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CE14100ADA00DF4CF2 /* 
AudioToolbox.framework */; };
+               68A32D781410308B006B237C /* AVFoundation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CF14100ADB00DF4CF2 /* 
AVFoundation.framework */; };
+               68A32D7914103097006B237C /* CoreLocation.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D014100ADE00DF4CF2 /* 
CoreLocation.framework */; };
+               68A32D7A141030AB006B237C /* MobileCoreServices.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D214100AE700DF4CF2 /* 
MobileCoreServices.framework */; };
+               68A32D7B141030C8006B237C /* SystemConfiguration.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357D414100AF200DF4CF2 /* 
SystemConfiguration.framework */; };
+               68A32D7C141030D0006B237C /* AddressBookUI.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357CC14100AAD00DF4CF2 /* 
AddressBookUI.framework */; };
+               68A32D7D141030E4006B237C /* CoreGraphics.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 686357AE141002F100DF4CF2 /* 
CoreGraphics.framework */; };
+               68A32D7E141030EB006B237C /* UIKit.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 686357AA141002F100DF4CF2 /* UIKit.framework */; 
};
+               68A32D7F141030F3006B237C /* Foundation.framework in Frameworks 
*/ = {isa = PBXBuildFile; fileRef = 686357AC141002F100DF4CF2 /* 
Foundation.framework */; };
+               7E91406017711D88002C6A3F /* CDVWebViewDelegateTests.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 7E91405F17711D88002C6A3F /* 
CDVWebViewDelegateTests.m */; };
+               7EF33BD71911ABA20048544E /* [email protected] in Resources */ 
= {isa = PBXBuildFile; fileRef = 7EF33BD61911ABA20048544E /* 
[email protected] */; };
+               8220B5C216D541BD00EC3921 /* AssetsLibrary.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 8220B5C116D541BD00EC3921 /* 
AssetsLibrary.framework */; };
+               8220B5C616D542F500EC3921 /* AssetsLibrary.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 8220B5C116D541BD00EC3921 /* 
AssetsLibrary.framework */; };
+               EB3B34E9161B5532003DBE7D /* libCordova.a in Frameworks */ = 
{isa = PBXBuildFile; fileRef = EB3B34E6161B5454003DBE7D /* libCordova.a */; };
+               EB89634A15FE66EA00E12277 /* CDVInvokedUrlCommandTests.m in 
Sources */ = {isa = PBXBuildFile; fileRef = EB89634915FE66EA00E12277 /* 
CDVInvokedUrlCommandTests.m */; };
+               EB96677216ADBCF500D86CDF /* CDVUserAgentTest.m in Sources */ = 
{isa = PBXBuildFile; fileRef = EB96677116ADBCF500D86CDF /* CDVUserAgentTest.m 
*/; };
+               EBA3554615A731F100F4DE24 /* CDVFakeFileManager.m in Sources */ 
= {isa = PBXBuildFile; fileRef = EBA3554515A731F100F4DE24 /* 
CDVFakeFileManager.m */; };
+               EBA7F20517962CCD001A0CE6 /* CDVStartPageTests.m in Sources */ = 
{isa = PBXBuildFile; fileRef = EBA7F20417962CCD001A0CE6 /* CDVStartPageTests.m 
*/; };
+               F8EB14D1165FFD3200616F39 /* config.xml in Resources */ = {isa = 
PBXBuildFile; fileRef = F8EB14D0165FFD3200616F39 /* config.xml */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+               30F8AE3215212F07006625B3 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 0867D690FE84028FC02AAC07 /* Project 
object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 303A4067152124BB00182201;
+                       remoteInfo = CordovaLibApp;
+               };
+               7E73351317E27B4E00AB7A3F /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = EB37018115D18B2D00BEBC43 /* 
CordovaLib.xcodeproj */;
+                       proxyType = 1;
+                       remoteGlobalIDString = D2AAC07D0554694100DB518D;
+                       remoteInfo = CordovaLib;
+               };
+               EB3B34E5161B5454003DBE7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = EB37018115D18B2D00BEBC43 /* 
CordovaLib.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 68A32D7114102E1C006B237C;
+                       remoteInfo = CordovaLib;
+               };
+               EB3B34E7161B552E003DBE7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = EB37018115D18B2D00BEBC43 /* 
CordovaLib.xcodeproj */;
+                       proxyType = 1;
+                       remoteGlobalIDString = D2AAC07D0554694100DB518D;
+                       remoteInfo = CordovaLib;
+               };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+               3019D58B1918BFF800D72DCC /* XCTest.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = 
DEVELOPER_DIR; };
+               302193F81745430F00BC8D2B /* ImageIO.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; 
sourceTree = SDKROOT; };
+               30356213141049E1006C2D43 /* CDVWhitelistTests.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVWhitelistTests.m; sourceTree = "<group>"; };
+               303A4068152124BB00182201 /* CordovaLibApp.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = CordovaLibApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
+               303A406F152124BB00182201 /* CordovaLibApp-Info.plist */ = {isa 
= PBXFileReference; lastKnownFileType = text.plist; path = 
"CordovaLibApp-Info.plist"; sourceTree = "<group>"; };
+               303A4071152124BB00182201 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = text.plist.strings; name = en; path = 
en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               303A4073152124BB00182201 /* main.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; 
sourceTree = "<group>"; };
+               303A4076152124BB00182201 /* AppDelegate.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; 
sourceTree = "<group>"; };
+               303A4077152124BB00182201 /* AppDelegate.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; 
sourceTree = "<group>"; };
+               303A4079152124BB00182201 /* ViewController.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; 
sourceTree = "<group>"; };
+               303A407A152124BB00182201 /* ViewController.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
ViewController.m; sourceTree = "<group>"; };
+               30610C9119AD9B95000B3781 /* CDVCommandDelegateTests.m */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; 
path = CDVCommandDelegateTests.m; sourceTree = "<group>"; };
+               3062D1AD151D4D9D000D9128 /* CDVLocalStorageTests.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVLocalStorageTests.m; sourceTree = "<group>"; };
+               30B342F415224B360070E6A5 /* CDVWebViewTest.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVWebViewTest.m; sourceTree = "<group>"; };
+               30D1B08B15A2B36D0060C291 /* CDVBase64Tests.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVBase64Tests.m; sourceTree = "<group>"; };
+               30F8AE1C152129DA006625B3 /* www */ = {isa = PBXFileReference; 
lastKnownFileType = folder; path = www; sourceTree = "<group>"; };
+               686357A9141002F100DF4CF2 /* CordovaLibTests.xctest */ = {isa = 
PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path 
= CordovaLibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+               686357AA141002F100DF4CF2 /* UIKit.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = 
SDKROOT; };
+               686357AC141002F100DF4CF2 /* Foundation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
Foundation.framework; path = System/Library/Frameworks/Foundation.framework; 
sourceTree = SDKROOT; };
+               686357AE141002F100DF4CF2 /* CoreGraphics.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreGraphics.framework; path = 
System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+               686357B2141002F200DF4CF2 /* CordovaLibTests-Info.plist */ = 
{isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = 
"CordovaLibTests-Info.plist"; sourceTree = "<group>"; };
+               686357B4141002F200DF4CF2 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = text.plist.strings; name = en; path = 
en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               686357B9141002F200DF4CF2 /* 
CDVPluginResultJSONSerializationTests.m */ = {isa = PBXFileReference; 
lastKnownFileType = sourcecode.c.objc; path = 
CDVPluginResultJSONSerializationTests.m; sourceTree = "<group>"; };
+               686357CC14100AAD00DF4CF2 /* AddressBookUI.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AddressBookUI.framework; path = 
System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; };
+               686357CE14100ADA00DF4CF2 /* AudioToolbox.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AudioToolbox.framework; path = 
System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+               686357CF14100ADB00DF4CF2 /* AVFoundation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AVFoundation.framework; path = 
System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+               686357D014100ADE00DF4CF2 /* CoreLocation.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreLocation.framework; path = 
System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
+               686357D214100AE700DF4CF2 /* MobileCoreServices.framework */ = 
{isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = 
MobileCoreServices.framework; path = 
System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+               686357D414100AF200DF4CF2 /* SystemConfiguration.framework */ = 
{isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = 
SystemConfiguration.framework; path = 
System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; 
};
+               686357DC14100B1600DF4CF2 /* CoreMedia.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; 
sourceTree = SDKROOT; };
+               68A32D7414103017006B237C /* AddressBook.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; 
sourceTree = SDKROOT; };
+               7E91405F17711D88002C6A3F /* CDVWebViewDelegateTests.m */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; 
path = CDVWebViewDelegateTests.m; sourceTree = "<group>"; };
+               7EF33BD61911ABA20048544E /* [email protected] */ = {isa = 
PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; 
sourceTree = "<group>"; };
+               8220B5C116D541BD00EC3921 /* AssetsLibrary.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
AssetsLibrary.framework; path = 
System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
+               EB37018115D18B2D00BEBC43 /* CordovaLib.xcodeproj */ = {isa = 
PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = 
CordovaLib.xcodeproj; path = ../CordovaLib/CordovaLib.xcodeproj; sourceTree = 
"<group>"; };
+               EB89634915FE66EA00E12277 /* CDVInvokedUrlCommandTests.m */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = CDVInvokedUrlCommandTests.m; sourceTree = "<group>"; 
};
+               EB96677116ADBCF500D86CDF /* CDVUserAgentTest.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVUserAgentTest.m; sourceTree = "<group>"; };
+               EBA3550F15A5F18900F4DE24 /* CDVWebViewTest.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CDVWebViewTest.h; 
sourceTree = "<group>"; };
+               EBA3554415A731F100F4DE24 /* CDVFakeFileManager.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
CDVFakeFileManager.h; sourceTree = "<group>"; };
+               EBA3554515A731F100F4DE24 /* CDVFakeFileManager.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVFakeFileManager.m; sourceTree = "<group>"; };
+               EBA7F20417962CCD001A0CE6 /* CDVStartPageTests.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CDVStartPageTests.m; sourceTree = "<group>"; };
+               F8EB14D0165FFD3200616F39 /* config.xml */ = {isa = 
PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = 
CordovaLibApp/config.xml; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               303A4065152124BB00182201 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               302193F91745430F00BC8D2B /* ImageIO.framework 
in Frameworks */,
+                               EB3B34E9161B5532003DBE7D /* libCordova.a in 
Frameworks */,
+                               8220B5C216D541BD00EC3921 /* 
AssetsLibrary.framework in Frameworks */,
+                               30F8AE0C152125B6006625B3 /* 
MobileCoreServices.framework in Frameworks */,
+                               30F8AE0515212587006625B3 /* 
AddressBook.framework in Frameworks */,
+                               30F8AE0615212587006625B3 /* 
AddressBookUI.framework in Frameworks */,
+                               30F8AE0715212587006625B3 /* 
AudioToolbox.framework in Frameworks */,
+                               30F8AE0815212587006625B3 /* 
AVFoundation.framework in Frameworks */,
+                               30F8AE0915212587006625B3 /* 
CoreLocation.framework in Frameworks */,
+                               30F8AE0A15212587006625B3 /* CoreMedia.framework 
in Frameworks */,
+                               303A406B152124BB00182201 /* 
Foundation.framework in Frameworks */,
+                               30F8AE0B15212587006625B3 /* 
SystemConfiguration.framework in Frameworks */,
+                               303A406A152124BB00182201 /* UIKit.framework in 
Frameworks */,
+                               303A406C152124BB00182201 /* 
CoreGraphics.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               686357A5141002F100DF4CF2 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               3019D58D1918C00C00D72DCC /* XCTest.framework in 
Frameworks */,
+                               68A32D7514103017006B237C /* 
AddressBook.framework in Frameworks */,
+                               8220B5C616D542F500EC3921 /* 
AssetsLibrary.framework in Frameworks */,
+                               68A32D7614103078006B237C /* CoreMedia.framework 
in Frameworks */,
+                               68A32D7714103082006B237C /* 
AudioToolbox.framework in Frameworks */,
+                               68A32D781410308B006B237C /* 
AVFoundation.framework in Frameworks */,
+                               68A32D7914103097006B237C /* 
CoreLocation.framework in Frameworks */,
+                               68A32D7A141030AB006B237C /* 
MobileCoreServices.framework in Frameworks */,
+                               68A32D7B141030C8006B237C /* 
SystemConfiguration.framework in Frameworks */,
+                               68A32D7C141030D0006B237C /* 
AddressBookUI.framework in Frameworks */,
+                               68A32D7D141030E4006B237C /* 
CoreGraphics.framework in Frameworks */,
+                               68A32D7E141030EB006B237C /* UIKit.framework in 
Frameworks */,
+                               68A32D7F141030F3006B237C /* 
Foundation.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               034768DFFF38A50411DB9C8B /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               686357A9141002F100DF4CF2 /* 
CordovaLibTests.xctest */,
+                               303A4068152124BB00182201 /* CordovaLibApp.app 
*/,
+                       );
+                       name = Products;
+                       sourceTree = CORDOVALIB;
+               };
+               0867D691FE84028FC02AAC07 /* CordovaLib */ = {
+                       isa = PBXGroup;
+                       children = (
+                               7EF33BD61911ABA20048544E /* [email protected] 
*/,
+                               F8EB14D0165FFD3200616F39 /* config.xml */,
+                               EB37018115D18B2D00BEBC43 /* 
CordovaLib.xcodeproj */,
+                               EB3B34F4161B585D003DBE7D /* CordovaLibTests */,
+                               303A406D152124BB00182201 /* CordovaLibApp */,
+                               0867D69AFE84028FC02AAC07 /* Frameworks */,
+                               034768DFFF38A50411DB9C8B /* Products */,
+                       );
+                       name = CordovaLib;
+                       sourceTree = "<group>";
+               };
+               0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               3019D58B1918BFF800D72DCC /* XCTest.framework */,
+                               302193F81745430F00BC8D2B /* ImageIO.framework 
*/,
+                               68A32D7414103017006B237C /* 
AddressBook.framework */,
+                               8220B5C116D541BD00EC3921 /* 
AssetsLibrary.framework */,
+                               686357DC14100B1600DF4CF2 /* CoreMedia.framework 
*/,
+                               686357CE14100ADA00DF4CF2 /* 
AudioToolbox.framework */,
+                               686357CF14100ADB00DF4CF2 /* 
AVFoundation.framework */,
+                               686357D014100ADE00DF4CF2 /* 
CoreLocation.framework */,
+                               686357D214100AE700DF4CF2 /* 
MobileCoreServices.framework */,
+                               686357D414100AF200DF4CF2 /* 
SystemConfiguration.framework */,
+                               686357CC14100AAD00DF4CF2 /* 
AddressBookUI.framework */,
+                               686357AA141002F100DF4CF2 /* UIKit.framework */,
+                               686357AC141002F100DF4CF2 /* 
Foundation.framework */,
+                               686357AE141002F100DF4CF2 /* 
CoreGraphics.framework */,
+                       );
+                       name = Frameworks;
+                       sourceTree = "<group>";
+               };
+               303A406D152124BB00182201 /* CordovaLibApp */ = {
+                       isa = PBXGroup;
+                       children = (
+                               30F8AE1C152129DA006625B3 /* www */,
+                               303A4076152124BB00182201 /* AppDelegate.h */,
+                               303A4077152124BB00182201 /* AppDelegate.m */,
+                               303A4079152124BB00182201 /* ViewController.h */,
+                               303A407A152124BB00182201 /* ViewController.m */,
+                               303A406E152124BB00182201 /* Supporting Files */,
+                       );
+                       path = CordovaLibApp;
+                       sourceTree = "<group>";
+               };
+               303A406E152124BB00182201 /* Supporting Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               303A406F152124BB00182201 /* 
CordovaLibApp-Info.plist */,
+                               303A4070152124BB00182201 /* InfoPlist.strings 
*/,
+                               303A4073152124BB00182201 /* main.m */,
+                       );
+                       name = "Supporting Files";
+                       sourceTree = "<group>";
+               };
+               686357B1141002F200DF4CF2 /* Supporting Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               686357B2141002F200DF4CF2 /* 
CordovaLibTests-Info.plist */,
+                               686357B3141002F200DF4CF2 /* InfoPlist.strings 
*/,
+                       );
+                       name = "Supporting Files";
+                       sourceTree = "<group>";
+               };
+               EB3B34E2161B5454003DBE7D /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               EB3B34E6161B5454003DBE7D /* libCordova.a */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               EB3B34F4161B585D003DBE7D /* CordovaLibTests */ = {
+                       isa = PBXGroup;
+                       children = (
+                               30610C9119AD9B95000B3781 /* 
CDVCommandDelegateTests.m */,
+                               EBA7F20417962CCD001A0CE6 /* CDVStartPageTests.m 
*/,
+                               7E91405F17711D88002C6A3F /* 
CDVWebViewDelegateTests.m */,
+                               EB96677116ADBCF500D86CDF /* CDVUserAgentTest.m 
*/,
+                               EBA3554415A731F100F4DE24 /* 
CDVFakeFileManager.h */,
+                               EBA3554515A731F100F4DE24 /* 
CDVFakeFileManager.m */,
+                               EBA3550F15A5F18900F4DE24 /* CDVWebViewTest.h */,
+                               30B342F415224B360070E6A5 /* CDVWebViewTest.m */,
+                               30D1B08B15A2B36D0060C291 /* CDVBase64Tests.m */,
+                               EB89634915FE66EA00E12277 /* 
CDVInvokedUrlCommandTests.m */,
+                               3062D1AD151D4D9D000D9128 /* 
CDVLocalStorageTests.m */,
+                               686357B9141002F200DF4CF2 /* 
CDVPluginResultJSONSerializationTests.m */,
+                               30356213141049E1006C2D43 /* CDVWhitelistTests.m 
*/,
+                               686357B1141002F200DF4CF2 /* Supporting Files */,
+                       );
+                       name = CordovaLibTests;
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+               303A4067152124BB00182201 /* CordovaLibApp */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 303A4082152124BB00182201 /* 
Build configuration list for PBXNativeTarget "CordovaLibApp" */;
+                       buildPhases = (
+                               303A4064152124BB00182201 /* Sources */,
+                               303A4065152124BB00182201 /* Frameworks */,
+                               303A4066152124BB00182201 /* Resources */,
+                               30F8AE1615212883006625B3 /* Copy cordova.js 
into www directory */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               EB3B34E8161B552E003DBE7D /* PBXTargetDependency 
*/,
+                       );
+                       name = CordovaLibApp;
+                       productName = CordovaLibApp;
+                       productReference = 303A4068152124BB00182201 /* 
CordovaLibApp.app */;
+                       productType = "com.apple.product-type.application";
+               };
+               686357A8141002F100DF4CF2 /* CordovaLibTests */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 686357BD141002F200DF4CF2 /* 
Build configuration list for PBXNativeTarget "CordovaLibTests" */;
+                       buildPhases = (
+                               686357A4141002F100DF4CF2 /* Sources */,
+                               686357A5141002F100DF4CF2 /* Frameworks */,
+                               686357A6141002F100DF4CF2 /* Resources */,
+                               686357A7141002F100DF4CF2 /* ShellScript */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               7E73351417E27B4E00AB7A3F /* PBXTargetDependency 
*/,
+                               30F8AE3315212F07006625B3 /* PBXTargetDependency 
*/,
+                       );
+                       name = CordovaLibTests;
+                       productName = CordovaLibTests;
+                       productReference = 686357A9141002F100DF4CF2 /* 
CordovaLibTests.xctest */;
+                       productType = "com.apple.product-type.bundle.unit-test";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               0867D690FE84028FC02AAC07 /* Project object */ = {
+                       isa = PBXProject;
+                       attributes = {
+                               LastUpgradeCheck = 0510;
+                       };
+                       buildConfigurationList = 1DEB922208733DC00010E9CD /* 
Build configuration list for PBXProject "CordovaTests" */;
+                       compatibilityVersion = "Xcode 3.2";
+                       developmentRegion = English;
+                       hasScannedForEncodings = 1;
+                       knownRegions = (
+                               English,
+                               Japanese,
+                               French,
+                               German,
+                               en,
+                       );
+                       mainGroup = 0867D691FE84028FC02AAC07 /* CordovaLib */;
+                       productRefGroup = 034768DFFF38A50411DB9C8B /* Products 
*/;
+                       projectDirPath = "";
+                       projectReferences = (
+                               {
+                                       ProductGroup = EB3B34E2161B5454003DBE7D 
/* Products */;
+                                       ProjectRef = EB37018115D18B2D00BEBC43 
/* CordovaLib.xcodeproj */;
+                               },
+                       );
+                       projectRoot = "";
+                       targets = (
+                               686357A8141002F100DF4CF2 /* CordovaLibTests */,
+                               303A4067152124BB00182201 /* CordovaLibApp */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+               EB3B34E6161B5454003DBE7D /* libCordova.a */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = archive.ar;
+                       path = libCordova.a;
+                       remoteRef = EB3B34E5161B5454003DBE7D /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+               303A4066152124BB00182201 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               F8EB14D1165FFD3200616F39 /* config.xml in 
Resources */,
+                               7EF33BD71911ABA20048544E /* [email protected] 
in Resources */,
+                               303A4072152124BB00182201 /* InfoPlist.strings 
in Resources */,
+                               30F8AE1D152129DA006625B3 /* www in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               686357A6141002F100DF4CF2 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               686357B5141002F200DF4CF2 /* InfoPlist.strings 
in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+               30F8AE1615212883006625B3 /* Copy cordova.js into www directory 
*/ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                               "",
+                       );
+                       name = "Copy cordova.js into www directory";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "cp ../CordovaLib/cordova.js 
\"$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www/cordova.js\"";
+                       showEnvVarsInLog = 0;
+               };
+               686357A7141002F100DF4CF2 /* ShellScript */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "# Run the unit tests in this test 
bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+               };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+               303A4064152124BB00182201 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               303A4074152124BB00182201 /* main.m in Sources 
*/,
+                               303A4078152124BB00182201 /* AppDelegate.m in 
Sources */,
+                               303A407B152124BB00182201 /* ViewController.m in 
Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               686357A4141002F100DF4CF2 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               3035621714104C34006C2D43 /* CDVWhitelistTests.m 
in Sources */,
+                               686357BA141002F200DF4CF2 /* 
CDVPluginResultJSONSerializationTests.m in Sources */,
+                               3062D1AE151D4D9D000D9128 /* 
CDVLocalStorageTests.m in Sources */,
+                               30B342F515224B360070E6A5 /* CDVWebViewTest.m in 
Sources */,
+                               30D1B08C15A2B36D0060C291 /* CDVBase64Tests.m in 
Sources */,
+                               EBA3554615A731F100F4DE24 /* 
CDVFakeFileManager.m in Sources */,
+                               EB89634A15FE66EA00E12277 /* 
CDVInvokedUrlCommandTests.m in Sources */,
+                               EB96677216ADBCF500D86CDF /* CDVUserAgentTest.m 
in Sources */,
+                               7E91406017711D88002C6A3F /* 
CDVWebViewDelegateTests.m in Sources */,
+                               30610C9219AD9B95000B3781 /* 
CDVCommandDelegateTests.m in Sources */,
+                               EBA7F20517962CCD001A0CE6 /* CDVStartPageTests.m 
in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+               30F8AE3315212F07006625B3 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 303A4067152124BB00182201 /* CordovaLibApp */;
+                       targetProxy = 30F8AE3215212F07006625B3 /* 
PBXContainerItemProxy */;
+               };
+               7E73351417E27B4E00AB7A3F /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = CordovaLib;
+                       targetProxy = 7E73351317E27B4E00AB7A3F /* 
PBXContainerItemProxy */;
+               };
+               EB3B34E8161B552E003DBE7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = CordovaLib;
+                       targetProxy = EB3B34E7161B552E003DBE7D /* 
PBXContainerItemProxy */;
+               };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+               303A4070152124BB00182201 /* InfoPlist.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               303A4071152124BB00182201 /* en */,
+                       );
+                       name = InfoPlist.strings;
+                       sourceTree = "<group>";
+               };
+               686357B3141002F200DF4CF2 /* InfoPlist.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               686357B4141002F200DF4CF2 /* en */,
+                       );
+                       name = InfoPlist.strings;
+                       sourceTree = "<group>";
+               };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+               1DEB922308733DC00010E9CD /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PREPROCESSOR_DEFINITIONS = "";
+                               GCC_THUMB_SUPPORT = NO;
+                               GCC_VERSION = 
com.apple.compilers.llvm.clang.1_0;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+                               LIBRARY_SEARCH_PATHS = 
"${DT_TOOLCHAIN_DIR}/usr/lib/arc";
+                               ONLY_ACTIVE_ARCH = YES;
+                               OTHER_CFLAGS = "-DDEBUG";
+                               OTHER_LDFLAGS = (
+                                       "-all_load",
+                                       "-ObjC",
+                               );
+                               "OTHER_LDFLAGS[sdk=iphonesimulator*]" = (
+                                       "-all_load",
+                                       "-ObjC",
+                                       "-larclite_iphonesimulator",
+                               );
+                               PUBLIC_HEADERS_FOLDER_PATH = include/Cordova;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               USER_HEADER_SEARCH_PATHS = "Classes/**";
+                       };
+                       name = Debug;
+               };
+               1DEB922408733DC00010E9CD /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               GCC_C_LANGUAGE_STANDARD = c99;
+                               GCC_PREPROCESSOR_DEFINITIONS = "";
+                               GCC_THUMB_SUPPORT = NO;
+                               GCC_VERSION = 
com.apple.compilers.llvm.clang.1_0;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+                               LIBRARY_SEARCH_PATHS = 
"${DT_TOOLCHAIN_DIR}/usr/lib/arc";
+                               ONLY_ACTIVE_ARCH = NO;
+                               OTHER_LDFLAGS = (
+                                       "-all_load",
+                                       "-ObjC",
+                               );
+                               "OTHER_LDFLAGS[sdk=iphonesimulator*]" = (
+                                       "-all_load",
+                                       "-ObjC",
+                                       "-larclite_iphonesimulator",
+                               );
+                               PUBLIC_HEADERS_FOLDER_PATH = include/Cordova;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               USER_HEADER_SEARCH_PATHS = "Classes/**";
+                       };
+                       name = Release;
+               };
+               303A4083152124BB00182201 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone 
Developer";
+                               COPY_PHASE_STRIP = NO;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(DEVELOPER_FRAMEWORKS_DIR)",
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_PREPROCESSOR_DEFINITIONS = (
+                                       "DEBUG=1",
+                                       "$(inherited)",
+                               );
+                               GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               INFOPLIST_FILE = 
"CordovaLibApp/CordovaLibApp-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               USER_HEADER_SEARCH_PATHS = "Classes/** 
../CordovaLib/Classes/**";
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Debug;
+               };
+               303A4084152124BB00182201 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone 
Developer";
+                               COPY_PHASE_STRIP = YES;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(DEVELOPER_FRAMEWORKS_DIR)",
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               INFOPLIST_FILE = 
"CordovaLibApp/CordovaLibApp-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+                               OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               USER_HEADER_SEARCH_PATHS = "Classes/** 
../CordovaLib/Classes/**";
+                               VALIDATE_PRODUCT = YES;
+                               WRAPPER_EXTENSION = app;
+                       };
+                       name = Release;
+               };
+               686357BB141002F200DF4CF2 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               BUNDLE_LOADER = 
"$(BUILT_PRODUCTS_DIR)/CordovaLibApp.app/CordovaLibApp";
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       
"$(SDKROOT)/Developer/Library/Frameworks",
+                                       "$(inherited)",
+                                       "$(DEVELOPER_FRAMEWORKS_DIR)",
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+                               GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+                               GCC_THUMB_SUPPORT = NO;
+                               GCC_VERSION = 
com.apple.compilers.llvm.clang.1_0;
+                               INFOPLIST_FILE = "CordovaLibTests-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+                               ONLY_ACTIVE_ARCH = YES;
+                               OTHER_LDFLAGS = (
+                                       "-all_load",
+                                       "-ObjC",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               TEST_HOST = "$(BUNDLE_LOADER)";
+                               USER_HEADER_SEARCH_PATHS = "Classes/** 
../CordovaLib/Classes/**";
+                       };
+                       name = Debug;
+               };
+               686357BC141002F200DF4CF2 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               BUNDLE_LOADER = 
"$(BUILT_PRODUCTS_DIR)/CordovaLibApp.app/CordovaLibApp";
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       
"$(SDKROOT)/Developer/Library/Frameworks",
+                                       "$(inherited)",
+                                       "$(DEVELOPER_FRAMEWORKS_DIR)",
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_THUMB_SUPPORT = NO;
+                               GCC_VERSION = 
com.apple.compilers.llvm.clang.1_0;
+                               INFOPLIST_FILE = "CordovaLibTests-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+                               ONLY_ACTIVE_ARCH = NO;
+                               OTHER_LDFLAGS = (
+                                       "-all_load",
+                                       "-ObjC",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               TEST_HOST = "$(BUNDLE_LOADER)";
+                               USER_HEADER_SEARCH_PATHS = "Classes/** 
../CordovaLib/Classes/**";
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               1DEB922208733DC00010E9CD /* Build configuration list for 
PBXProject "CordovaTests" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               1DEB922308733DC00010E9CD /* Debug */,
+                               1DEB922408733DC00010E9CD /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               303A4082152124BB00182201 /* Build configuration list for 
PBXNativeTarget "CordovaLibApp" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               303A4083152124BB00182201 /* Debug */,
+                               303A4084152124BB00182201 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               686357BD141002F200DF4CF2 /* Build configuration list for 
PBXNativeTarget "CordovaLibTests" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               686357BB141002F200DF4CF2 /* Debug */,
+                               686357BC141002F200DF4CF2 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
----------------------------------------------------------------------
diff --git 
a/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
 
b/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
new file mode 100644
index 0000000..7f8499a
--- /dev/null
+++ 
b/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "303A4067152124BB00182201"
+               BuildableName = "CordovaLibApp.app"
+               BlueprintName = "CordovaLibApp"
+               ReferencedContainer = "container:CordovaTests.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "686357A8141002F100DF4CF2"
+               BuildableName = "CordovaLibTests.xctest"
+               BlueprintName = "CordovaLibTests"
+               ReferencedContainer = "container:CordovaTests.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "303A4067152124BB00182201"
+            BuildableName = "CordovaLibApp.app"
+            BlueprintName = "CordovaLibApp"
+            ReferencedContainer = "container:CordovaTests.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "303A4067152124BB00182201"
+            BuildableName = "CordovaLibApp.app"
+            BlueprintName = "CordovaLibApp"
+            ReferencedContainer = "container:CordovaTests.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "303A4067152124BB00182201"
+            BuildableName = "CordovaLibApp.app"
+            BlueprintName = "CordovaLibApp"
+            ReferencedContainer = "container:CordovaTests.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
----------------------------------------------------------------------
diff --git 
a/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
 
b/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
new file mode 100644
index 0000000..3557154
--- /dev/null
+++ 
b/tests/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "686357A8141002F100DF4CF2"
+               BuildableName = "CordovaLibTests.xctest"
+               BlueprintName = "CordovaLibTests"
+               ReferencedContainer = "container:CordovaTests.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <AdditionalOptions>
+         <AdditionalOption
+            key = "DYLD_INSERT_LIBRARIES"
+            value = "/usr/lib/libgmalloc.dylib"
+            isEnabled = "YES">
+         </AdditionalOption>
+         <AdditionalOption
+            key = "NSZombieEnabled"
+            value = "YES"
+            isEnabled = "YES">
+         </AdditionalOption>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/[email protected]
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/[email protected] 
b/tests/CordovaLibTests/[email protected]
new file mode 100644
index 0000000..0891b7a
Binary files /dev/null and b/tests/CordovaLibTests/[email protected] differ

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/en.lproj/InfoPlist.strings
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/en.lproj/InfoPlist.strings 
b/tests/CordovaLibTests/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..01d5c8c
--- /dev/null
+++ b/tests/CordovaLibTests/en.lproj/InfoPlist.strings
@@ -0,0 +1,20 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+ http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+/* Localized versions of Info.plist keys */
+


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to