Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: extensions/browser/app_window/app_window_geometry_cache_unittest.cc

Issue 549663002: Move AppWindowGeometryCacheTest to extensions_unittests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: (app-window) rebase 2 Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_tests_unit.gypi ('k') | extensions/browser/null_app_sorting.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/app_window/app_window_geometry_cache_unittest.cc
diff --git a/extensions/browser/app_window/app_window_geometry_cache_unittest.cc b/extensions/browser/app_window/app_window_geometry_cache_unittest.cc
index a526e7d378bd3976a104cc5e4a3660d95abaff15..144bd158256237da7c986cc906bdf90bcef98ad6 100644
--- a/extensions/browser/app_window/app_window_geometry_cache_unittest.cc
+++ b/extensions/browser/app_window/app_window_geometry_cache_unittest.cc
@@ -2,15 +2,22 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "extensions/browser/app_window/app_window_geometry_cache.h"
+
+#include "base/files/file_path.h"
#include "base/memory/scoped_ptr.h"
#include "base/prefs/mock_pref_change_callback.h"
+#include "base/prefs/pref_service_factory.h"
+#include "base/prefs/testing_pref_store.h"
#include "base/strings/string_number_conversions.h"
-#include "chrome/browser/extensions/test_extension_prefs.h"
-#include "chrome/test/base/testing_profile.h"
+#include "components/pref_registry/pref_registry_syncable.h"
+#include "content/public/test/test_browser_context.h"
#include "content/public/test/test_browser_thread.h"
#include "content/public/test/test_utils.h"
-#include "extensions/browser/app_window/app_window_geometry_cache.h"
+#include "extensions/browser/extension_pref_value_map.h"
#include "extensions/browser/extension_prefs.h"
+#include "extensions/browser/extensions_test.h"
+#include "extensions/browser/null_app_sorting.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/value_builder.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -35,16 +42,14 @@ scoped_refptr<Extension> CreateExtension(const std::string& id) {
} // namespace
// Base class for tests.
-class AppWindowGeometryCacheTest : public testing::Test {
+class AppWindowGeometryCacheTest : public ExtensionsTest {
public:
AppWindowGeometryCacheTest()
- : profile_(new TestingProfile),
- ui_thread_(BrowserThread::UI, &ui_message_loop_) {
- prefs_.reset(new TestExtensionPrefs(
- ui_message_loop_.message_loop_proxy().get()));
- cache_.reset(new AppWindowGeometryCache(profile_.get(), prefs_->prefs()));
- cache_->SetSyncDelayForTests(0);
- }
+ : ui_thread_(BrowserThread::UI, &ui_message_loop_) {}
+
+ // testing::Test overrides:
+ virtual void SetUp() OVERRIDE;
+ virtual void TearDown() OVERRIDE;
void AddGeometryAndLoadExtension(const std::string& extension_id,
const std::string& window_id,
@@ -59,14 +64,55 @@ class AppWindowGeometryCacheTest : public testing::Test {
void LoadExtension(const std::string& extension_id);
void UnloadExtension(const std::string& extension_id);
+ // Creates and adds an extension with associated prefs. Returns the extension
+ // ID.
+ std::string AddExtensionWithPrefs(const std::string& name);
+
protected:
- scoped_ptr<TestingProfile> profile_;
base::MessageLoopForUI ui_message_loop_;
content::TestBrowserThread ui_thread_;
- scoped_ptr<TestExtensionPrefs> prefs_;
+ scoped_ptr<ExtensionPrefValueMap> extension_pref_value_map_;
+ scoped_ptr<PrefService> pref_service_;
+ scoped_ptr<ExtensionPrefs> extension_prefs_;
scoped_ptr<AppWindowGeometryCache> cache_;
};
+void AppWindowGeometryCacheTest::SetUp() {
+ ExtensionsTest::SetUp();
+
+ // Set up all the dependencies of ExtensionPrefs.
+ extension_pref_value_map_.reset(new ExtensionPrefValueMap);
+ base::PrefServiceFactory factory;
+ factory.set_user_prefs(new TestingPrefStore);
+ factory.set_extension_prefs(new TestingPrefStore);
+ user_prefs::PrefRegistrySyncable* pref_registry =
+ new user_prefs::PrefRegistrySyncable;
+ // Prefs should be registered before the PrefService is created.
+ ExtensionPrefs::RegisterProfilePrefs(pref_registry);
+ pref_service_ = factory.Create(pref_registry).Pass();
+
+ extension_prefs_.reset(ExtensionPrefs::Create(
+ pref_service_.get(),
+ browser_context()->GetPath().AppendASCII("Extensions"),
+ extension_pref_value_map_.get(),
+ scoped_ptr<AppSorting>(new NullAppSorting),
+ false /* extensions_disabled */,
+ std::vector<ExtensionPrefsObserver*>()));
+
+ cache_.reset(
+ new AppWindowGeometryCache(browser_context(), extension_prefs_.get()));
+ cache_->SetSyncDelayForTests(0);
+}
+
+void AppWindowGeometryCacheTest::TearDown() {
+ cache_.reset();
+ extension_prefs_.reset();
+ pref_service_.reset();
+ extension_pref_value_map_.reset();
+
+ ExtensionsTest::TearDown();
+}
+
void AppWindowGeometryCacheTest::AddGeometryAndLoadExtension(
const std::string& extension_id,
const std::string& window_id,
@@ -85,7 +131,7 @@ void AppWindowGeometryCacheTest::AddGeometryAndLoadExtension(
value->SetInteger("screen_bounds_h", screen_bounds.height());
value->SetInteger("state", state);
dict->SetWithoutPathExpansion(window_id, value);
- prefs_->prefs()->SetGeometryCache(extension_id, dict.Pass());
+ extension_prefs_->SetGeometryCache(extension_id, dict.Pass());
LoadExtension(extension_id);
}
@@ -102,23 +148,43 @@ void AppWindowGeometryCacheTest::LoadExtension(
void AppWindowGeometryCacheTest::UnloadExtension(
const std::string& extension_id) {
scoped_refptr<Extension> extension = CreateExtension(extension_id);
- cache_->OnExtensionUnloaded(
- profile_.get(),
- extension.get(),
- UnloadedExtensionInfo::REASON_DISABLE);
+ cache_->OnExtensionUnloaded(browser_context(),
+ extension.get(),
+ UnloadedExtensionInfo::REASON_DISABLE);
WaitForSync();
}
+std::string AppWindowGeometryCacheTest::AddExtensionWithPrefs(
+ const std::string& name) {
+ // Generate the extension with a path based on the name so that extensions
+ // with different names will have different IDs.
+ base::FilePath path =
+ browser_context()->GetPath().AppendASCII("Extensions").AppendASCII(name);
+ scoped_refptr<Extension> extension =
+ ExtensionBuilder()
+ .SetManifest(
+ DictionaryBuilder().Set("name", "test").Set("version", "0.1"))
+ .SetPath(path)
+ .Build();
+
+ extension_prefs_->OnExtensionInstalled(
+ extension.get(),
+ Extension::ENABLED,
+ syncer::StringOrdinal::CreateInitialOrdinal(),
+ std::string());
+ return extension->id();
+}
+
// Test getting geometry from an empty store.
TEST_F(AppWindowGeometryCacheTest, GetGeometryEmptyStore) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
ASSERT_FALSE(cache_->GetGeometry(extension_id, kWindowId, NULL, NULL, NULL));
}
// Test getting geometry for an unknown extension.
TEST_F(AppWindowGeometryCacheTest, GetGeometryUnkownExtension) {
- const std::string extension_id1 = prefs_->AddExtensionAndReturnId("ext1");
- const std::string extension_id2 = prefs_->AddExtensionAndReturnId("ext2");
+ const std::string extension_id1 = AddExtensionWithPrefs("ext1");
+ const std::string extension_id2 = AddExtensionWithPrefs("ext2");
AddGeometryAndLoadExtension(extension_id1,
kWindowId,
gfx::Rect(4, 5, 31, 43),
@@ -129,7 +195,7 @@ TEST_F(AppWindowGeometryCacheTest, GetGeometryUnkownExtension) {
// Test getting geometry for an unknown window in a known extension.
TEST_F(AppWindowGeometryCacheTest, GetGeometryUnkownWindow) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
AddGeometryAndLoadExtension(extension_id,
kWindowId,
gfx::Rect(4, 5, 31, 43),
@@ -141,7 +207,7 @@ TEST_F(AppWindowGeometryCacheTest, GetGeometryUnkownWindow) {
// Test that loading geometry, screen_bounds and state from the store works
// correctly.
TEST_F(AppWindowGeometryCacheTest, GetGeometryAndStateFromStore) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
gfx::Rect bounds(4, 5, 31, 43);
gfx::Rect screen_bounds(0, 0, 1600, 900);
ui::WindowShowState state = ui::SHOW_STATE_NORMAL;
@@ -159,7 +225,7 @@ TEST_F(AppWindowGeometryCacheTest, GetGeometryAndStateFromStore) {
// Test corrupt bounds will not be loaded.
TEST_F(AppWindowGeometryCacheTest, CorruptBounds) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
gfx::Rect bounds;
gfx::Rect screen_bounds(0, 0, 1600, 900);
ui::WindowShowState state = ui::SHOW_STATE_NORMAL;
@@ -177,7 +243,7 @@ TEST_F(AppWindowGeometryCacheTest, CorruptBounds) {
// Test corrupt screen bounds will not be loaded.
TEST_F(AppWindowGeometryCacheTest, CorruptScreenBounds) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
gfx::Rect bounds(4, 5, 31, 43);
gfx::Rect screen_bounds;
ui::WindowShowState state = ui::SHOW_STATE_NORMAL;
@@ -195,7 +261,7 @@ TEST_F(AppWindowGeometryCacheTest, CorruptScreenBounds) {
// Test corrupt state will not be loaded.
TEST_F(AppWindowGeometryCacheTest, CorruptState) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
gfx::Rect bounds(4, 5, 31, 43);
gfx::Rect screen_bounds(0, 0, 1600, 900);
ui::WindowShowState state = ui::SHOW_STATE_DEFAULT;
@@ -214,7 +280,7 @@ TEST_F(AppWindowGeometryCacheTest, CorruptState) {
// Test saving geometry, screen_bounds and state to the cache and state store,
// and reading it back.
TEST_F(AppWindowGeometryCacheTest, SaveGeometryAndStateToStore) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
const std::string window_id(kWindowId);
// inform cache of extension
@@ -241,7 +307,7 @@ TEST_F(AppWindowGeometryCacheTest, SaveGeometryAndStateToStore) {
// check if geometry got stored correctly in the state store
const base::DictionaryValue* dict =
- prefs_->prefs()->GetGeometryCache(extension_id);
+ extension_prefs_->GetGeometryCache(extension_id);
ASSERT_TRUE(dict);
ASSERT_TRUE(dict->HasKey(window_id));
@@ -281,7 +347,7 @@ TEST_F(AppWindowGeometryCacheTest, NoDuplicateWrites) {
using testing::_;
using testing::Mock;
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
gfx::Rect bounds1(100, 200, 300, 400);
gfx::Rect bounds2(200, 400, 600, 800);
gfx::Rect bounds2_duplicate(200, 400, 600, 800);
@@ -290,9 +356,9 @@ TEST_F(AppWindowGeometryCacheTest, NoDuplicateWrites) {
gfx::Rect screen_bounds2(0, 0, 1366, 768);
gfx::Rect screen_bounds2_duplicate(0, 0, 1366, 768);
- MockPrefChangeCallback observer(prefs_->pref_service());
+ MockPrefChangeCallback observer(pref_service_.get());
PrefChangeRegistrar registrar;
- registrar.Init(prefs_->pref_service());
+ registrar.Init(pref_service_.get());
registrar.Add("extensions.settings", observer.GetCallback());
// Write the first bounds - it should do > 0 writes.
@@ -340,7 +406,7 @@ TEST_F(AppWindowGeometryCacheTest, NoDuplicateWrites) {
// Tests that no more than kMaxCachedWindows windows will be cached.
TEST_F(AppWindowGeometryCacheTest, MaxWindows) {
- const std::string extension_id = prefs_->AddExtensionAndReturnId("ext1");
+ const std::string extension_id = AddExtensionWithPrefs("ext1");
// inform cache of extension
LoadExtension(extension_id);
« no previous file with comments | « chrome/chrome_tests_unit.gypi ('k') | extensions/browser/null_app_sorting.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698