Chromium Code Reviews| 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) |
| + )); |