| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <UIKit/UIKit.h> | 5 #include <UIKit/UIKit.h> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/ios/ios_util.h" |
| 10 #include "base/strings/sys_string_conversions.h" | 11 #include "base/strings/sys_string_conversions.h" |
| 11 #include "base/test/test_simple_task_runner.h" | 12 #include "base/test/test_simple_task_runner.h" |
| 12 #include "base/values.h" | 13 #include "base/values.h" |
| 13 #include "components/policy/core/common/async_policy_provider.h" | 14 #include "components/policy/core/common/async_policy_provider.h" |
| 14 #include "components/policy/core/common/configuration_policy_provider_test.h" | 15 #include "components/policy/core/common/configuration_policy_provider_test.h" |
| 15 #include "components/policy/core/common/policy_bundle.h" | 16 #include "components/policy/core/common/policy_bundle.h" |
| 16 #include "components/policy/core/common/policy_loader_ios.h" | 17 #include "components/policy/core/common/policy_loader_ios.h" |
| 17 #include "components/policy/core/common/policy_map.h" | 18 #include "components/policy/core/common/policy_map.h" |
| 18 #include "components/policy/core/common/policy_test_utils.h" | 19 #include "components/policy/core/common/policy_test_utils.h" |
| 19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 }); | 138 }); |
| 138 } | 139 } |
| 139 | 140 |
| 140 // static | 141 // static |
| 141 PolicyProviderTestHarness* TestHarness::Create() { | 142 PolicyProviderTestHarness* TestHarness::Create() { |
| 142 return new TestHarness(false); | 143 return new TestHarness(false); |
| 143 } | 144 } |
| 144 | 145 |
| 145 // static | 146 // static |
| 146 PolicyProviderTestHarness* TestHarness::CreateWithEncodedKey() { | 147 PolicyProviderTestHarness* TestHarness::CreateWithEncodedKey() { |
| 147 return new TestHarness(true); | 148 if (base::ios::IsRunningOnIOS7OrLater()) |
| 149 return new TestHarness(true); |
| 150 // Earlier versions of iOS don't have the APIs to support this test. |
| 151 // Unfortunately it's not possible to conditionally run this harness using |
| 152 // gtest, so we just fallback to running the non-encoded version. |
| 153 NSLog(@"Skipping test"); |
| 154 return new TestHarness(false); |
| 148 } | 155 } |
| 149 | 156 |
| 150 void TestHarness::AddPolicies(NSDictionary* policy) { | 157 void TestHarness::AddPolicies(NSDictionary* policy) { |
| 151 if (use_encoded_key_) | 158 if (use_encoded_key_) |
| 152 AddEncodedChromePolicy(policy); | 159 AddEncodedChromePolicy(policy); |
| 153 else | 160 else |
| 154 AddChromePolicy(policy); | 161 AddChromePolicy(policy); |
| 155 } | 162 } |
| 156 | 163 |
| 157 void TestHarness::AddChromePolicy(NSDictionary* policy) { | 164 void TestHarness::AddChromePolicy(NSDictionary* policy) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 | 224 |
| 218 INSTANTIATE_TEST_CASE_P( | 225 INSTANTIATE_TEST_CASE_P( |
| 219 PolicyProviderIOSEncodedChromePolicyTest, | 226 PolicyProviderIOSEncodedChromePolicyTest, |
| 220 ConfigurationPolicyProviderTest, | 227 ConfigurationPolicyProviderTest, |
| 221 testing::Values(TestHarness::CreateWithEncodedKey)); | 228 testing::Values(TestHarness::CreateWithEncodedKey)); |
| 222 | 229 |
| 223 TEST(PolicyProviderIOSTest, ChromePolicyOverEncodedChromePolicy) { | 230 TEST(PolicyProviderIOSTest, ChromePolicyOverEncodedChromePolicy) { |
| 224 // This test verifies that if the "ChromePolicy" key is present then the | 231 // This test verifies that if the "ChromePolicy" key is present then the |
| 225 // "EncodedChromePolicy" key is ignored. | 232 // "EncodedChromePolicy" key is ignored. |
| 226 | 233 |
| 234 if (!base::ios::IsRunningOnIOS7OrLater()) { |
| 235 // Skip this test if running on a version earlier than iOS 7. |
| 236 NSLog(@"Skipping test"); |
| 237 return; |
| 238 } |
| 239 |
| 227 NSDictionary* policy = @{ | 240 NSDictionary* policy = @{ |
| 228 @"shared": @"wrong", | 241 @"shared": @"wrong", |
| 229 @"key1": @"value1", | 242 @"key1": @"value1", |
| 230 }; | 243 }; |
| 231 NSData* data = [NSPropertyListSerialization | 244 NSData* data = [NSPropertyListSerialization |
| 232 dataWithPropertyList:policy | 245 dataWithPropertyList:policy |
| 233 format:NSPropertyListXMLFormat_v1_0 | 246 format:NSPropertyListXMLFormat_v1_0 |
| 234 options:0 | 247 options:0 |
| 235 error:NULL]; | 248 error:NULL]; |
| 236 NSString* encodedChromePolicy = [data base64EncodedStringWithOptions:0]; | 249 NSString* encodedChromePolicy = [data base64EncodedStringWithOptions:0]; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 258 | 271 |
| 259 scoped_refptr<base::TestSimpleTaskRunner> taskRunner = | 272 scoped_refptr<base::TestSimpleTaskRunner> taskRunner = |
| 260 new base::TestSimpleTaskRunner(); | 273 new base::TestSimpleTaskRunner(); |
| 261 PolicyLoaderIOS loader(taskRunner); | 274 PolicyLoaderIOS loader(taskRunner); |
| 262 scoped_ptr<PolicyBundle> bundle = loader.Load(); | 275 scoped_ptr<PolicyBundle> bundle = loader.Load(); |
| 263 ASSERT_TRUE(bundle); | 276 ASSERT_TRUE(bundle); |
| 264 EXPECT_TRUE(bundle->Equals(expected)); | 277 EXPECT_TRUE(bundle->Equals(expected)); |
| 265 } | 278 } |
| 266 | 279 |
| 267 } // namespace policy | 280 } // namespace policy |
| OLD | NEW |