X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fextensions%2Fexternal_provider_impl_unittest.cc;h=81364e1b86d323ef9f0dd49ef8bd3fdd7865d929;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=3b82b78e6559ea543e6fbec755addff55885e1d9;hpb=42dcc1327bbd3f24706b73963db769f667a58196;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/extensions/external_provider_impl_unittest.cc b/src/chrome/browser/extensions/external_provider_impl_unittest.cc index 3b82b78..81364e1 100644 --- a/src/chrome/browser/extensions/external_provider_impl_unittest.cc +++ b/src/chrome/browser/extensions/external_provider_impl_unittest.cc @@ -5,17 +5,24 @@ #include "chrome/browser/extensions/external_provider_impl.h" #include "base/command_line.h" -#include "base/file_util.h" #include "base/files/file_path.h" +#include "base/files/file_util.h" #include "base/memory/scoped_ptr.h" #include "base/path_service.h" +#include "base/prefs/testing_pref_service.h" #include "base/strings/stringprintf.h" #include "base/test/scoped_path_override.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/extensions/extension_service_unittest.h" +#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/common/pref_names.h" +#include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "content/public/browser/notification_service.h" #include "content/public/test/test_utils.h" @@ -25,13 +32,16 @@ #include "testing/gmock/include/gmock/gmock.h" #if defined(OS_CHROMEOS) -#include "chromeos/system/mock_statistics_provider.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/fake_statistics_provider.h" #include "chromeos/system/statistics_provider.h" #endif -using ::testing::_; using ::testing::NotNull; using ::testing::Return; +using ::testing::_; namespace extensions { @@ -45,10 +55,22 @@ const char kAppPath[] = "/app.crx"; class ExternalProviderImplTest : public ExtensionServiceTestBase { public: ExternalProviderImplTest() {} - virtual ~ExternalProviderImplTest() {} + ~ExternalProviderImplTest() override {} void InitServiceWithExternalProviders() { - InitializeExtensionServiceWithUpdater(); +#if defined(OS_CHROMEOS) + chromeos::ScopedUserManagerEnabler scoped_user_manager( + new chromeos::FakeUserManager); +#endif + 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 + // would cause the external updates to never finish install. + profile_->GetPrefs()->SetString(prefs::kDefaultApps, ""); ProviderCollection providers; extensions::ExternalProviderImpl::CreateExternalProviders( @@ -61,10 +83,28 @@ 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()); + +#if defined(OS_CHROMEOS) + TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_); + chromeos::ServicesCustomizationDocument::RegisterPrefs( + local_state_.registry()); +#endif + ASSERT_TRUE(test_server_->InitializeAndWaitUntilReady()); test_server_->RegisterRequestHandler( base::Bind(&ExternalProviderImplTest::HandleRequest, @@ -75,18 +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); -#endif + void TearDown() override { + TestingBrowserProcess::GetGlobal()->SetLocalState(NULL); } private: @@ -106,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(); + return response.Pass(); } if (url.path() == kAppPath) { base::FilePath test_data_dir; @@ -118,16 +150,20 @@ class ExternalProviderImplTest : public ExtensionServiceTestBase { scoped_ptr response(new BasicHttpResponse); response->set_code(net::HTTP_OK); response->set_content(contents); - return response.PassAs(); + return response.Pass(); } - return scoped_ptr(); + return nullptr; } scoped_ptr test_server_; scoped_ptr 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 DISALLOW_COPY_AND_ASSIGN(ExternalProviderImplTest);