Index: chrome/browser/chromeos/policy/user_cloud_external_data_manager_browsertest.cc |
diff --git a/chrome/browser/chromeos/policy/user_cloud_external_data_manager_browsertest.cc b/chrome/browser/chromeos/policy/user_cloud_external_data_manager_browsertest.cc |
index 1adae47791a697f55008d1f91d23c22e7b6700fc..be7a73d9f18fcd668477e0f84288d06817e1901d 100644 |
--- a/chrome/browser/chromeos/policy/user_cloud_external_data_manager_browsertest.cc |
+++ b/chrome/browser/chromeos/policy/user_cloud_external_data_manager_browsertest.cc |
@@ -4,28 +4,22 @@ |
#include <string> |
-#include "base/basictypes.h" |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/file_util.h" |
#include "base/files/file_path.h" |
#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
#include "base/path_service.h" |
#include "base/run_loop.h" |
-#include "base/sha1.h" |
-#include "base/strings/string_number_conversions.h" |
#include "base/values.h" |
#include "chrome/browser/chromeos/policy/cloud_external_data_manager_base.h" |
+#include "chrome/browser/chromeos/policy/cloud_external_data_manager_base_test_util.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" |
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h" |
-#include "chrome/browser/policy/cloud/cloud_external_data_manager.h" |
#include "chrome/browser/policy/cloud/cloud_policy_core.h" |
-#include "chrome/browser/policy/cloud/cloud_policy_store.h" |
#include "chrome/browser/policy/external_data_fetcher.h" |
#include "chrome/browser/policy/policy_map.h" |
#include "chrome/browser/policy/policy_service.h" |
-#include "chrome/browser/policy/policy_types.h" |
#include "chrome/browser/policy/profile_policy_connector.h" |
#include "chrome/browser/policy/profile_policy_connector_factory.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -44,67 +38,9 @@ namespace { |
const char kExternalDataPath[] = "policy/blank.html"; |
-void ExternalDataFetchCallback(scoped_ptr<std::string>* destination, |
- const base::Closure& done_callback, |
- scoped_ptr<std::string> data) { |
- destination->reset(data.release()); |
- done_callback.Run(); |
-} |
- |
} // namespace |
-class UserCloudExternalDataManagerTest : public InProcessBrowserTest { |
- protected: |
- UserCloudExternalDataManagerTest(); |
- virtual ~UserCloudExternalDataManagerTest(); |
- |
- scoped_ptr<base::DictionaryValue> ConstructMetadata(const std::string& url, |
- const std::string& hash); |
- void SetExternalDataReference(const std::string& policy, |
- scoped_ptr<base::DictionaryValue> metadata); |
- |
- DISALLOW_COPY_AND_ASSIGN(UserCloudExternalDataManagerTest); |
-}; |
- |
-UserCloudExternalDataManagerTest::UserCloudExternalDataManagerTest() { |
-} |
- |
-UserCloudExternalDataManagerTest::~UserCloudExternalDataManagerTest() { |
-} |
- |
-scoped_ptr<base::DictionaryValue> |
- UserCloudExternalDataManagerTest::ConstructMetadata( |
- const std::string& url, |
- const std::string& hash) { |
- scoped_ptr<base::DictionaryValue> metadata(new base::DictionaryValue); |
- metadata->SetStringWithoutPathExpansion("url", url); |
- metadata->SetStringWithoutPathExpansion("hash", base::HexEncode(hash.c_str(), |
- hash.size())); |
- return metadata.Pass(); |
-} |
- |
-void UserCloudExternalDataManagerTest::SetExternalDataReference( |
- const std::string& policy, |
- scoped_ptr<base::DictionaryValue> metadata) { |
-#if defined(OS_CHROMEOS) |
- UserCloudPolicyManagerChromeOS* policy_manager = |
- UserCloudPolicyManagerFactoryChromeOS::GetForProfile( |
- browser()->profile()); |
-#else |
- UserCloudPolicyManager* policy_manager = |
- UserCloudPolicyManagerFactory::GetForProfile(browser()->profile()); |
-#endif |
- ASSERT_TRUE(policy_manager); |
- CloudPolicyStore* store = policy_manager->core()->store(); |
- ASSERT_TRUE(store); |
- PolicyMap policy_map; |
- policy_map.Set(policy, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- metadata.release(), |
- new ExternalDataFetcher(store->external_data_manager(), |
- policy)); |
- store->SetPolicyMapForTesting(policy_map); |
-} |
+typedef InProcessBrowserTest UserCloudExternalDataManagerTest; |
IN_PROC_BROWSER_TEST_F(UserCloudExternalDataManagerTest, FetchExternalData) { |
CloudExternalDataManagerBase::SetMaxExternalDataSizeForTesting(1000); |
@@ -121,13 +57,23 @@ IN_PROC_BROWSER_TEST_F(UserCloudExternalDataManagerTest, FetchExternalData) { |
ASSERT_FALSE(external_data.empty()); |
scoped_ptr<base::DictionaryValue> metadata = |
- ConstructMetadata(url.spec(), base::SHA1HashString(external_data)); |
+ test::ConstructExternalDataReference(url.spec(), external_data); |
+#if defined(OS_CHROMEOS) |
+ UserCloudPolicyManagerChromeOS* policy_manager = |
+ UserCloudPolicyManagerFactoryChromeOS::GetForProfile( |
+ browser()->profile()); |
+#else |
+ UserCloudPolicyManager* policy_manager = |
+ UserCloudPolicyManagerFactory::GetForProfile(browser()->profile()); |
+#endif |
+ ASSERT_TRUE(policy_manager); |
// TODO(bartfab): The test injects an ExternalDataFetcher for an arbitrary |
// policy. This is only done because there are no policies that reference |
// external data yet. Once the first such policy is added, switch the test to |
// that policy and stop injecting a manually instantiated ExternalDataFetcher. |
- SetExternalDataReference(key::kHomepageLocation, |
- make_scoped_ptr(metadata->DeepCopy())); |
+ test::SetExternalDataReference(policy_manager->core(), |
+ key::kHomepageLocation, |
+ make_scoped_ptr(metadata->DeepCopy())); |
content::RunAllPendingInMessageLoop(); |
ProfilePolicyConnector* policy_connector = |
@@ -143,7 +89,7 @@ IN_PROC_BROWSER_TEST_F(UserCloudExternalDataManagerTest, FetchExternalData) { |
base::RunLoop run_loop; |
scoped_ptr<std::string> fetched_external_data; |
policy_entry->external_data_fetcher->Fetch(base::Bind( |
- &ExternalDataFetchCallback, |
+ &test::ExternalDataFetchCallback, |
&fetched_external_data, |
run_loop.QuitClosure())); |
run_loop.Run(); |