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

Unified Diff: chrome/browser/extensions/extension_pref_value_map_unittest.cc

Issue 46853004: Move ExtensionPrefs and friends to extensions/ directory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync and update app_shell Created 6 years, 11 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
Index: chrome/browser/extensions/extension_pref_value_map_unittest.cc
diff --git a/chrome/browser/extensions/extension_pref_value_map_unittest.cc b/chrome/browser/extensions/extension_pref_value_map_unittest.cc
deleted file mode 100644
index 4b8db2f974b1ccf1ac8aa1a83283f75fdf6e745a..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/extension_pref_value_map_unittest.cc
+++ /dev/null
@@ -1,400 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/basictypes.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/prefs/pref_store_observer_mock.h"
-#include "base/values.h"
-#include "chrome/browser/extensions/extension_pref_value_map.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-const char kExt1[] = "ext1";
-const char kExt2[] = "ext2";
-const char kExt3[] = "ext3";
-
-const char kPref1[] = "path1.subpath";
-const char kPref2[] = "path2";
-const char kPref3[] = "path3";
-const char kPref4[] = "path4";
-} // namespace
-
-static base::Value* CreateVal(const char* str) {
- return new base::StringValue(str);
-}
-
-static base::Time CreateTime(int64 t) {
- return base::Time::FromInternalValue(t);
-}
-
-template <typename BASECLASS>
-class ExtensionPrefValueMapTestBase : public BASECLASS {
- public:
- static const extensions::ExtensionPrefsScope kRegular =
- extensions::kExtensionPrefsScopeRegular;
- static const extensions::ExtensionPrefsScope kRegularOnly =
- extensions::kExtensionPrefsScopeRegularOnly;
- static const extensions::ExtensionPrefsScope kIncognitoPersistent =
- extensions::kExtensionPrefsScopeIncognitoPersistent;
- static const extensions::ExtensionPrefsScope kIncognitoSessionOnly =
- extensions::kExtensionPrefsScopeIncognitoSessionOnly;
-
- // Returns an empty string if the key is not set.
- std::string GetValue(const char * key, bool incognito) const {
- const base::Value *value =
- epvm_.GetEffectivePrefValue(key, incognito, NULL);
- std::string string_value;
- if (value)
- value->GetAsString(&string_value);
- return string_value;
- }
-
- protected:
- ExtensionPrefValueMap epvm_;
-};
-
-class ExtensionPrefValueMapTest
- : public ExtensionPrefValueMapTestBase<testing::Test> {
-};
-
-// A gmock-ified implementation of PrefStore::Observer.
-class ExtensionPrefValueMapObserverMock
- : public ExtensionPrefValueMap::Observer {
- public:
- ExtensionPrefValueMapObserverMock() {}
- virtual ~ExtensionPrefValueMapObserverMock() {}
-
- MOCK_METHOD1(OnPrefValueChanged, void(const std::string&));
- MOCK_METHOD0(OnInitializationCompleted, void());
- MOCK_METHOD0(OnExtensionPrefValueMapDestruction, void());
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMapObserverMock);
-};
-
-TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- EXPECT_EQ("val1", GetValue(kPref1, false));
-};
-
-TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- EXPECT_EQ("", GetValue(kPref1, false));
-};
-
-// Make sure the last-installed extension wins for each preference.
-TEST_F(ExtensionPrefValueMapTest, Override) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- epvm_.RegisterExtension(kExt3, CreateTime(30), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
- epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
-
- epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
- epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5"));
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val6"));
- epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val7"));
- epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val8"));
-
- EXPECT_EQ("val3", GetValue(kPref1, false));
- EXPECT_EQ("val5", GetValue(kPref2, false));
- EXPECT_EQ("val8", GetValue(kPref3, false));
-}
-
-TEST_F(ExtensionPrefValueMapTest, OverrideChecks) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- epvm_.RegisterExtension(kExt3, CreateTime(30), true);
-
- EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL));
- EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL));
- EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL));
- EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt1, kPref1, false));
- EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false));
- EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false));
-
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val1"));
-
- EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL));
- EXPECT_TRUE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL));
- EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL));
- EXPECT_FALSE(epvm_.CanExtensionControlPref(kExt1, kPref1, false));
- EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false));
- EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false));
-}
-
-TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- EXPECT_EQ("val1", GetValue(kPref1, true));
-}
-
-TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.UnregisterExtension(kExt1);
-
- EXPECT_EQ("", GetValue(kPref1, false));
-}
-
-// Tests uninstalling an extension that wasn't winning for any preferences.
-TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(10), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
-
- epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val3"));
- epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val4"));
-
- epvm_.UnregisterExtension(kExt1);
-
- EXPECT_EQ("val2", GetValue(kPref1, false));
- EXPECT_EQ("val4", GetValue(kPref2, false));
-}
-
-// Tests uninstalling an extension that was winning for all preferences.
-TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- epvm_.RegisterExtension(kExt3, CreateTime(30), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
- epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
-
- epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
- epvm_.SetExtensionPref(kExt3, kPref2, kRegular, CreateVal("val5"));
-
- epvm_.UnregisterExtension(kExt3);
-
- EXPECT_EQ("val2", GetValue(kPref1, false));
- EXPECT_EQ("val4", GetValue(kPref2, false));
-}
-
-// Tests uninstalling an extension that was winning for only some preferences.
-TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- epvm_.RegisterExtension(kExt3, CreateTime(30), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
- epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
-
- epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
- epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5"));
-
- epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val6"));
-
- epvm_.SetExtensionPref(kExt2, kPref4, kRegular, CreateVal("val7"));
-
- epvm_.UnregisterExtension(kExt2);
-
- EXPECT_EQ("val3", GetValue(kPref1, false));
- EXPECT_EQ("val4", GetValue(kPref2, false));
- EXPECT_EQ("val6", GetValue(kPref3, false));
- EXPECT_EQ("", GetValue(kPref4, false));
-}
-
-// Tests triggering of notifications to registered observers.
-TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) {
- using testing::Mock;
- using testing::StrEq;
-
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
-
- ExtensionPrefValueMapObserverMock observer;
- epvm_.AddObserver(&observer);
-
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- Mock::VerifyAndClearExpectations(&observer);
-
- // Write the same value again.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0);
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- Mock::VerifyAndClearExpectations(&observer);
-
- // Override incognito value.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val2"));
- Mock::VerifyAndClearExpectations(&observer);
-
- // Override non-incognito value.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val3"));
- Mock::VerifyAndClearExpectations(&observer);
-
- // Disable.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.SetExtensionState(kExt1, false);
- Mock::VerifyAndClearExpectations(&observer);
-
- // Enable.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.SetExtensionState(kExt1, true);
- Mock::VerifyAndClearExpectations(&observer);
-
- // Uninstall
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
- epvm_.UnregisterExtension(kExt1);
- Mock::VerifyAndClearExpectations(&observer);
-
- epvm_.RemoveObserver(&observer);
-
- // Write new value --> no notification after removing observer.
- EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0);
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val4"));
- Mock::VerifyAndClearExpectations(&observer);
-}
-
-// Tests disabling an extension.
-TEST_F(ExtensionPrefValueMapTest, DisableExt) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionState(kExt1, false);
- EXPECT_EQ("", GetValue(kPref1, false));
-}
-
-// Tests disabling and reenabling an extension.
-TEST_F(ExtensionPrefValueMapTest, ReenableExt) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
-
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
- epvm_.SetExtensionState(kExt1, false);
- epvm_.SetExtensionState(kExt1, true);
- EXPECT_EQ("val1", GetValue(kPref1, false));
-}
-
-struct OverrideIncognitoTestCase {
- OverrideIncognitoTestCase(int val_ext1_regular,
- int val_ext1_regular_only,
- int val_ext1_incognito_pers,
- int val_ext1_incognito_sess,
- int val_ext2_regular,
- int val_ext2_regular_only,
- int val_ext2_incognito_pers,
- int val_ext2_incognito_sess,
- int effective_value_regular,
- int effective_value_incognito)
- : val_ext1_regular_(val_ext1_regular),
- val_ext1_regular_only_(val_ext1_regular_only),
- val_ext1_incognito_pers_(val_ext1_incognito_pers),
- val_ext1_incognito_sess_(val_ext1_incognito_sess),
- val_ext2_regular_(val_ext2_regular),
- val_ext2_regular_only_(val_ext2_regular_only),
- val_ext2_incognito_pers_(val_ext2_incognito_pers),
- val_ext2_incognito_sess_(val_ext2_incognito_sess),
- effective_value_regular_(effective_value_regular),
- effective_value_incognito_(effective_value_incognito) {}
-
- // pers. = persistent
- // sess. = session only
- int val_ext1_regular_; // pref value of extension 1
- int val_ext1_regular_only_; // pref value of extension 1 regular-only.
- int val_ext1_incognito_pers_; // pref value of extension 1 incognito pers.
- int val_ext1_incognito_sess_; // pref value of extension 1 incognito sess.
- int val_ext2_regular_; // pref value of extension 2
- int val_ext2_regular_only_; // pref value of extension 2 regular-only.
- int val_ext2_incognito_pers_; // pref value of extension 2 incognito pers.
- int val_ext2_incognito_sess_; // pref value of extension 2 incognito sess.
- int effective_value_regular_; // desired winner regular
- int effective_value_incognito_; // desired winner incognito
-};
-
-class ExtensionPrefValueMapTestIncognitoTests
- : public ExtensionPrefValueMapTestBase<
- testing::TestWithParam<OverrideIncognitoTestCase> > {
-};
-
-TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) {
- OverrideIncognitoTestCase test = GetParam();
- const char* strings[] = {
- "undefined",
- "val1",
- "val2",
- "val3",
- "val4",
- "val5",
- "val6",
- "val7",
- "val8",
- };
-
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- if (test.val_ext1_regular_) {
- epvm_.SetExtensionPref(kExt1, kPref1, kRegular,
- CreateVal(strings[test.val_ext1_regular_]));
- }
- if (test.val_ext1_regular_only_) {
- epvm_.SetExtensionPref(kExt1, kPref1, kRegularOnly,
- CreateVal(strings[test.val_ext1_regular_only_]));
- }
- if (test.val_ext1_incognito_pers_) {
- epvm_.SetExtensionPref(kExt1, kPref1, kIncognitoPersistent,
- CreateVal(strings[test.val_ext1_incognito_pers_]));
- }
- if (test.val_ext1_incognito_sess_) {
- epvm_.SetExtensionPref(kExt1, kPref1, kIncognitoSessionOnly,
- CreateVal(strings[test.val_ext1_incognito_sess_]));
- }
- if (test.val_ext2_regular_) {
- epvm_.SetExtensionPref(kExt2, kPref1, kRegular,
- CreateVal(strings[test.val_ext2_regular_]));
- }
- if (test.val_ext2_regular_only_) {
- epvm_.SetExtensionPref(kExt2, kPref1, kRegularOnly,
- CreateVal(strings[test.val_ext2_regular_only_]));
- }
- if (test.val_ext2_incognito_pers_) {
- epvm_.SetExtensionPref(kExt2, kPref1, kIncognitoPersistent,
- CreateVal(strings[test.val_ext2_incognito_pers_]));
- }
- if (test.val_ext2_incognito_sess_) {
- epvm_.SetExtensionPref(kExt2, kPref1, kIncognitoSessionOnly,
- CreateVal(strings[test.val_ext2_incognito_sess_]));
- }
- std::string actual;
- EXPECT_EQ(strings[test.effective_value_regular_], GetValue(kPref1, false));
- EXPECT_EQ(strings[test.effective_value_incognito_], GetValue(kPref1, true));
- epvm_.UnregisterExtension(kExt1);
- epvm_.UnregisterExtension(kExt2);
-}
-
-INSTANTIATE_TEST_CASE_P(
- ExtensionPrefValueMapTestIncognitoTestsInstance,
- ExtensionPrefValueMapTestIncognitoTests,
- testing::Values(
- // e.g. (1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means:
- // ext1 regular is set to "val1", ext2 incognito persistent is set to
- // "val7"
- // --> the winning regular value is "val1", the winning incognito
- // value is "val7".
- OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 0, 0, 1, 1),
- OverrideIncognitoTestCase(1, 2, 0, 0, 0, 0, 0, 0, 2, 1),
- OverrideIncognitoTestCase(1, 0, 3, 0, 0, 0, 0, 0, 1, 3),
- OverrideIncognitoTestCase(1, 0, 0, 4, 0, 0, 0, 0, 1, 4),
- OverrideIncognitoTestCase(1, 0, 3, 4, 0, 0, 0, 0, 1, 4),
- OverrideIncognitoTestCase(1, 2, 3, 0, 0, 0, 0, 0, 2, 3),
- OverrideIncognitoTestCase(1, 0, 0, 0, 5, 0, 0, 0, 5, 5),
- OverrideIncognitoTestCase(1, 2, 3, 0, 5, 0, 0, 0, 5, 5),
- OverrideIncognitoTestCase(1, 0, 0, 0, 0, 6, 0, 0, 6, 1),
- OverrideIncognitoTestCase(1, 0, 3, 0, 5, 6, 0, 0, 6, 5),
- OverrideIncognitoTestCase(1, 0, 0, 4, 5, 6, 0, 0, 6, 5),
- OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 7, 0, 1, 7),
- OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 0, 5, 7),
- OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 0, 8, 5, 8),
- OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 8, 5, 8),
- OverrideIncognitoTestCase(1, 2, 3, 0, 0, 6, 7, 0, 6, 7)));
« no previous file with comments | « chrome/browser/extensions/extension_pref_value_map_factory.cc ('k') | chrome/browser/extensions/extension_prefs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698