| 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>()) |
| { |
| 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,52 @@ |
| 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); |
| + |
| + 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()); |
| +} |
| + |
| +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()); |
| + |
| + |
|
Felix Dahlke
2015/06/12 11:55:35
Nit: Just one line of whitespace?
Oleksandr
2015/06/12 12:29:59
Done.
|
| + Reset(preconfiguredPrefs); |
| + |
| + ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page")->AsBool()); |
| +} |