| Index: test/Prefs.cpp |
| =================================================================== |
| --- a/test/Prefs.cpp |
| +++ b/test/Prefs.cpp |
| @@ -78,14 +78,16 @@ |
| Reset(); |
| } |
| - void Reset() |
| + void Reset(std::map<std::string, AdblockPlus::JsValuePtr> preconfiguredPrefs = |
| + std::map<std::string, AdblockPlus::JsValuePtr>()) |
|
Eric
2015/06/19 15:23:37
We should used the typedef in FilterEngine.h here:
Oleksandr
2015/06/22 07:47:11
Done.
|
| { |
| jsEngine = AdblockPlus::JsEngine::New(); |
| jsEngine->SetLogSystem(AdblockPlus::LogSystemPtr(new LazyLogSystem)); |
| jsEngine->SetFileSystem(fileSystemPtr); |
| jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new LazyWebRequest)); |
| - filterEngine.reset(new AdblockPlus::FilterEngine(jsEngine)); |
| + filterEngine.reset( |
| + new AdblockPlus::FilterEngine(jsEngine, preconfiguredPrefs)); |
| } |
| }; |
| } |
| @@ -147,3 +149,51 @@ |
| ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval")->AsInt()); |
| } |
| + |
| +TEST_F(PrefsTest, PreconfiguredPrefsPreconfigured) |
| +{ |
| + std::map<std::string, AdblockPlus::JsValuePtr> preconfiguredPrefs; |
| + preconfiguredPrefs["disable_auto_updates"] = jsEngine->NewValue(false); |
| + preconfiguredPrefs["suppress_first_run_page"] = jsEngine->NewValue(true); |
| + Reset(preconfiguredPrefs); |
| + |
|
Eric
2015/06/19 15:23:38
We should also check types.
ASSERT_TRUE(filterE
Oleksandr
2015/06/22 07:47:12
Done.
|
| + ASSERT_FALSE(filterEngine->GetPref("disable_auto_updates")->AsBool()); |
| + ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page")->AsBool()); |
| +} |
| + |
| +TEST_F(PrefsTest, PreconfiguredPrefsUnsupported) |
| +{ |
| + std::map<std::string, AdblockPlus::JsValuePtr> preconfiguredPrefs; |
| + preconfiguredPrefs["unsupported_preconfig"] = jsEngine->NewValue(true); |
| + Reset(preconfiguredPrefs); |
| + |
| + ASSERT_FALSE(filterEngine->GetPref("unsupported_preconfig")->AsBool()); |
|
sergei
2015/06/19 10:07:16
Actually I would expect to check that it's 'undefi
Eric
2015/06/19 15:23:37
I agree. We should check the types first, then do
Oleksandr
2015/06/22 07:47:11
Done.
|
| +} |
| + |
| +TEST_F(PrefsTest, PreconfiguredPrefsOverride) |
| +{ |
| + std::map<std::string, AdblockPlus::JsValuePtr> preconfiguredPrefs; |
| + preconfiguredPrefs["suppress_first_run_page"] = jsEngine->NewValue(true); |
| + Reset(preconfiguredPrefs); |
| + |
| + filterEngine->SetPref("suppress_first_run_page", jsEngine->NewValue(false)); |
| + ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page")->AsBool()); |
| +} |
| + |
| +TEST_F(PrefsTest, PrefsPersistWhenPreconfigured) |
| +{ |
| + std::map<std::string, AdblockPlus::JsValuePtr> preconfiguredPrefs; |
| + preconfiguredPrefs["suppress_first_run_page"] = jsEngine->NewValue(true); |
| + Reset(preconfiguredPrefs); |
| + |
| + ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page")->AsBool()); |
| + filterEngine->SetPref("suppress_first_run_page", jsEngine->NewValue(false)); |
| + |
| + AdblockPlus::Sleep(100); |
| + |
| + ASSERT_FALSE(fileSystem->prefsContents.empty()); |
| + |
| + Reset(preconfiguredPrefs); |
| + |
| + ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page")->AsBool()); |
| +} |