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

Unified Diff: extensions/browser/extension_pref_value_map_unittest.cc

Issue 184043024: Limit scope of settings API configuration and proxy permission (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move incognito permission test from ChromeExtensionsBrowserClient to ExtensionPrefs Created 6 years, 10 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: extensions/browser/extension_pref_value_map_unittest.cc
diff --git a/extensions/browser/extension_pref_value_map_unittest.cc b/extensions/browser/extension_pref_value_map_unittest.cc
index 35fa3c6b4bd1cd1d8074b66b852e6b10731cae14..cb63533a9922da2352f86e21ed2895e6b1eb1497 100644
--- a/extensions/browser/extension_pref_value_map_unittest.cc
+++ b/extensions/browser/extension_pref_value_map_unittest.cc
@@ -42,6 +42,11 @@ class ExtensionPrefValueMapTestBase : public BASECLASS {
static const extensions::ExtensionPrefsScope kIncognitoSessionOnly =
extensions::kExtensionPrefsScopeIncognitoSessionOnly;
+ // Constants to make extension registration easier to read.
+ static const bool kEnabled = true; // Extension is enabled by default.
+ static const bool kNoIncognito =
+ false; // Extension has no incognito permission by default.
Bernhard Bauer 2014/03/04 17:31:18 Nit: I would rather keep the code on a single line
battre 2014/03/05 08:34:36 I have removed these lines.
+
// Returns an empty string if the key is not set.
std::string GetValue(const char * key, bool incognito) const {
const base::Value *value =
@@ -76,21 +81,21 @@ class ExtensionPrefValueMapObserverMock
};
TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
Bernhard Bauer 2014/03/04 17:31:18 Do you ever call this method with different values
battre 2014/03/05 08:34:36 Done.
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
EXPECT_EQ("val1", GetValue(kPref1, false));
};
TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
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_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt2, CreateTime(20), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt3, CreateTime(30), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
@@ -109,9 +114,9 @@ TEST_F(ExtensionPrefValueMapTest, Override) {
}
TEST_F(ExtensionPrefValueMapTest, OverrideChecks) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
- epvm_.RegisterExtension(kExt3, CreateTime(30), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt2, CreateTime(20), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt3, CreateTime(30), kEnabled, kNoIncognito);
EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL));
EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL));
@@ -131,13 +136,19 @@ TEST_F(ExtensionPrefValueMapTest, OverrideChecks) {
}
TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
+ // Check that value is not propagated until extension gets incognito
Bernhard Bauer 2014/03/04 17:31:18 Nit: "the value" and "the extension".
battre 2014/03/05 08:34:36 Done.
+ // permission.
+ EXPECT_EQ("", GetValue(kPref1, true));
Bernhard Bauer 2014/03/04 17:31:18 Use std::string() instead of "".
battre 2014/03/05 08:34:36 Done.
+ epvm_.SetExtensionIncognitoState(kExt1, true);
EXPECT_EQ("val1", GetValue(kPref1, true));
+ epvm_.SetExtensionIncognitoState(kExt1, false);
+ EXPECT_EQ("", GetValue(kPref1, true));
}
TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.UnregisterExtension(kExt1);
@@ -146,8 +157,8 @@ TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) {
// 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_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt2, CreateTime(10), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
@@ -163,9 +174,9 @@ TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) {
// 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_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt2, CreateTime(20), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt3, CreateTime(30), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
@@ -182,9 +193,9 @@ TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) {
// 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_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt2, CreateTime(20), kEnabled, kNoIncognito);
+ epvm_.RegisterExtension(kExt3, CreateTime(30), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
@@ -210,7 +221,7 @@ TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) {
using testing::Mock;
using testing::StrEq;
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
ExtensionPrefValueMapObserverMock observer;
epvm_.AddObserver(&observer);
@@ -253,14 +264,14 @@ TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) {
// Write new value --> no notification after removing observer.
EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0);
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
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_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionState(kExt1, false);
@@ -269,7 +280,7 @@ TEST_F(ExtensionPrefValueMapTest, DisableExt) {
// Tests disabling and reenabling an extension.
TEST_F(ExtensionPrefValueMapTest, ReenableExt) {
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
+ epvm_.RegisterExtension(kExt1, CreateTime(10), kEnabled, kNoIncognito);
epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
epvm_.SetExtensionState(kExt1, false);
@@ -278,7 +289,9 @@ TEST_F(ExtensionPrefValueMapTest, ReenableExt) {
}
struct OverrideIncognitoTestCase {
- OverrideIncognitoTestCase(int val_ext1_regular,
+ OverrideIncognitoTestCase(bool enable_ext1_in_incognito,
+ bool enable_ext2_in_incognito,
+ int val_ext1_regular,
int val_ext1_regular_only,
int val_ext1_incognito_pers,
int val_ext1_incognito_sess,
@@ -288,7 +301,9 @@ struct OverrideIncognitoTestCase {
int val_ext2_incognito_sess,
int effective_value_regular,
int effective_value_incognito)
- : val_ext1_regular_(val_ext1_regular),
+ : enable_ext1_in_incognito_(enable_ext1_in_incognito),
+ enable_ext2_in_incognito_(enable_ext2_in_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),
@@ -299,6 +314,9 @@ struct OverrideIncognitoTestCase {
effective_value_regular_(effective_value_regular),
effective_value_incognito_(effective_value_incognito) {}
+ bool enable_ext1_in_incognito_;
+ bool enable_ext2_in_incognito_;
+
// pers. = persistent
// sess. = session only
int val_ext1_regular_; // pref value of extension 1
@@ -321,7 +339,7 @@ class ExtensionPrefValueMapTestIncognitoTests
TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) {
OverrideIncognitoTestCase test = GetParam();
const char* strings[] = {
- "undefined",
+ "", // undefined
"val1",
"val2",
"val3",
@@ -332,8 +350,10 @@ TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) {
"val8",
};
- epvm_.RegisterExtension(kExt1, CreateTime(10), true);
- epvm_.RegisterExtension(kExt2, CreateTime(20), true);
+ epvm_.RegisterExtension(
+ kExt1, CreateTime(10), kEnabled, test.enable_ext1_in_incognito_);
+ epvm_.RegisterExtension(
+ kExt2, CreateTime(20), kEnabled, test.enable_ext2_in_incognito_);
if (test.val_ext1_regular_) {
epvm_.SetExtensionPref(kExt1, kPref1, kRegular,
CreateVal(strings[test.val_ext1_regular_]));
@@ -377,24 +397,42 @@ INSTANTIATE_TEST_CASE_P(
ExtensionPrefValueMapTestIncognitoTestsInstance,
ExtensionPrefValueMapTestIncognitoTests,
testing::Values(
- // e.g. (1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means:
+ // e.g. (true, 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)));
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1),
+ OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1),
+ OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 0, 0, 0, 0, 1, 3),
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 0, 0, 0, 0, 1, 4),
+ OverrideIncognitoTestCase(true, true, 1, 0, 3, 4, 0, 0, 0, 0, 1, 4),
+ OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 0, 0, 0, 2, 3),
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 5, 0, 0, 0, 5, 5),
+ OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 5, 0, 0, 0, 5, 5),
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 6, 0, 0, 6, 1),
+ OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 5, 6, 0, 0, 6, 5),
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 5, 6, 0, 0, 6, 5),
+ OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 7, 0, 1, 7),
+ OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 0, 5, 7),
+ OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 0, 8, 5, 8),
+ OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 8, 5, 8),
+ OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 6, 7, 0, 6, 7),
+ // Same tests as above but w/o incognito permission.
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 0, 0, 0, 0, 1, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 0, 0, 0, 0, 1, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 3, 4, 0, 0, 0, 0, 1, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 0, 0, 0, 2, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 5, 0, 0, 0, 5, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 5, 0, 0, 0, 5, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 6, 0, 0, 6, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 5, 6, 0, 0, 6, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 5, 6, 0, 0, 6, 0),
+ OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 7, 0, 1, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 0, 5, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 0, 8, 5, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 8, 5, 0),
+ OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 6, 7, 0, 6, 0)
+ ));

Powered by Google App Engine
This is Rietveld 408576698