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) |
+ )); |