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 2016/01/05 02:01:38 UTC
[2/2] ios commit: CB-10233: Support different config.xml file per
CDVViewController instance
CB-10233: Support different config.xml file per CDVViewController instance
Add unit test to prove that settings are loaded from the right config
file
This closes #186
Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/48dfb42b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/48dfb42b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/48dfb42b
Branch: refs/heads/master
Commit: 48dfb42b95fc8469986ba7f9d977a43bf2aaf56c
Parents: 813a3ba
Author: Mirko Luchi <mi...@thedigitalstack.com>
Authored: Wed Dec 23 14:06:52 2015 +0100
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Jan 4 17:02:04 2016 -0800
----------------------------------------------------------------------
tests/CordovaLibTests/CDVViewControllerTest.m | 60 ++++++++++++++++++++
tests/CordovaLibTests/CordovaLibApp/config.xml | 4 +-
.../CordovaLibTests.xcodeproj/project.pbxproj | 20 +++++--
tests/CordovaLibTests/config-custom.xml | 23 ++++++++
4 files changed, 100 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/48dfb42b/tests/CordovaLibTests/CDVViewControllerTest.m
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CDVViewControllerTest.m b/tests/CordovaLibTests/CDVViewControllerTest.m
new file mode 100644
index 0000000..dcff8fd
--- /dev/null
+++ b/tests/CordovaLibTests/CDVViewControllerTest.m
@@ -0,0 +1,60 @@
+//
+// CDVViewControllerTest.m
+// CordovaLibTests
+//
+// Created by Mirko Luchi on 23/12/15.
+//
+//
+
+#import <XCTest/XCTest.h>
+#import <Cordova/CDVViewController.h>
+
+#define CDVViewControllerTestSettingKey @"test_cdvconfigfile"
+#define CDVViewControllerTestSettingValueDefault @"config.xml"
+#define CDVViewControllerTestSettingValueCustom @"config-custom.xml"
+
+@interface CDVViewControllerTest : XCTestCase
+
+@end
+
+@implementation CDVViewControllerTest
+
+-(CDVViewController*)viewController{
+ CDVViewController* viewController = [CDVViewController new];
+ return viewController;
+}
+
+-(void)doTestInitWithConfigFile:(NSString*)configFile expectedSettingValue:(NSString*)value{
+ // Create a CDVViewController
+ CDVViewController* viewController = [self viewController];
+ if(configFile){
+ // Set custom config file
+ viewController.configFile = configFile;
+ }else{
+ // Do not specify config file ==> fallback to default config.xml
+ }
+
+ // Trigger -viewDidLoad
+ [viewController view];
+
+ // Assert that the proper file was actually loaded, checking the value of a test setting it must contain
+ NSString* settingValue = [viewController.settings objectForKey:CDVViewControllerTestSettingKey];
+ XCTAssertEqualObjects(settingValue, value);
+}
+
+-(void)testInitWithDefaultConfigFile{
+ [self doTestInitWithConfigFile:nil expectedSettingValue:CDVViewControllerTestSettingValueDefault];
+}
+
+-(void)testInitWithCustomConfigFileAbsolutePath{
+ NSString* configFileAbsolutePath = [[NSBundle mainBundle] pathForResource:@"config-custom" ofType:@"xml"];
+ [self doTestInitWithConfigFile:configFileAbsolutePath expectedSettingValue:CDVViewControllerTestSettingValueCustom];
+}
+
+-(void)testInitWithCustomConfigFileRelativePath{
+ NSString* configFileRelativePath = @"config-custom.xml";
+ [self doTestInitWithConfigFile:configFileRelativePath expectedSettingValue:CDVViewControllerTestSettingValueCustom];
+}
+
+@end
+
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/48dfb42b/tests/CordovaLibTests/CordovaLibApp/config.xml
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibApp/config.xml b/tests/CordovaLibTests/CordovaLibApp/config.xml
index 8acdea7..5b930fc 100644
--- a/tests/CordovaLibTests/CordovaLibApp/config.xml
+++ b/tests/CordovaLibTests/CordovaLibApp/config.xml
@@ -49,7 +49,9 @@
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" /> <!-- page, column -->
<preference name="PaginationMode" value="unpaginated" /> <!-- unpaginated, leftToRight, topToBottom, bottomToTop, rightToLeft -->
-
+ <!-- This settings is just used by the CDVViewControllerTest to assert which config file has been loaded -->
+ <preference name="test_CDVConfigFile" value="config.xml" />
+
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage"/>
</feature>
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/48dfb42b/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj b/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
index c4b9007..023b4a5 100644
--- a/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
+++ b/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
@@ -17,6 +17,8 @@
30B342F515224B360070E6A5 /* CDVWebViewTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B342F415224B360070E6A5 /* CDVWebViewTest.m */; };
30D1B08C15A2B36D0060C291 /* CDVBase64Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 30D1B08B15A2B36D0060C291 /* CDVBase64Tests.m */; };
30F8AE1D152129DA006625B3 /* www in Resources */ = {isa = PBXBuildFile; fileRef = 30F8AE1C152129DA006625B3 /* www */; };
+ 5C4C91761C2ACE450055AFC3 /* CDVViewControllerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C4C91751C2ACE450055AFC3 /* CDVViewControllerTest.m */; };
+ 5C4C917B1C2AD44E0055AFC3 /* config-custom.xml in Resources */ = {isa = PBXBuildFile; fileRef = 5C4C91771C2ACF130055AFC3 /* config-custom.xml */; };
686357B5141002F200DF4CF2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 686357B3141002F200DF4CF2 /* InfoPlist.strings */; };
686357BA141002F200DF4CF2 /* CDVPluginResultJSONSerializationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 686357B9141002F200DF4CF2 /* CDVPluginResultJSONSerializationTests.m */; };
7E91406017711D88002C6A3F /* CDVWebViewDelegateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E91405F17711D88002C6A3F /* CDVWebViewDelegateTests.m */; };
@@ -54,6 +56,8 @@
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>"; };
+ 5C4C91751C2ACE450055AFC3 /* CDVViewControllerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDVViewControllerTest.m; sourceTree = "<group>"; };
+ 5C4C91771C2ACF130055AFC3 /* config-custom.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "config-custom.xml"; sourceTree = "<group>"; };
686357A9141002F100DF4CF2 /* CordovaLibTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CordovaLibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
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>"; };
@@ -104,6 +108,7 @@
children = (
7EF33BD61911ABA20048544E /* Default-568h@2x.png */,
F8EB14D0165FFD3200616F39 /* config.xml */,
+ 5C4C91771C2ACF130055AFC3 /* config-custom.xml */,
EB3B34F4161B585D003DBE7D /* CordovaLibTests */,
303A406D152124BB00182201 /* CordovaLibApp */,
0867D69AFE84028FC02AAC07 /* Frameworks */,
@@ -156,18 +161,19 @@
EB3B34F4161B585D003DBE7D /* CordovaLibTests */ = {
isa = PBXGroup;
children = (
+ 30D1B08B15A2B36D0060C291 /* CDVBase64Tests.m */,
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 */,
+ EBA7F20417962CCD001A0CE6 /* CDVStartPageTests.m */,
+ EB96677116ADBCF500D86CDF /* CDVUserAgentTest.m */,
+ 5C4C91751C2ACE450055AFC3 /* CDVViewControllerTest.m */,
+ 7E91405F17711D88002C6A3F /* CDVWebViewDelegateTests.m */,
+ EBA3550F15A5F18900F4DE24 /* CDVWebViewTest.h */,
+ 30B342F415224B360070E6A5 /* CDVWebViewTest.m */,
30356213141049E1006C2D43 /* CDVWhitelistTests.m */,
686357B1141002F200DF4CF2 /* Supporting Files */,
);
@@ -253,6 +259,7 @@
7EF33BD71911ABA20048544E /* Default-568h@2x.png in Resources */,
303A4072152124BB00182201 /* InfoPlist.strings in Resources */,
30F8AE1D152129DA006625B3 /* www in Resources */,
+ 5C4C917B1C2AD44E0055AFC3 /* config-custom.xml in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -319,6 +326,7 @@
30B342F515224B360070E6A5 /* CDVWebViewTest.m in Sources */,
30D1B08C15A2B36D0060C291 /* CDVBase64Tests.m in Sources */,
EBA3554615A731F100F4DE24 /* CDVFakeFileManager.m in Sources */,
+ 5C4C91761C2ACE450055AFC3 /* CDVViewControllerTest.m in Sources */,
EB89634A15FE66EA00E12277 /* CDVInvokedUrlCommandTests.m in Sources */,
EB96677216ADBCF500D86CDF /* CDVUserAgentTest.m in Sources */,
7E91406017711D88002C6A3F /* CDVWebViewDelegateTests.m in Sources */,
http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/48dfb42b/tests/CordovaLibTests/config-custom.xml
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/config-custom.xml b/tests/CordovaLibTests/config-custom.xml
new file mode 100644
index 0000000..18cf6a4
--- /dev/null
+++ b/tests/CordovaLibTests/config-custom.xml
@@ -0,0 +1,23 @@
+<?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>
+ <!-- This settings is just used by the CDVViewControllerTest to assert which config file has been loaded -->
+ <preference name="test_CDVConfigFile" value="config-custom.xml" />
+</widget>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org