You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2014/10/10 01:05:20 UTC
[2/3] Move CordovaLibTests into tests/
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj b/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
deleted file mode 100644
index e1bab9e..0000000
--- a/CordovaLibTests/CordovaTests.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,715 +0,0 @@
-// !$*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 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF33BD61911ABA20048544E /* Default-568h@2x.png */; };
- 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 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; 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 /* Default-568h@2x.png */,
- 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 /* Default-568h@2x.png 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/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
----------------------------------------------------------------------
diff --git a/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme b/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
deleted file mode 100644
index 7f8499a..0000000
--- a/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibApp.xcscheme
+++ /dev/null
@@ -1,95 +0,0 @@
-<?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/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
----------------------------------------------------------------------
diff --git a/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme b/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
deleted file mode 100644
index 3557154..0000000
--- a/CordovaLibTests/CordovaTests.xcodeproj/xcshareddata/xcschemes/CordovaLibTests.xcscheme
+++ /dev/null
@@ -1,62 +0,0 @@
-<?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/CordovaLibTests/Default-568h@2x.png
----------------------------------------------------------------------
diff --git a/CordovaLibTests/Default-568h@2x.png b/CordovaLibTests/Default-568h@2x.png
deleted file mode 100644
index 0891b7a..0000000
Binary files a/CordovaLibTests/Default-568h@2x.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/CordovaLibTests/en.lproj/InfoPlist.strings
----------------------------------------------------------------------
diff --git a/CordovaLibTests/en.lproj/InfoPlist.strings b/CordovaLibTests/en.lproj/InfoPlist.strings
deleted file mode 100644
index 01d5c8c..0000000
--- a/CordovaLibTests/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- 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/CDVBase64Tests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVBase64Tests.m b/tests/CordovaLibTests/CDVBase64Tests.m
new file mode 100644
index 0000000..744601f
--- /dev/null
+++ b/tests/CordovaLibTests/CDVBase64Tests.m
@@ -0,0 +1,64 @@
+/*
+ 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 "NSData+Base64.h"
+
+@interface CDVBase64Tests : XCTestCase
+@end
+
+@implementation CDVBase64Tests
+
+- (void)setUp
+{
+ [super setUp];
+
+ // setup code here
+}
+
+- (void)tearDown
+{
+ // Tear-down code here.
+
+ [super tearDown];
+}
+
+- (void)testBase64Encode
+{
+ NSString* decodedString = @"abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&";
+ NSData* decodedData = [decodedString dataUsingEncoding:NSUTF8StringEncoding];
+
+ NSString* expectedEncodedString = @"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwIUAjJCVeJg==";
+ NSString* actualEncodedString = [decodedData base64EncodedString];
+
+ XCTAssertTrue([expectedEncodedString isEqualToString:actualEncodedString]);
+}
+
+- (void)testBase64Decode
+{
+ NSString* encodedString = @"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwIUAjJCVeJg==";
+ NSString* decodedString = @"abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&";
+ NSData* encodedData = [decodedString dataUsingEncoding:NSUTF8StringEncoding];
+ NSData* decodedData = [NSData dataFromBase64String:encodedString];
+
+ XCTAssertTrue([encodedData isEqualToData:decodedData]);
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVCommandDelegateTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVCommandDelegateTests.m b/tests/CordovaLibTests/CDVCommandDelegateTests.m
new file mode 100644
index 0000000..85768a9
--- /dev/null
+++ b/tests/CordovaLibTests/CDVCommandDelegateTests.m
@@ -0,0 +1,57 @@
+/*
+ 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 <Cordova/CDVCommandDelegateImpl.h>
+
+@interface CDVCommandDelegateTests : XCTestCase
+
+@end
+
+@interface CDVCommandDelegateImpl ()
+
+// expose private interface
+- (BOOL)isValidCallbackId:(NSString*)callbackId;
+
+@end
+
+@implementation CDVCommandDelegateTests
+
+- (void)setUp
+{
+ [super setUp];
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown
+{
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ [super tearDown];
+}
+
+- (void)testNullCallbackId
+{
+ CDVCommandDelegateImpl* impl = [[CDVCommandDelegateImpl alloc] initWithViewController:nil];
+
+ NSString* callbackId = nil;
+
+ XCTAssertFalse([impl isValidCallbackId:callbackId], @"A nil callbackId should be not valid");
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVFakeFileManager.h
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVFakeFileManager.h b/tests/CordovaLibTests/CDVFakeFileManager.h
new file mode 100644
index 0000000..f9300a0
--- /dev/null
+++ b/tests/CordovaLibTests/CDVFakeFileManager.h
@@ -0,0 +1,35 @@
+/*
+ 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 <Foundation/Foundation.h>
+
+typedef BOOL (^ CDVFileExistsBlock)(NSString*);
+
+// Used in place of an NSFileManager for unit tests. It implements only those functions
+// which are required by the tests that use it.
+@interface CDVFakeFileManager : NSObject {
+ @private
+ CDVFileExistsBlock _fileExistsBlock;
+}
+
+- (id)initWithFileExistsBlock:(CDVFileExistsBlock)fileExistsBlock;
++ (id)managerWithFileExistsBlock:(CDVFileExistsBlock)fileExistsBlock;
+
+- (BOOL)fileExistsAtPath:(NSString*)path;
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVFakeFileManager.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVFakeFileManager.m b/tests/CordovaLibTests/CDVFakeFileManager.m
new file mode 100644
index 0000000..50ecd43
--- /dev/null
+++ b/tests/CordovaLibTests/CDVFakeFileManager.m
@@ -0,0 +1,43 @@
+/*
+ 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 "CDVFakeFileManager.h"
+
+@implementation CDVFakeFileManager
+
+- (id)initWithFileExistsBlock:(CDVFileExistsBlock)fileExistsBlock
+{
+ self = [super init];
+ if (self != nil) {
+ _fileExistsBlock = [fileExistsBlock copy];
+ }
+ return self;
+}
+
++ (id)managerWithFileExistsBlock:(CDVFileExistsBlock)fileExistsBlock
+{
+ return [[CDVFakeFileManager alloc] initWithFileExistsBlock:fileExistsBlock];
+}
+
+- (BOOL)fileExistsAtPath:(NSString*)path
+{
+ return _fileExistsBlock(path);
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVInvokedUrlCommandTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVInvokedUrlCommandTests.m b/tests/CordovaLibTests/CDVInvokedUrlCommandTests.m
new file mode 100644
index 0000000..3f8dd18
--- /dev/null
+++ b/tests/CordovaLibTests/CDVInvokedUrlCommandTests.m
@@ -0,0 +1,51 @@
+/*
+ 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 "CDVInvokedUrlCommand.h"
+
+@interface CDVInvokedUrlCommandTests : XCTestCase
+@end
+
+@implementation CDVInvokedUrlCommandTests
+
+- (void)testInitWithNoArgs
+{
+ NSArray* jsonArr = [NSArray arrayWithObjects:@"callbackId", @"className", @"methodName", [NSArray array], nil];
+ CDVInvokedUrlCommand* command = [CDVInvokedUrlCommand commandFromJson:jsonArr];
+
+ XCTAssertEqual(@"callbackId", command.callbackId);
+ XCTAssertEqual(@"className", command.className);
+ XCTAssertEqual(@"methodName", command.methodName);
+ XCTAssertEqual([NSArray array], command.arguments);
+}
+
+- (void)testArgumentAtIndex
+{
+ NSArray* jsonArr = [NSArray arrayWithObjects:[NSNull null], @"className", @"methodName", [NSArray array], nil];
+ CDVInvokedUrlCommand* command = [CDVInvokedUrlCommand commandFromJson:jsonArr];
+
+ XCTAssertNil([command argumentAtIndex:0], @"NSNull to nil");
+ XCTAssertNil([command argumentAtIndex:100], @"Invalid index to nil");
+ XCTAssertEqual(@"default", [command argumentAtIndex:0 withDefault:@"default"], @"NSNull to default");
+ XCTAssertEqual(@"default", [command argumentAtIndex:100 withDefault:@"default"], @"Invalid index to default");
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVLocalStorageTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVLocalStorageTests.m b/tests/CordovaLibTests/CDVLocalStorageTests.m
new file mode 100644
index 0000000..f664508
--- /dev/null
+++ b/tests/CordovaLibTests/CDVLocalStorageTests.m
@@ -0,0 +1,146 @@
+/*
+ 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 "CDVLocalStorage.h"
+#import "CDVWebViewTest.h"
+#import "CDVFakeFileManager.h"
+#import "ViewController.h"
+
+@interface CDVLocalStorageTests : CDVWebViewTest
+ // Deletes LocalStorage files from disk.
+- (void)deleteOriginals:(BOOL)originals backups:(BOOL)backups;
+// Returns the CDVLocalStorage instance from the plugins dict.
+- (CDVLocalStorage*)localStorage;
+@end
+
+@implementation CDVLocalStorageTests
+
+- (void)setUp
+{
+ [super setUp];
+ // Clear these on setUp as well in case they were left around.
+ [self deleteOriginals:YES backups:YES];
+}
+
+- (void)tearDown
+{
+ // Don't leave any localStorage files around.
+ [self deleteOriginals:YES backups:YES];
+ [super tearDown];
+}
+
+- (CDVLocalStorage*)localStorage
+{
+ return [self pluginInstance:@"LocalStorage"];
+}
+
+- (void)deleteOriginals:(BOOL)originals backups:(BOOL)backups
+{
+ NSFileManager* fileManager = [NSFileManager defaultManager];
+
+ for (CDVBackupInfo* info in [self localStorage].backupInfo) {
+ if (originals) {
+ [fileManager removeItemAtPath:info.original error:nil];
+ }
+ if (backups) {
+ [fileManager removeItemAtPath:info.backup error:nil];
+ }
+ }
+}
+
+- (void)disabled_testBackupAndRestore
+{
+ CDVLocalStorage* localStorage = [self localStorage];
+
+ [self waitForConditionName:@"shouldBackup" block:^{
+ [self evalJs:@"localStorage.setItem('foo', 'bar')"];
+ return [localStorage shouldBackup];
+ }];
+ [localStorage backup:[CDVInvokedUrlCommand new]];
+ XCTAssertFalse([localStorage shouldBackup], @"Should have backed up.");
+
+ // It would be nice to be able to test that the restore functionality
+ // alters what localStorage.getItem('foo') returns, but it seems as though
+ // the WebView maintains an in-memory cache of what's in LocalStorage even
+ // after we delete the underlying files and recreate the view.
+
+ // Instead, we just test the file copying logic.
+ [self deleteOriginals:YES backups:NO];
+ XCTAssertTrue([localStorage shouldRestore], @"Should restore after deleting originals");
+ [localStorage restore:[CDVInvokedUrlCommand new]];
+ XCTAssertFalse([localStorage shouldRestore], @"Restore did not complete successfully");
+}
+
+- (void)testVerifyAndFixDatabaseLocations_noChangeRequired
+{
+ NSString* const kBundlePath = @"/bpath";
+ id fakeFileManager = [CDVFakeFileManager managerWithFileExistsBlock:^(NSString* path) {
+ XCTFail(@"fileExists called.");
+ return NO;
+ }];
+ NSMutableDictionary* appPlistDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+ @"/bpath/foo", @"WebKitLocalStorageDatabasePathPreferenceKey",
+ @"/bpath/foo", @"WebDatabaseDirectory",
+ nil];
+ BOOL modified = [CDVLocalStorage __verifyAndFixDatabaseLocationsWithAppPlistDict:appPlistDict
+ bundlePath:kBundlePath
+ fileManager:fakeFileManager];
+
+ XCTAssertFalse(modified, @"Should not have applied fix.");
+}
+
+- (void)testVerifyAndFixDatabaseLocations_changeRequired1
+{
+ NSString* const kBundlePath = @"/bpath";
+ id fakeFileManager = [CDVFakeFileManager managerWithFileExistsBlock:^(NSString* path) {
+ return YES;
+ }];
+ NSMutableDictionary* appPlistDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+ @"/foo", @"WebKitLocalStorageDatabasePathPreferenceKey",
+ nil];
+ BOOL modified = [CDVLocalStorage __verifyAndFixDatabaseLocationsWithAppPlistDict:appPlistDict
+ bundlePath:kBundlePath
+ fileManager:fakeFileManager];
+
+ XCTAssertTrue(modified, @"Should have applied fix.");
+ NSString* newPath = [appPlistDict objectForKey:@"WebKitLocalStorageDatabasePathPreferenceKey"];
+ XCTAssertTrue([@"/bpath/Library/Caches" isEqualToString: newPath]);
+}
+
+- (void)testVerifyAndFixDatabaseLocations_changeRequired2
+{
+ NSString* const kBundlePath = @"/bpath";
+ id fakeFileManager = [CDVFakeFileManager managerWithFileExistsBlock:^(NSString* path) {
+ return NO;
+ }];
+ NSMutableDictionary* appPlistDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+ @"/foo", @"WebDatabaseDirectory",
+ nil];
+ BOOL modified = [CDVLocalStorage __verifyAndFixDatabaseLocationsWithAppPlistDict:appPlistDict
+ bundlePath:kBundlePath
+ fileManager:fakeFileManager];
+
+ XCTAssertTrue(modified, @"Should have applied fix.");
+ NSString* newPath = [appPlistDict objectForKey:@"WebDatabaseDirectory"];
+ XCTAssertTrue([@"/bpath/Library/WebKit" isEqualToString: newPath]);
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVPluginResultJSONSerializationTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVPluginResultJSONSerializationTests.m b/tests/CordovaLibTests/CDVPluginResultJSONSerializationTests.m
new file mode 100644
index 0000000..48eaa82
--- /dev/null
+++ b/tests/CordovaLibTests/CDVPluginResultJSONSerializationTests.m
@@ -0,0 +1,144 @@
+/*
+ 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 <Foundation/Foundation.h>
+#import <XCTest/XCTest.h>
+
+#import "CDVPluginResult.h"
+#import "CDVJSON.h"
+
+@interface CDVPluginResultJSONSerializationTests : XCTestCase
+@end
+
+@implementation CDVPluginResultJSONSerializationTests
+
+- (void)testSerializingMessageAsInt
+{
+ int val = 5;
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsInt:val];
+
+ XCTAssertTrue([[NSNumber numberWithInt:val] isEqual:[[result argumentsAsJSON] JSONFragment]]);
+}
+
+- (void)testSerializingMessageAsDouble
+{
+ double val = 5.5;
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:val];
+
+ XCTAssertTrue([[NSNumber numberWithDouble:val] isEqual:[[result argumentsAsJSON] JSONFragment]]);
+}
+
+- (void)testSerializingMessageAsBool
+{
+ BOOL val = YES;
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:val];
+
+ XCTAssertTrue([[NSNumber numberWithBool:val] isEqual:[[result argumentsAsJSON] JSONFragment]]);
+}
+
+- (void)testSerializingMessageAsArray
+{
+ NSArray* testValues = [NSArray arrayWithObjects:
+ [NSNull null],
+ @"string",
+ [NSNumber numberWithInt:5],
+ [NSNumber numberWithDouble:5.5],
+ [NSNumber numberWithBool:true],
+ nil];
+
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:testValues];
+ NSArray* arr = [[result argumentsAsJSON] JSONObject];
+
+ XCTAssertTrue([arr isKindOfClass:[NSArray class]]);
+ XCTAssertTrue([testValues count] == [arr count]);
+
+ for (NSInteger i = 0; i < [testValues count]; i++) {
+ XCTAssertTrue([[testValues objectAtIndex:i] isEqual:[arr objectAtIndex:i]]);
+ }
+}
+
+- (void)__testDictionary:(NSDictionary*)dictA withDictionary:(NSDictionary*)dictB
+{
+ XCTAssertTrue([dictA isKindOfClass:[NSDictionary class]]);
+ XCTAssertTrue([dictB isKindOfClass:[NSDictionary class]]);
+
+ XCTAssertTrue([[dictA allKeys] count] == [[dictB allKeys] count]);
+
+ for (NSInteger i = 0; i < [dictA count]; i++) {
+ id keyA = [[dictA allKeys] objectAtIndex:i];
+ id objA = [dictA objectForKey:keyA];
+ id objB = [dictB objectForKey:keyA];
+
+ XCTAssertTrue([[dictB allKeys] containsObject:keyA]); // key exists
+ if ([objA isKindOfClass:[NSDictionary class]]) {
+ [self __testDictionary:objA withDictionary:objB];
+ } else {
+ XCTAssertTrue([objA isEqual:objB]); // key's value equality
+ }
+ }
+}
+
+- (void)testSerializingMessageAsDictionary
+{
+ NSMutableDictionary* testValues = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+ [NSNull null], @"nullItem",
+ @"string", @"stringItem",
+ [NSNumber numberWithInt:5], @"intItem",
+ [NSNumber numberWithDouble:5.5], @"doubleItem",
+ [NSNumber numberWithBool:true], @"boolItem",
+ nil];
+
+ NSDictionary* nestedDict = [testValues copy];
+
+ [testValues setValue:nestedDict forKey:@"nestedDict"];
+
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:testValues];
+ NSDictionary* dic = [[result argumentsAsJSON] JSONObject];
+
+ [self __testDictionary:testValues withDictionary:dic];
+}
+
+- (void)testSerializingMessageAsErrorCode
+{
+ NSMutableDictionary* testValues = [NSMutableDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithInt:1], @"code",
+ nil];
+
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:1];
+
+ [self __testDictionary:testValues withDictionary:[[result argumentsAsJSON] JSONObject]];
+}
+
+- (void)testSerializingMessageAsStringContainingQuotes
+{
+ NSString* quotedString = @"\"quoted\"";
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:quotedString];
+
+ XCTAssertTrue([quotedString isEqualToString:[[result argumentsAsJSON] JSONFragment]]);
+}
+
+- (void)testSerializingMessageAsStringThatIsNil
+{
+ NSString* nilString = nil;
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:nilString];
+
+ XCTAssertTrue([[NSNull null] isEqual:[[result argumentsAsJSON] JSONFragment]]);
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVStartPageTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVStartPageTests.m b/tests/CordovaLibTests/CDVStartPageTests.m
new file mode 100644
index 0000000..452e4f8
--- /dev/null
+++ b/tests/CordovaLibTests/CDVStartPageTests.m
@@ -0,0 +1,95 @@
+/*
+ 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 "CDVWebViewTest.h"
+#import "CDVViewController.h"
+#import "AppDelegate.h"
+
+@interface CDVStartPageTestViewController : UIViewController
+@property (strong, nonatomic) CDVViewController* vc1;
+@property (strong, nonatomic) CDVViewController* vc2;
+@end
+
+@implementation CDVStartPageTestViewController
+@synthesize vc1 = _vc1, vc2 = _vc2;
+
+- (void)loadView
+{
+ _vc1 = [[CDVViewController alloc] init];
+ _vc1.wwwFolderName = @"www";
+ _vc1.startPage = @"index.html";
+ [self addChildViewController:_vc1];
+
+ _vc2 = [[CDVViewController alloc] init];
+ _vc2.wwwFolderName = @"www";
+ _vc2.startPage = @"index.html?delta=true";
+ [self addChildViewController:_vc2];
+
+ CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
+ UIView* contentView = [[UIView alloc] initWithFrame:applicationFrame];
+
+ CGRect sub1, sub2;
+ CGRectDivide(applicationFrame, &sub1, &sub2, applicationFrame.size.height / 2, CGRectMinYEdge);
+ [_vc1.view setBounds:sub1];
+ [_vc2.view setBounds:sub2];
+
+ [contentView addSubview:_vc1.view];
+ [contentView addSubview:_vc2.view];
+
+ self.view = contentView;
+}
+
+@end
+
+@interface CDVStartPageTest : CDVWebViewTest
+@end
+
+@implementation CDVStartPageTest
+
+- (void)setUp
+{
+ [super setUp];
+}
+
+- (void)tearDown
+{
+ [super tearDown];
+}
+
+- (void)testParametersInStartPage
+{
+ CDVStartPageTestViewController* rootVc = [[CDVStartPageTestViewController alloc] init];
+
+ self.appDelegate.window.rootViewController = rootVc;
+
+ NSString* geHREF = @"window.location.href";
+ [self waitForConditionName:@"getting href" block:^{
+ return (BOOL)(rootVc.vc1.webView.request != nil && rootVc.vc1.webView.request != nil);
+ }];
+
+ NSString* href = [rootVc.vc1.webView stringByEvaluatingJavaScriptFromString:geHREF];
+ XCTAssertTrue([href hasSuffix:@"index.html"], @"href should point to index.html");
+
+ href = [rootVc.vc2.webView stringByEvaluatingJavaScriptFromString:geHREF];
+ XCTAssertTrue([href hasSuffix:@"index.html?delta=true"], @"href should point to index.html?delta=true");
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVUserAgentTest.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVUserAgentTest.m b/tests/CordovaLibTests/CDVUserAgentTest.m
new file mode 100644
index 0000000..1a68364
--- /dev/null
+++ b/tests/CordovaLibTests/CDVUserAgentTest.m
@@ -0,0 +1,93 @@
+/*
+ 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 "CDVWebViewTest.h"
+#import "CDVViewController.h"
+#import "AppDelegate.h"
+
+@interface CDVUserAgentTestViewController : UIViewController
+@property (nonatomic) CDVViewController* vc1;
+@property (nonatomic) CDVViewController* vc2;
+@end
+
+@implementation CDVUserAgentTestViewController
+@synthesize vc1 = _vc1, vc2 = _vc2;
+
+- (void)loadView
+{
+ _vc1 = [[CDVViewController alloc] init];
+ _vc1.wwwFolderName = @"www";
+ _vc1.startPage = @"index.html";
+ [self addChildViewController:_vc1];
+
+ _vc2 = [[CDVViewController alloc] init];
+ _vc2.wwwFolderName = @"www";
+ _vc2.startPage = @"index.html";
+ [self addChildViewController:_vc2];
+
+ CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
+ UIView* contentView = [[UIView alloc] initWithFrame:applicationFrame];
+
+ CGRect sub1, sub2;
+ CGRectDivide(applicationFrame, &sub1, &sub2, applicationFrame.size.height / 2, CGRectMinYEdge);
+ [_vc1.view setBounds:sub1];
+ [_vc2.view setBounds:sub2];
+
+ [contentView addSubview:_vc1.view];
+ [contentView addSubview:_vc2.view];
+
+ self.view = contentView;
+}
+
+@end
+
+@interface CDVUserAgentTest : CDVWebViewTest
+@end
+
+@implementation CDVUserAgentTest
+
+- (void)setUp
+{
+ [super setUp];
+}
+
+- (void)tearDown
+{
+ [super tearDown];
+}
+
+- (void)testMultipleViews
+{
+ CDVUserAgentTestViewController* rootVc = [[CDVUserAgentTestViewController alloc] init];
+
+ self.appDelegate.window.rootViewController = rootVc;
+
+ NSString* getUserAgentCode = @"navigator.userAgent";
+ [self waitForConditionName:@"getting user-agents" block:^{
+ return (BOOL)(rootVc.vc1.webView.request != nil && rootVc.vc2.webView.request != nil);
+ }];
+ NSString* ua1 = [rootVc.vc1.webView stringByEvaluatingJavaScriptFromString:getUserAgentCode];
+ NSString* ua2 = [rootVc.vc2.webView stringByEvaluatingJavaScriptFromString:getUserAgentCode];
+
+ XCTAssertFalse([ua1 isEqual:ua2], @"User-Agents should be different.");
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVWebViewDelegateTests.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVWebViewDelegateTests.m b/tests/CordovaLibTests/CDVWebViewDelegateTests.m
new file mode 100644
index 0000000..7edd189
--- /dev/null
+++ b/tests/CordovaLibTests/CDVWebViewDelegateTests.m
@@ -0,0 +1,103 @@
+/*
+ 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 <Cordova/CDVWebViewDelegate.h>
+
+@interface CDVWebViewDelegate ()
+
+// expose private interface
+- (BOOL)shouldLoadRequest:(NSURLRequest*)request;
+
+@end
+
+@interface CDVWebViewDelegateTests : XCTestCase
+@end
+
+@implementation CDVWebViewDelegateTests
+
+- (void)setUp
+{
+ [super setUp];
+}
+
+- (void)tearDown
+{
+ [super tearDown];
+}
+
+- (void)testShouldLoadRequest
+{
+ CDVWebViewDelegate* wvd = [[CDVWebViewDelegate alloc] initWithDelegate:nil]; // not really testing delegate handling
+
+ NSURLRequest* mailtoUrl = [NSURLRequest requestWithURL:[NSURL URLWithString:@"mailto:dev@cordova.apache.org"]];
+ NSURLRequest* telUrl = [NSURLRequest requestWithURL:[NSURL URLWithString:@"tel:12345"]];
+ NSURLRequest* plainUrl = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://apache.org"]];
+
+ XCTAssertTrue([wvd shouldLoadRequest:mailtoUrl], @"mailto urls should be allowed");
+ XCTAssertTrue([wvd shouldLoadRequest:telUrl], @"tel urls should be allowed");
+ // as long as this is in the whitelist it should pass
+ XCTAssertTrue([wvd shouldLoadRequest:plainUrl], @"http urls should be allowed");
+}
+
+- (void)testFragmentIdentifiersWithHttpUrl
+{
+ [self doTestFragmentIdentifiersWithBaseUrl:@"http://cordova.apache.org" fragment:@"myfragment"];
+}
+
+- (void)testFragmentIdentifiersWithFileUrl
+{
+ [self doTestFragmentIdentifiersWithBaseUrl:@"file:///var/mobile/GASGEQGQsdga3313/www/index.html" fragment:@"myfragment"];
+}
+
+- (void)testFragmentIdentifiersWithFileUrlAndMalformedFragment
+{
+ [self doTestFragmentIdentifiersWithBaseUrl:@"file:///var/mobile/GASGEQGQsdga3313/www/index.html" fragment:@"/var/mobile/GASGEQGQsdga3313/www/index.html"];
+}
+
+- (void)doTestFragmentIdentifiersWithBaseUrl:(NSString*)baseUrl fragment:(NSString*)fragment
+{
+ CDVWebViewDelegate* wvd = [[CDVWebViewDelegate alloc] initWithDelegate:nil]; // not really testing delegate handling
+
+ NSString* originalUrlString = baseUrl;
+ NSURL* originalUrl = [NSURL URLWithString:originalUrlString];
+ NSURL* originalUrlWithFragmentOnly = [NSURL URLWithString:[NSString stringWithFormat:@"%@#%@", originalUrlString, fragment]];
+ NSURL* originalUrlWithFragmentOnlyNoIdentifier = [NSURL URLWithString:[NSString stringWithFormat:@"%@#", originalUrlString]];
+ NSURL* originalUrlWithQueryParamsAndFragment = [NSURL URLWithString:[NSString stringWithFormat:@"%@?foo=bar#%@", originalUrlString, fragment]];
+
+ NSURLRequest* originalRequest = [NSURLRequest requestWithURL:originalUrl];
+ NSURLRequest* originalRequestWithFragmentOnly = [NSURLRequest requestWithURL:originalUrlWithFragmentOnly];
+ NSURLRequest* originalRequestWithFragmentOnlyNoIdentifier = [NSURLRequest requestWithURL:originalUrlWithFragmentOnlyNoIdentifier];
+ NSURLRequest* originalRequestWithQueryParamsAndFragment = [NSURLRequest requestWithURL:originalUrlWithQueryParamsAndFragment];
+ NSURLRequest* notOriginalRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://httpd.apache.org"]];
+
+ XCTAssertTrue([wvd request:originalRequest isEqualToRequestAfterStrippingFragments:originalRequest], @"originalRequest should be a be equal to originalRequest after stripping fragments");
+ XCTAssertTrue([wvd request:originalRequestWithFragmentOnly isEqualToRequestAfterStrippingFragments:originalRequest], @"originalRequestWithFragment should be equal to originalRequest after stripping fragment");
+ XCTAssertTrue([wvd request:originalRequestWithFragmentOnlyNoIdentifier isEqualToRequestAfterStrippingFragments:originalRequest], @"originalRequestWithFragmentNoIdentifier should be equal to originalRequest after stripping fragment");
+ XCTAssertFalse([wvd request:originalRequestWithQueryParamsAndFragment isEqualToRequestAfterStrippingFragments:originalRequest], @"originalRequestWithQueryParamsAndFragment should not be equal to originalRequest after stripping fragment");
+ XCTAssertFalse([wvd request:notOriginalRequest isEqualToRequestAfterStrippingFragments:originalRequest], @"notOriginalRequest should not be equal to originalRequest after stripping fragment");
+
+ // equality tests
+ XCTAssertTrue([wvd request:originalRequestWithFragmentOnly isEqualToRequestAfterStrippingFragments:originalRequestWithFragmentOnly], @"originalRequestWithFragment should be a equal to itself after stripping fragments");
+ XCTAssertTrue([wvd request:originalRequestWithFragmentOnlyNoIdentifier isEqualToRequestAfterStrippingFragments:originalRequestWithFragmentOnlyNoIdentifier], @"originalRequestWithFragmentNoIdentifier should be a equal to itself after stripping fragments");
+ XCTAssertTrue([wvd request:originalRequestWithQueryParamsAndFragment isEqualToRequestAfterStrippingFragments:originalRequestWithQueryParamsAndFragment], @"originalRequestWithQueryParamsAndFragment should be equal to itself after stripping fragments");
+}
+
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVWebViewTest.h
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVWebViewTest.h b/tests/CordovaLibTests/CDVWebViewTest.h
new file mode 100644
index 0000000..e11b825
--- /dev/null
+++ b/tests/CordovaLibTests/CDVWebViewTest.h
@@ -0,0 +1,43 @@
+/*
+ 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 <UIKit/UIKit.h>
+
+@class AppDelegate;
+@class CDVViewController;
+
+@interface CDVWebViewTest : XCTestCase
+
+@property (nonatomic, strong) UIWebView* webView;
+
+- (AppDelegate*)appDelegate;
+- (CDVViewController*)viewController;
+- (UIWebView*)webView;
+
+// Returns the already registered plugin object for the given class.
+- (id)pluginInstance:(NSString*)pluginName;
+// Destroys the existing webview and creates a new one.
+- (void)reloadWebView;
+// Runs the run loop until the given block returns true, or until a timeout
+// occurs.
+- (void)waitForConditionName:(NSString*)conditionName block:(BOOL (^)())block;
+// Convenience function for stringByEvaluatingJavaScriptFromString.
+- (NSString*)evalJs:(NSString*)code;
+@end
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/cba612ff/tests/CordovaLibTests/CDVWebViewTest.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVWebViewTest.m b/tests/CordovaLibTests/CDVWebViewTest.m
new file mode 100644
index 0000000..c395f48
--- /dev/null
+++ b/tests/CordovaLibTests/CDVWebViewTest.m
@@ -0,0 +1,122 @@
+/*
+ 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 "CDVWebViewTest.h"
+
+#import "AppDelegate.h"
+#import "ViewController.h"
+
+@interface CDVWebViewTest ()
+// Runs the run loop until the webview has finished loading.
+- (void)waitForPageLoad;
+@end
+
+@implementation CDVWebViewTest
+
+@synthesize webView;
+
+- (void)setUp
+{
+ [super setUp];
+ // Stop tests on the first failed assertion. Having the test stop on the
+ // first exception makes it much easier to identify the source of the error.
+ // On iOS < 5 there is a bug in SenTestingKit where the exception is
+ // uncaught and the app crashes upon a failed STAssert (oh well).
+ //[self raiseAfterFailure];
+}
+
+- (void)tearDown
+{
+ // Enforce that the view controller is released between tests to ensure
+ // tests don't affect each other.
+ [self.appDelegate destroyViewController];
+ [super tearDown];
+}
+
+- (AppDelegate*)appDelegate
+{
+ return [[UIApplication sharedApplication] delegate];
+}
+
+- (CDVViewController*)viewController
+{
+ // Lazily create the view controller so that tests that do not require it
+ // are not slowed down by it.
+ if (self.appDelegate.viewController == nil) {
+ [self.appDelegate createViewController];
+ // Things break if tearDown is called before the page has finished
+ // loading (a JS error happens and an alert pops up), so enforce a wait
+ // here.
+ [self waitForPageLoad];
+ }
+ XCTAssertNotNil(self.appDelegate.viewController, @"createViewController failed");
+ return self.appDelegate.viewController;
+}
+
+- (UIWebView*)webView
+{
+ return self.viewController.webView;
+}
+
+- (id)pluginInstance:(NSString*)pluginName
+{
+ id ret = [self.viewController getCommandInstance:pluginName];
+
+ XCTAssertNotNil(ret, @"Missing plugin %@", pluginName);
+ return ret;
+}
+
+- (void)reloadWebView
+{
+ [self.appDelegate destroyViewController];
+ [self.appDelegate createViewController];
+}
+
+- (void)waitForConditionName:(NSString*)conditionName block:(BOOL (^)())block
+{
+ // Number of seconds to wait for a condition to become true before giving up.
+ const NSTimeInterval kConditionTimeout = 5.0;
+ // Useful when debugging so that it does not timeout after one loop.
+ const int kMinIterations = 4;
+
+ NSDate* startTime = [NSDate date];
+ int i = 0;
+
+ while (!block()) {
+ [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+ NSTimeInterval elapsed = -[startTime timeIntervalSinceNow];
+ XCTAssertTrue(i < kMinIterations || elapsed < kConditionTimeout,
+ @"Timed out waiting for condition %@", conditionName);
+ ++i;
+ }
+}
+
+- (void)waitForPageLoad
+{
+ [self waitForConditionName:@"PageLoad" block:^{
+ return [@"true" isEqualToString :[self evalJs:@"window.pageIsLoaded"]];
+ }];
+}
+
+- (NSString*)evalJs:(NSString*)code
+{
+ return [self.webView stringByEvaluatingJavaScriptFromString:code];
+}
+
+@end
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org