Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: test/FilterEngine.cpp

Issue 29535562: Issue 5508 - implement InMemoryFS for tests (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: Created Sept. 4, 2017, 9:23 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/BaseJsTest.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/FilterEngine.cpp
diff --git a/test/FilterEngine.cpp b/test/FilterEngine.cpp
index 187f7262cddeced2fcbb1eb257b0732e56c0a8eb..eaf86b0fd323508fa31fd9f1c622ba0fa211cdd7 100644
--- a/test/FilterEngine.cpp
+++ b/test/FilterEngine.cpp
@@ -72,29 +72,16 @@ namespace
typedef FilterEngineTestGeneric<LazyFileSystem, AdblockPlus::DefaultLogSystem> FilterEngineTest;
typedef FilterEngineTestGeneric<NoFilesFileSystem, LazyLogSystem> FilterEngineTestNoData;
- class FilterEngineWithFreshFolder : public BaseJsTest
+ class FilterEngineWithInMemoryFS : public BaseJsTest
{
+ LazyFileSystem* fileSystem;
protected:
- FileSystemPtr fileSystem;
- std::list<SchedulerTask> fileSystemTasks;
-
- void SetUp() override
- {
- fileSystem = CreateDefaultFileSystem([this](const SchedulerTask& task)
- {
- fileSystemTasks.emplace_back(task);
- });
- // Since there is neither in memory FS nor functionality to work with
- // directories use the hack: manually clean the directory.
- removeFileIfExists("patterns.ini");
- removeFileIfExists("prefs.json");
- }
void InitPlatformAndAppInfo(const AppInfo& appInfo = AppInfo())
{
ThrowingPlatformCreationParameters platformParams;
platformParams.logSystem.reset(new LazyLogSystem());
platformParams.timer.reset(new NoopTimer());
- platformParams.fileSystem = fileSystem;
+ platformParams.fileSystem.reset(fileSystem = new InMemoryFileSystem());
platformParams.webRequest.reset(new NoopWebRequest());
platform.reset(new Platform(std::move(platformParams)));
platform->SetUpJsEngine(appInfo);
@@ -102,57 +89,9 @@ namespace
FilterEngine& CreateFilterEngine(const FilterEngine::CreationParameters& creationParams = FilterEngine::CreationParameters())
{
- bool isFilterEngineReady = false;
- platform->CreateFilterEngineAsync(creationParams, [&isFilterEngineReady](const FilterEngine& filterEngine)
- {
- isFilterEngineReady = true;
- });
- while (!isFilterEngineReady && !fileSystemTasks.empty())
- {
- (*fileSystemTasks.begin())();
- fileSystemTasks.pop_front();
- }
+ ::CreateFilterEngine(*fileSystem, *platform, creationParams);
return platform->GetFilterEngine();
}
-
- void TearDown() override
- {
- removeFileIfExists("patterns.ini");
- removeFileIfExists("prefs.json");
- fileSystem.reset();
- BaseJsTest::TearDown();
- }
- void removeFileIfExists(const std::string& fileName)
- {
- bool hasStatRun = false;
- bool doesFileExists;
- fileSystem->Stat(fileName, [&hasStatRun, &doesFileExists](const IFileSystem::StatResult& stats, const std::string& error)
- {
- EXPECT_TRUE(error.empty()) << error;
- doesFileExists = stats.exists;
- hasStatRun = true;
- });
- while (!hasStatRun && !fileSystemTasks.empty())
- {
- (*fileSystemTasks.begin())();
- fileSystemTasks.pop_front();
- }
-
- if (!doesFileExists)
- return;
-
- bool hasRemoveRun = false;
- fileSystem->Remove(fileName, [&hasRemoveRun](const std::string& error)
- {
- EXPECT_TRUE(error.empty()) << error;
- hasRemoveRun = true;
- });
- while (!hasStatRun && !fileSystemTasks.empty())
- {
- (*fileSystemTasks.begin())();
- fileSystemTasks.pop_front();
- }
- }
};
class FilterEngineIsSubscriptionDownloadAllowedTest : public BaseJsTest
@@ -699,7 +638,7 @@ TEST_F(FilterEngineTest, ElemhideWhitelisting)
documentUrls1));
}
-TEST_F(FilterEngineWithFreshFolder, LangAndAASubscriptionsAreChosenOnFirstRun)
+TEST_F(FilterEngineWithInMemoryFS, LangAndAASubscriptionsAreChosenOnFirstRun)
{
AppInfo appInfo;
appInfo.locale = "zh";
@@ -726,7 +665,7 @@ TEST_F(FilterEngineWithFreshFolder, LangAndAASubscriptionsAreChosenOnFirstRun)
EXPECT_TRUE(filterEngine.IsAAEnabled());
}
-TEST_F(FilterEngineWithFreshFolder, DisableSubscriptionsAutoSelectOnFirstRun)
+TEST_F(FilterEngineWithInMemoryFS, DisableSubscriptionsAutoSelectOnFirstRun)
{
InitPlatformAndAppInfo();
FilterEngine::CreationParameters createParams;
« no previous file with comments | « test/BaseJsTest.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld