Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / external_provider_impl_unittest.cc
index 67a5d47..81364e1 100644 (file)
@@ -16,6 +16,8 @@
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/extension_service_test_base.h"
 #include "chrome/browser/extensions/updater/extension_cache_fake.h"
+#include "chrome/browser/extensions/updater/extension_updater.h"
+#include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension_constants.h"
 #include "chrome/browser/chromeos/customization_document.h"
 #include "chrome/browser/chromeos/login/users/fake_user_manager.h"
 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
-#include "chromeos/system/mock_statistics_provider.h"
+#include "chromeos/system/fake_statistics_provider.h"
 #include "chromeos/system/statistics_provider.h"
 #endif
 
-using ::testing::_;
 using ::testing::NotNull;
 using ::testing::Return;
+using ::testing::_;
 
 namespace extensions {
 
@@ -53,14 +55,17 @@ const char kAppPath[] = "/app.crx";
 class ExternalProviderImplTest : public ExtensionServiceTestBase {
  public:
   ExternalProviderImplTest() {}
-  virtual ~ExternalProviderImplTest() {}
+  ~ExternalProviderImplTest() override {}
 
   void InitServiceWithExternalProviders() {
 #if defined(OS_CHROMEOS)
     chromeos::ScopedUserManagerEnabler scoped_user_manager(
         new chromeos::FakeUserManager);
 #endif
-    InitializeExtensionServiceWithUpdater();
+    InitializeExtensionServiceWithUpdaterAndPrefs();
+
+    service()->updater()->SetExtensionCacheForTesting(
+        test_extension_cache_.get());
 
     // Don't install default apps. Some of the default apps are downloaded from
     // the webstore, ignoring the url we pass to kAppsGalleryUpdateURL, which
@@ -78,8 +83,19 @@ class ExternalProviderImplTest : public ExtensionServiceTestBase {
     }
   }
 
+  void InitializeExtensionServiceWithUpdaterAndPrefs() {
+    ExtensionServiceInitParams params = CreateDefaultInitParams();
+    params.autoupdate_enabled = true;
+    // Create prefs file to make the profile not new.
+    const char prefs[] = "{}";
+    EXPECT_EQ(base::WriteFile(params.pref_file, prefs, sizeof(prefs)),
+              int(sizeof(prefs)));
+    InitializeExtensionService(params);
+    service_->updater()->Start();
+  }
+
   // ExtensionServiceTestBase overrides:
-  virtual void SetUp() OVERRIDE {
+  void SetUp() override {
     ExtensionServiceTestBase::SetUp();
     test_server_.reset(new EmbeddedTestServer());
 
@@ -99,19 +115,10 @@ class ExternalProviderImplTest : public ExtensionServiceTestBase {
     CommandLine* cmdline = CommandLine::ForCurrentProcess();
     cmdline->AppendSwitchASCII(switches::kAppsGalleryUpdateURL,
                                test_server_->GetURL(kManifestPath).spec());
-#if defined(OS_CHROMEOS)
-    chromeos::system::StatisticsProvider::SetTestProvider(
-        &mock_statistics_provider_);
-    EXPECT_CALL(mock_statistics_provider_, GetMachineStatistic(_, NotNull()))
-        .WillRepeatedly(Return(false));
-#endif
   }
 
-  virtual void TearDown() OVERRIDE {
-#if defined(OS_CHROMEOS)
-    chromeos::system::StatisticsProvider::SetTestProvider(NULL);
+  void TearDown() override {
     TestingBrowserProcess::GetGlobal()->SetLocalState(NULL);
-#endif
   }
 
  private:
@@ -131,7 +138,7 @@ class ExternalProviderImplTest : public ExtensionServiceTestBase {
           extension_misc::kInAppPaymentsSupportAppId,
           test_server_->GetURL(kAppPath).spec().c_str()));
       response->set_content_type("text/xml");
-      return response.PassAs<HttpResponse>();
+      return response.Pass();
     }
     if (url.path() == kAppPath) {
       base::FilePath test_data_dir;
@@ -143,16 +150,19 @@ class ExternalProviderImplTest : public ExtensionServiceTestBase {
       scoped_ptr<BasicHttpResponse> response(new BasicHttpResponse);
       response->set_code(net::HTTP_OK);
       response->set_content(contents);
-      return response.PassAs<HttpResponse>();
+      return response.Pass();
     }
 
-    return scoped_ptr<HttpResponse>();
+    return nullptr;
   }
 
   scoped_ptr<EmbeddedTestServer> test_server_;
   scoped_ptr<ExtensionCacheFake> test_extension_cache_;
+
 #if defined(OS_CHROMEOS)
-  chromeos::system::MockStatisticsProvider mock_statistics_provider_;
+  // chromeos::ServicesCustomizationExternalLoader is hooked up as an
+  // extensions::ExternalLoader and depends on a functioning StatisticsProvider.
+  chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_;
   TestingPrefServiceSimple local_state_;
 #endif