Chromium Code Reviews| Index: chrome/browser/extensions/extension_service_sync_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_service_sync_unittest.cc b/chrome/browser/extensions/extension_service_sync_unittest.cc |
| index e09e262c6ccf6a622a34ce99ec25f7b29216d1de..bae657fd76cffb34eedad8721e9e6a54568dc1bc 100644 |
| --- a/chrome/browser/extensions/extension_service_sync_unittest.cc |
| +++ b/chrome/browser/extensions/extension_service_sync_unittest.cc |
| @@ -18,6 +18,7 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/metrics/field_trial.h" |
| #include "base/test/mock_entropy_provider.h" |
| +#include "chrome/browser/extensions/api/webstore_private/webstore_private_api.h" |
| #include "chrome/browser/extensions/component_loader.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/extensions/extension_service_test_with_install.h" |
| @@ -33,6 +34,7 @@ |
| #include "components/browser_sync/browser/profile_sync_service.h" |
| #include "components/crx_file/id_util.h" |
| #include "components/variations/variations_associated_data.h" |
| +#include "extensions/browser/api_test_utils.h" |
| #include "extensions/browser/app_sorting.h" |
| #include "extensions/browser/extension_prefs.h" |
| #include "extensions/browser/extension_registry.h" |
| @@ -58,6 +60,7 @@ |
| #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| #endif |
| +using extensions::api_test_utils::RunFunctionAndReturnSingleResult; |
| using extensions::AppSorting; |
| using extensions::Extension; |
| using extensions::ExtensionPrefs; |
| @@ -1582,6 +1585,17 @@ class ExtensionServiceTestSupervised : public ExtensionServiceSyncTest, |
| base::FeatureList::SetInstance(std::move(feature_list)); |
| } |
| + bool isExtensionPendingCustodianApproval(const std::string& extensionId) { |
|
Marc Treib
2016/05/09 11:50:19
"Is..", capitalized.
Also extension_id
mamir
2016/05/09 13:33:48
Done.
|
| + std::unique_ptr<base::Value> result(RunFunctionAndReturnSingleResult( |
| + new extensions:: |
| + WebstorePrivateIsExtensionPendingCustodianApprovalFunction(), |
| + "[\"" + extensionId + "\"]", browser_context())); |
| + |
| + bool copy_bool_result = false; |
| + EXPECT_TRUE(result->GetAsBoolean(©_bool_result)); |
| + return copy_bool_result; |
| + } |
| + |
| void InitServices(bool profile_is_supervised) { |
| ExtensionServiceInitParams params = CreateDefaultInitParams(); |
| params.profile_is_supervised = profile_is_supervised; |
| @@ -1685,6 +1699,7 @@ TEST_F(ExtensionServiceTestSupervised, InstallOnlyAllowedByCustodian) { |
| EXPECT_FALSE(extensions[0]); |
| ASSERT_TRUE(extensions[1]); |
| EXPECT_TRUE(registry()->enabled_extensions().Contains(extensions[1]->id())); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(extensions[1]->id())); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1705,7 +1720,9 @@ TEST_F(ExtensionServiceTestSupervised, |
| ASSERT_TRUE(extensions[0]); |
| ASSERT_TRUE(extensions[1]); |
| EXPECT_TRUE(registry()->disabled_extensions().Contains(extensions[0]->id())); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(extensions[0]->id())); |
| EXPECT_TRUE(registry()->enabled_extensions().Contains(extensions[1]->id())); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(extensions[1]->id())); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1734,6 +1751,7 @@ TEST_F(ExtensionServiceTestSupervised, |
| // The extension should not be enabled anymore. |
| EXPECT_FALSE(registry()->enabled_extensions().Contains(id)); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(id)); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1793,6 +1811,7 @@ TEST_F(ExtensionServiceTestSupervised, UpdateWithoutPermissionIncrease) { |
| ASSERT_TRUE(extension); |
| // The version should have changed. |
| EXPECT_NE(extension->VersionString(), old_version); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(id)); |
| } |
| TEST_F(ExtensionServiceTestSupervised, UpdateWithPermissionIncreaseNoApproval) { |
| @@ -1814,6 +1833,7 @@ TEST_F(ExtensionServiceTestSupervised, UpdateWithPermissionIncreaseNoApproval) { |
| CreateExtensionUpdateRequest(RequestId(id, version2), testing::_)) |
| .Times(0); |
| UpdatePermissionsTestExtension(id, version2, DISABLED); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(id)); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1835,6 +1855,7 @@ TEST_F(ExtensionServiceTestSupervised, |
| EXPECT_CALL(*creator, CreateExtensionUpdateRequest(RequestId(id, version2), |
| testing::_)); |
| UpdatePermissionsTestExtension(id, version2, DISABLED); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(id)); |
| // Simulate a custodian approval for re-enabling the extension coming in |
| // through Sync, but set the old version. This can happen when there already |
| @@ -1862,6 +1883,7 @@ TEST_F(ExtensionServiceTestSupervised, |
| id, base::Version(version1))); |
| EXPECT_FALSE(extension_sync_service()->HasPendingReenable( |
| id, base::Version(version2))); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(id)); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1881,6 +1903,7 @@ TEST_F(ExtensionServiceTestSupervised, |
| EXPECT_CALL(*creator, CreateExtensionUpdateRequest(RequestId(id, version2), |
| testing::_)); |
| UpdatePermissionsTestExtension(id, version2, DISABLED); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(id)); |
| // Simulate a custodian approval for re-enabling the extension coming in |
| // through Sync. |
| @@ -1898,6 +1921,7 @@ TEST_F(ExtensionServiceTestSupervised, |
| extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
| // The extension should have gotten re-enabled. |
| EXPECT_TRUE(registry()->enabled_extensions().Contains(id)); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(id)); |
| } |
| TEST_F(ExtensionServiceTestSupervised, |
| @@ -1971,6 +1995,8 @@ TEST_F(ExtensionServiceTestSupervised, SupervisedUserInitiatedInstalls) { |
| EXPECT_TRUE(registry()->disabled_extensions().Contains(extension->id())); |
| EXPECT_FALSE(registry()->enabled_extensions().Contains(extension->id())); |
| + EXPECT_TRUE(isExtensionPendingCustodianApproval(extension->id())); |
| + |
| // Simulate a custodian approval for enabling the extension coming in |
| // through Sync. |
| sync_pb::EntitySpecifics specifics; |
| @@ -1987,6 +2013,7 @@ TEST_F(ExtensionServiceTestSupervised, SupervisedUserInitiatedInstalls) { |
| extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
| // The extension should be enabled now. |
| EXPECT_TRUE(registry()->enabled_extensions().Contains(extension->id())); |
| + EXPECT_FALSE(isExtensionPendingCustodianApproval(extension->id())); |
| } |
| TEST_F(ExtensionServiceSyncTest, SyncUninstallByCustodianSkipsPolicy) { |