| 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 11 matching lines...) Expand all  Loading... | 
|   22  |   22  | 
|   23 using namespace AdblockPlus; |   23 using namespace AdblockPlus; | 
|   24  |   24  | 
|   25 namespace |   25 namespace | 
|   26 { |   26 { | 
|   27   typedef std::shared_ptr<AdblockPlus::FilterEngine> FilterEnginePtr; |   27   typedef std::shared_ptr<AdblockPlus::FilterEngine> FilterEnginePtr; | 
|   28  |   28  | 
|   29   class TestFileSystem : public LazyFileSystem |   29   class TestFileSystem : public LazyFileSystem | 
|   30   { |   30   { | 
|   31   public: |   31   public: | 
|   32     std::string prefsContents; |   32     IOBuffer prefsContents; | 
|   33  |   33  | 
|   34     std::shared_ptr<std::istream> Read(const std::string& path) const |   34     IOBuffer Read(const std::string& path) const | 
|   35     { |   35     { | 
|   36       if (path == "prefs.json" && !prefsContents.empty()) |   36       if (path == "prefs.json" && !prefsContents.empty()) | 
|   37         return std::shared_ptr<std::istream>(new std::istringstream(prefsContent
     s)); |   37         return prefsContents; | 
|   38  |   38  | 
|   39       return LazyFileSystem::Read(path); |   39       return LazyFileSystem::Read(path); | 
|   40     } |   40     } | 
|   41  |   41  | 
|   42     void Write(const std::string& path, std::istream& content) |   42     void Write(const std::string& path, const IOBuffer& content) | 
|   43     { |   43     { | 
|   44       if (path == "prefs.json") |   44       if (path == "prefs.json") | 
|   45       { |   45         prefsContents = content; | 
|   46         std::stringstream ss; |  | 
|   47         ss << content.rdbuf(); |  | 
|   48         prefsContents = ss.str(); |  | 
|   49       } |  | 
|   50       else |   46       else | 
|   51         LazyFileSystem::Write(path, content); |   47         LazyFileSystem::Write(path, content); | 
|   52     } |   48     } | 
|   53  |   49  | 
|   54     StatResult Stat(const std::string& path) const |   50     StatResult Stat(const std::string& path) const | 
|   55     { |   51     { | 
|   56       if (path == "prefs.json") |   52       if (path == "prefs.json") | 
|   57       { |   53       { | 
|   58         StatResult result; |   54         StatResult result; | 
|   59         result.exists = result.isFile = !prefsContents.empty(); |   55         result.exists = result.isFile = !prefsContents.empty(); | 
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  137     ResetJsEngine(); |  133     ResetJsEngine(); | 
|  138     auto filterEngine = CreateFilterEngine(); |  134     auto filterEngine = CreateFilterEngine(); | 
|  139     ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); |  135     ASSERT_EQ("filters.ini", filterEngine->GetPref("patternsfile").AsString()); | 
|  140     ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); |  136     ASSERT_EQ(48, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 
|  141     ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); |  137     ASSERT_FALSE(filterEngine->GetPref("subscriptions_autoupdate").AsBool()); | 
|  142   } |  138   } | 
|  143 } |  139 } | 
|  144  |  140  | 
|  145 TEST_F(PrefsTest, UnknownPrefs) |  141 TEST_F(PrefsTest, UnknownPrefs) | 
|  146 { |  142 { | 
|  147   fileSystem->prefsContents = "{\"foobar\":2, \"patternsbackupinterval\": 12}"; |  143   using IOBuffer = AdblockPlus::FileSystem::IOBuffer; | 
 |  144   std::string content = "{\"foobar\":2, \"patternsbackupinterval\": 12}"; | 
 |  145   fileSystem->prefsContents = IOBuffer(content.cbegin(), content.cend()); | 
|  148   auto filterEngine = CreateFilterEngine(); |  146   auto filterEngine = CreateFilterEngine(); | 
|  149   ASSERT_TRUE(filterEngine->GetPref("foobar").IsUndefined()); |  147   ASSERT_TRUE(filterEngine->GetPref("foobar").IsUndefined()); | 
|  150   ASSERT_EQ(12, filterEngine->GetPref("patternsbackupinterval").AsInt()); |  148   ASSERT_EQ(12, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 
|  151 } |  149 } | 
|  152  |  150  | 
|  153 TEST_F(PrefsTest, SyntaxFailure) |  151 TEST_F(PrefsTest, SyntaxFailure) | 
|  154 { |  152 { | 
|  155   fileSystem->prefsContents = "{\"patternsbackupinterval\": 6, \"foo\"}"; |  153   using IOBuffer = AdblockPlus::FileSystem::IOBuffer; | 
 |  154   std::string content = "{\"patternsbackupinterval\": 6, \"foo\"}"; | 
 |  155   fileSystem->prefsContents = IOBuffer(content.cbegin(), content.cend()); | 
|  156   auto filterEngine = CreateFilterEngine(); |  156   auto filterEngine = CreateFilterEngine(); | 
|  157  |  157  | 
|  158   ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); |  158   ASSERT_EQ(24, filterEngine->GetPref("patternsbackupinterval").AsInt()); | 
|  159 } |  159 } | 
|  160  |  160  | 
|  161 TEST_F(PrefsTest, PreconfiguredPrefsPreconfigured) |  161 TEST_F(PrefsTest, PreconfiguredPrefsPreconfigured) | 
|  162 { |  162 { | 
|  163   AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |  163   AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 
|  164   preconfiguredPrefs.emplace("disable_auto_updates", jsEngine->NewValue(false)); |  164   preconfiguredPrefs.emplace("disable_auto_updates", jsEngine->NewValue(false)); | 
|  165   preconfiguredPrefs.emplace("suppress_first_run_page", jsEngine->NewValue(true)
     ); |  165   preconfiguredPrefs.emplace("suppress_first_run_page", jsEngine->NewValue(true)
     ); | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  209   { |  209   { | 
|  210     ResetJsEngine(); |  210     ResetJsEngine(); | 
|  211     AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; |  211     AdblockPlus::FilterEngine::Prefs preconfiguredPrefs; | 
|  212     preconfiguredPrefs.emplace("suppress_first_run_page", jsEngine->NewValue(tru
     e)); |  212     preconfiguredPrefs.emplace("suppress_first_run_page", jsEngine->NewValue(tru
     e)); | 
|  213     auto filterEngine = CreateFilterEngine(preconfiguredPrefs); |  213     auto filterEngine = CreateFilterEngine(preconfiguredPrefs); | 
|  214  |  214  | 
|  215     ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); |  215     ASSERT_TRUE(filterEngine->GetPref("suppress_first_run_page").IsBool()); | 
|  216     ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); |  216     ASSERT_FALSE(filterEngine->GetPref("suppress_first_run_page").AsBool()); | 
|  217   } |  217   } | 
|  218 } |  218 } | 
| OLD | NEW |