OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2017 eyeo GmbH | 3 * Copyright (C) 2006-2017 eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 result.exists = result.isFile = !prefsContents.empty(); | 67 result.exists = result.isFile = !prefsContents.empty(); |
68 callback(result, ""); | 68 callback(result, ""); |
69 return; | 69 return; |
70 } | 70 } |
71 | 71 |
72 LazyFileSystem::Stat(path, callback); | 72 LazyFileSystem::Stat(path, callback); |
73 }); | 73 }); |
74 } | 74 } |
75 }; | 75 }; |
76 | 76 |
77 class PrefsTest : public ::testing::Test | 77 class PrefsTest : public BaseJsTest |
78 { | 78 { |
79 protected: | 79 protected: |
80 std::unique_ptr<Platform> platform; | |
81 std::shared_ptr<TestFileSystem> fileSystem; | 80 std::shared_ptr<TestFileSystem> fileSystem; |
82 | 81 |
83 void SetUp() | 82 void SetUp() |
84 { | 83 { |
85 fileSystem = std::make_shared<TestFileSystem>(); | 84 fileSystem = std::make_shared<TestFileSystem>(); |
86 ResetPlatform(); | 85 ResetPlatform(); |
87 } | 86 } |
88 | 87 |
89 void ResetPlatform() | 88 void ResetPlatform() |
90 { | 89 { |
(...skipping 16 matching lines...) Expand all Loading... |
107 } | 106 } |
108 | 107 |
109 TEST_F(PrefsTest, PrefsGetSet) | 108 TEST_F(PrefsTest, PrefsGetSet) |
110 { | 109 { |
111 auto filterEngine = CreateFilterEngine(); | 110 auto filterEngine = CreateFilterEngine(); |
112 ASSERT_EQ("patterns.ini", filterEngine->GetPref("patternsfile").AsString()); | 111 ASSERT_EQ("patterns.ini", filterEngine->GetPref("patternsfile").AsString()); |
113 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 112 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); |
114 ASSERT_TRUE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); | 113 ASSERT_TRUE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); |
115 ASSERT_TRUE(filterEngine->GetPref("foobar").IsUndefined()); | 114 ASSERT_TRUE(filterEngine->GetPref("foobar").IsUndefined()); |
116 | 115 |
117 ASSERT_ANY_THROW(filterEngine->SetPref("patternsfile", platform->GetJsEngine()
->NewValue(0))); | 116 ASSERT_ANY_THROW(filterEngine->SetPref("patternsfile", GetJsEngine().NewValue(
0))); |
118 ASSERT_ANY_THROW(filterEngine->SetPref("patternsbackupinterval", platform->Get
JsEngine()->NewValue(true))); | 117 ASSERT_ANY_THROW(filterEngine->SetPref("patternsbackupinterval", GetJsEngine()
.NewValue(true))); |
119 ASSERT_ANY_THROW(filterEngine->SetPref("subscriptions_autoupdate", platform->G
etJsEngine()->NewValue("foo"))); | 118 ASSERT_ANY_THROW(filterEngine->SetPref("subscriptions_autoupdate", GetJsEngine
().NewValue("foo"))); |
120 | 119 |
121 filterEngine->SetPref("patternsfile", platform->GetJsEngine()->NewValue("filte
rs.ini")); | 120 filterEngine->SetPref("patternsfile", GetJsEngine().NewValue("filters.ini")); |
122 filterEngine->SetPref("patternsbackupinterval", platform->GetJsEngine()->NewVa
lue(48)); | 121 filterEngine->SetPref("patternsbackupinterval", GetJsEngine().NewValue(48)); |
123 filterEngine->SetPref("subscriptions_autoupdate", platform->GetJsEngine()->New
Value(false)); | 122 filterEngine->SetPref("subscriptions_autoupdate", GetJsEngine().NewValue(false
)); |
124 | 123 |
125 ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); | 124 ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); |
126 ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 125 ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); |
127 ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); | 126 ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); |
128 } | 127 } |
129 | 128 |
130 TEST_F(PrefsTest, PrefsPersist) | 129 TEST_F(PrefsTest, PrefsPersist) |
131 { | 130 { |
132 { | 131 { |
133 auto filterEngine = CreateFilterEngine(); | 132 auto filterEngine = CreateFilterEngine(); |
134 ASSERT_EQ("patterns.ini", filterEngine->GetPref("patternsfile").AsString()); | 133 ASSERT_EQ("patterns.ini", filterEngine->GetPref("patternsfile").AsString()); |
135 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 134 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); |
136 ASSERT_TRUE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); | 135 ASSERT_TRUE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); |
137 | 136 |
138 filterEngine->SetPref("patternsfile", platform->GetJsEngine()->NewValue("fil
ters.ini")); | 137 filterEngine->SetPref("patternsfile", GetJsEngine().NewValue("filters.ini"))
; |
139 filterEngine->SetPref("patternsbackupinterval", platform->GetJsEngine()->New
Value(48)); | 138 filterEngine->SetPref("patternsbackupinterval", GetJsEngine().NewValue(48)); |
140 filterEngine->SetPref("subscriptions_autoupdate", platform->GetJsEngine()->N
ewValue(false)); | 139 filterEngine->SetPref("subscriptions_autoupdate", GetJsEngine().NewValue(fal
se)); |
141 } | 140 } |
142 ASSERT_FALSE(fileSystem->prefsContents.empty()); | 141 ASSERT_FALSE(fileSystem->prefsContents.empty()); |
143 | 142 |
144 { | 143 { |
145 ResetPlatform(); | 144 ResetPlatform(); |
146 auto filterEngine = CreateFilterEngine(); | 145 auto filterEngine = CreateFilterEngine(); |
147 ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); | 146 ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); |
148 ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 147 ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); |
149 ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); | 148 ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); |
150 } | 149 } |
(...skipping 15 matching lines...) Expand all Loading... |
166 std::string content = "{\"patternsbackupinterval\": 6, \"foo\"}"; | 165 std::string content = "{\"patternsbackupinterval\": 6, \"foo\"}"; |
167 fileSystem->prefsContents = IOBuffer(content.cbegin(), content.cend()); | 166 fileSystem->prefsContents = IOBuffer(content.cbegin(), content.cend()); |
168 auto filterEngine = CreateFilterEngine(); | 167 auto filterEngine = CreateFilterEngine(); |
169 | 168 |
170 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 169 ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); |
171 } | 170 } |
172 | 171 |
173 TEST_F(PrefsTest, PreconfiguredPrefsPreconfigured) | 172 TEST_F(PrefsTest, PreconfiguredPrefsPreconfigured) |
174 { | 173 { |
175 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 174 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |
176 preconfiguredPrefs.emplace("disable_auto_updates", platform->GetJsEngine()->Ne
wValue(false)); | 175 preconfiguredPrefs.emplace("disable_auto_updates", GetJsEngine().NewValue(fals
e)); |
177 preconfiguredPrefs.emplace("suppress_first_run_page", platform->GetJsEngine()-
>NewValue(true)); | 176 preconfiguredPrefs.emplace("suppress_first_run_page", GetJsEngine().NewValue(t
rue)); |
178 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 177 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |
179 | 178 |
180 ASSERT_TRUE(filterEngine->GetPref("disable_auto_updates").IsBool()); | 179 ASSERT_TRUE(filterEngine->GetPref("disable_auto_updates").IsBool()); |
181 ASSERT_FALSE(filterEngine->GetPref("disable_auto_updates").AsBool()); | 180 ASSERT_FALSE(filterEngine->GetPref("disable_auto_updates").AsBool()); |
182 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); | 181 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); |
183 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").AsBool()); | 182 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").AsBool()); |
184 } | 183 } |
185 | 184 |
186 TEST_F(PrefsTest, PreconfiguredPrefsUnsupported) | 185 TEST_F(PrefsTest, PreconfiguredPrefsUnsupported) |
187 { | 186 { |
188 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 187 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |
189 preconfiguredPrefs.emplace("unsupported_preconfig", platform->GetJsEngine()->N
ewValue(true)); | 188 preconfiguredPrefs.emplace("unsupported_preconfig", GetJsEngine().NewValue(tru
e)); |
190 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 189 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |
191 | 190 |
192 ASSERT_TRUE(filterEngine->GetPref("unsupported_preconfig").IsUndefined()); | 191 ASSERT_TRUE(filterEngine->GetPref("unsupported_preconfig").IsUndefined()); |
193 } | 192 } |
194 | 193 |
195 TEST_F(PrefsTest, PreconfiguredPrefsOverride) | 194 TEST_F(PrefsTest, PreconfiguredPrefsOverride) |
196 { | 195 { |
197 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 196 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |
198 preconfiguredPrefs.emplace("suppress_first_run_page", platform->GetJsEngine()-
>NewValue(true)); | 197 preconfiguredPrefs.emplace("suppress_first_run_page", GetJsEngine().NewValue(t
rue)); |
199 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 198 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |
200 | 199 |
201 filterEngine->SetPref("suppress_first_run_page", platform->GetJsEngine()->NewV
alue(false)); | 200 filterEngine->SetPref("suppress_first_run_page", GetJsEngine().NewValue(false)
); |
202 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); | 201 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); |
203 ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); | 202 ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); |
204 } | 203 } |
205 | 204 |
206 TEST_F(PrefsTest, PrefsPersistWhenPreconfigured) | 205 TEST_F(PrefsTest, PrefsPersistWhenPreconfigured) |
207 { | 206 { |
208 { | 207 { |
209 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 208 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |
210 preconfiguredPrefs.emplace("suppress_first_run_page", platform->GetJsEngine(
)->NewValue(true)); | 209 preconfiguredPrefs.emplace("suppress_first_run_page", GetJsEngine().NewValue
(true)); |
211 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 210 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |
212 | 211 |
213 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); | 212 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); |
214 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").AsBool()); | 213 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").AsBool()); |
215 filterEngine->SetPref("suppress_first_run_page", platform->GetJsEngine()->Ne
wValue(false)); | 214 filterEngine->SetPref("suppress_first_run_page", GetJsEngine().NewValue(fals
e)); |
216 } | 215 } |
217 ASSERT_FALSE(fileSystem->prefsContents.empty()); | 216 ASSERT_FALSE(fileSystem->prefsContents.empty()); |
218 | 217 |
219 { | 218 { |
220 ResetPlatform(); | 219 ResetPlatform(); |
221 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 220 AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |
222 preconfiguredPrefs.emplace("suppress_first_run_page", platform->GetJsEngine(
)->NewValue(true)); | 221 preconfiguredPrefs.emplace("suppress_first_run_page", GetJsEngine().NewValue
(true)); |
223 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 222 auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |
224 | 223 |
225 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); | 224 ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); |
226 ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); | 225 ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); |
227 } | 226 } |
228 } | 227 } |
OLD | NEW |