Chromium Code Reviews| Index: chrome/browser/extensions/extension_settings_frontend_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_settings_frontend_unittest.cc b/chrome/browser/extensions/extension_settings_frontend_unittest.cc |
| index d245850f4f14876bb6aa9cd98ca451896d2e4520..5da181ffa6200ebfe9087ca977609ba789c8babc 100644 |
| --- a/chrome/browser/extensions/extension_settings_frontend_unittest.cc |
| +++ b/chrome/browser/extensions/extension_settings_frontend_unittest.cc |
| @@ -9,11 +9,12 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop.h" |
| #include "base/scoped_temp_dir.h" |
| -#include "chrome/browser/extensions/extension_settings_backend.h" |
| #include "chrome/browser/extensions/extension_settings_frontend.h" |
| #include "chrome/browser/extensions/extension_settings_storage.h" |
| +#include "chrome/browser/extensions/extension_settings_test_util.h" |
| #include "chrome/common/chrome_notification_types.h" |
| -#include "chrome/test/base/testing_profile.h" |
| + |
| +using namespace extension_settings_test_util; |
| class ExtensionSettingsFrontendTest : public testing::Test { |
| public: |
| @@ -23,7 +24,7 @@ class ExtensionSettingsFrontendTest : public testing::Test { |
| virtual void SetUp() OVERRIDE { |
| ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| - profile_.reset(new TestingProfile(temp_dir_.path())); |
| + profile_.reset(new MockProfile(temp_dir_.path())); |
| frontend_.reset(new ExtensionSettingsFrontend(profile_.get())); |
| } |
| @@ -33,39 +34,25 @@ class ExtensionSettingsFrontendTest : public testing::Test { |
| } |
| protected: |
| - // Puts the settings backend in |backend|. |
| - void GetBackend(ExtensionSettingsBackend** backend) { |
| - frontend_->RunWithBackend( |
| - base::Bind( |
| - &ExtensionSettingsFrontendTest::AssignBackend, |
| - base::Unretained(this), |
| - backend)); |
| - MessageLoop::current()->RunAllPending(); |
| - ASSERT_TRUE(*backend); |
| - } |
| - |
| ScopedTempDir temp_dir_; |
| - scoped_ptr<TestingProfile> profile_; |
| + scoped_ptr<MockProfile> profile_; |
| scoped_ptr<ExtensionSettingsFrontend> frontend_; |
| private: |
| - // Intended as a ExtensionSettingsFrontend::BackendCallback from GetBackend. |
| - void AssignBackend( |
| - ExtensionSettingsBackend** dst, ExtensionSettingsBackend* src) { |
| - *dst = src; |
| - } |
| - |
| MessageLoop message_loop_; |
| BrowserThread ui_thread_; |
| BrowserThread file_thread_; |
| }; |
| -TEST_F(ExtensionSettingsFrontendTest, SettingsPreservedAcrossReconstruction) { |
| - ExtensionSettingsBackend* backend; |
| - GetBackend(&backend); |
| +// Get a semblance of coverage for both extension and app settings by |
| +// alternating in each test. |
| +// TODO(kalman): explicitly test the two interact correctly. |
|
akalin
2011/10/28 06:04:54
consider parametrized tests here, too
(Although I
not at google - send to devlin
2011/10/31 00:02:23
Ditto my last comment. I have a few things I need
|
| +TEST_F(ExtensionSettingsFrontendTest, SettingsPreservedAcrossReconstruction) { |
| const std::string id = "ext"; |
| - ExtensionSettingsStorage* storage = backend->GetStorage(id); |
| + profile_->GetMockExtensionService()->AddExtension(id, false); |
| + |
| + ExtensionSettingsStorage* storage = GetStorage(id, frontend_.get()); |
| // The correctness of Get/Set/Remove/Clear is tested elsewhere so no need to |
| // be too rigorous. |
| @@ -78,8 +65,7 @@ TEST_F(ExtensionSettingsFrontendTest, SettingsPreservedAcrossReconstruction) { |
| EXPECT_FALSE(result.GetSettings()->empty()); |
| frontend_.reset(new ExtensionSettingsFrontend(profile_.get())); |
| - GetBackend(&backend); |
| - storage = backend->GetStorage(id); |
| + storage = GetStorage(id, frontend_.get()); |
| result = storage->Get(); |
| ASSERT_FALSE(result.HasError()); |
| @@ -87,32 +73,31 @@ TEST_F(ExtensionSettingsFrontendTest, SettingsPreservedAcrossReconstruction) { |
| } |
| TEST_F(ExtensionSettingsFrontendTest, SettingsClearedOnUninstall) { |
| - ExtensionSettingsBackend* backend; |
| - GetBackend(&backend); |
| - |
| const std::string id = "ext"; |
| - ExtensionSettingsStorage* storage = backend->GetStorage(id); |
| + profile_->GetMockExtensionService()->AddExtension(id, true); |
| + |
| + ExtensionSettingsStorage* storage = GetStorage(id, frontend_.get()); |
| StringValue bar("bar"); |
| ExtensionSettingsStorage::Result result = storage->Set("foo", bar); |
| ASSERT_FALSE(result.HasError()); |
| // This would be triggered by extension uninstall via an ExtensionDataDeleter. |
| - backend->DeleteExtensionData(id); |
| + frontend_->DeleteStorageSoon(id); |
| + MessageLoop::current()->RunAllPending(); |
| // The storage area may no longer be valid post-uninstall, so re-request. |
| - storage = backend->GetStorage(id); |
| + storage = GetStorage(id, frontend_.get()); |
| result = storage->Get(); |
| ASSERT_FALSE(result.HasError()); |
| EXPECT_TRUE(result.GetSettings()->empty()); |
| } |
| TEST_F(ExtensionSettingsFrontendTest, LeveldbDatabaseDeletedFromDiskOnClear) { |
| - ExtensionSettingsBackend* backend; |
| - GetBackend(&backend); |
| - |
| const std::string id = "ext"; |
| - ExtensionSettingsStorage* storage = backend->GetStorage(id); |
| + profile_->GetMockExtensionService()->AddExtension(id, false); |
| + |
| + ExtensionSettingsStorage* storage = GetStorage(id, frontend_.get()); |
| StringValue bar("bar"); |
| ExtensionSettingsStorage::Result result = storage->Set("foo", bar); |