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

Side by Side Diff: test/DefaultFileSystem.cpp

Issue 29512648: Issue 5475 - Update adblockpluscore dependency to revision hg:b935a0402215 (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: Created Aug. 11, 2017, 12:36 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 #include <sstream> 18 #include <sstream>
19 #include <AdblockPlus.h> 19 #include <AdblockPlus.h>
20 #include <gtest/gtest.h> 20 #include <gtest/gtest.h>
21 21
22 #include "BaseJsTest.h" 22 #include "BaseJsTest.h"
23 23
24 using AdblockPlus::IFileSystem; 24 using AdblockPlus::IFileSystem;
25 using AdblockPlus::FileSystemPtr; 25 using AdblockPlus::FileSystemPtr;
26 using AdblockPlus::SchedulerTask; 26 using AdblockPlus::SchedulerTask;
27 27
28 namespace 28 namespace
29 { 29 {
30 const std::string testPath = "libadblockplus-t\xc3\xa4st-file"; 30 const std::string testFileName = "libadblockplus-t\xc3\xa4st-file";
31 31
32 class DefaultFileSystemTest : public ::testing::Test 32 class DefaultFileSystemTest : public ::testing::Test
33 { 33 {
34 public: 34 public:
35 void SetUp() override 35 void SetUp() override
36 { 36 {
37 fileSystem = AdblockPlus::CreateDefaultFileSystem([this](const SchedulerTa sk& task) 37 fileSystem = AdblockPlus::CreateDefaultFileSystem([this](const SchedulerTa sk& task)
38 { 38 {
39 fileSystemTasks.emplace_back(task); 39 fileSystemTasks.emplace_back(task);
40 }); 40 });
41 } 41 }
42 protected: 42 protected:
43 void WriteString(const std::string& content) 43 void WriteString(const std::string& content)
44 { 44 {
45 bool hasRun = false; 45 bool hasRun = false;
46 fileSystem->Write(testPath, 46 fileSystem->Write(testFileName,
47 IFileSystem::IOBuffer(content.cbegin(), content.cend()), 47 IFileSystem::IOBuffer(content.cbegin(), content.cend()),
48 [&hasRun](const std::string& error) 48 [&hasRun](const std::string& error)
49 { 49 {
50 EXPECT_TRUE(error.empty()) << error; 50 EXPECT_TRUE(error.empty()) << error;
51 hasRun = true; 51 hasRun = true;
52 }); 52 });
53 EXPECT_FALSE(hasRun); 53 EXPECT_FALSE(hasRun);
54 PumpTask(); 54 PumpTask();
55 EXPECT_TRUE(hasRun); 55 EXPECT_TRUE(hasRun);
56 } 56 }
57 57
58 void PumpTask() 58 void PumpTask()
59 { 59 {
60 ASSERT_EQ(1u, fileSystemTasks.size()); 60 ASSERT_EQ(1u, fileSystemTasks.size());
61 (*fileSystemTasks.begin())(); 61 (*fileSystemTasks.begin())();
62 fileSystemTasks.pop_front(); 62 fileSystemTasks.pop_front();
63 } 63 }
64 64
65 std::list<SchedulerTask> fileSystemTasks; 65 std::list<SchedulerTask> fileSystemTasks;
66 FileSystemPtr fileSystem; 66 FileSystemPtr fileSystem;
67 }; 67 };
68 } 68 }
69 69
70 TEST_F(DefaultFileSystemTest, WriteReadRemove) 70 TEST_F(DefaultFileSystemTest, WriteReadRemove)
71 { 71 {
72 WriteString("foo"); 72 WriteString("foo");
73 73
74 bool hasReadRun = false; 74 bool hasReadRun = false;
75 fileSystem->Read(testPath, 75 fileSystem->Read(testFileName,
76 [this, &hasReadRun](IFileSystem::IOBuffer&& content, const std::string& erro r) 76 [this, &hasReadRun](IFileSystem::IOBuffer&& content, const std::string& erro r)
77 { 77 {
78 EXPECT_TRUE(error.empty()); 78 EXPECT_TRUE(error.empty());
79 EXPECT_EQ("foo", std::string(content.cbegin(), content.cend())); 79 EXPECT_EQ("foo", std::string(content.cbegin(), content.cend()));
80 hasReadRun = true; 80 hasReadRun = true;
81 }); 81 });
82 EXPECT_FALSE(hasReadRun); 82 EXPECT_FALSE(hasReadRun);
83 PumpTask(); 83 PumpTask();
84 EXPECT_TRUE(hasReadRun); 84 EXPECT_TRUE(hasReadRun);
85 85
86 bool hasRemoveRun = false; 86 bool hasRemoveRun = false;
87 fileSystem->Remove(testPath, [&hasRemoveRun](const std::string& error) 87 fileSystem->Remove(testFileName, [&hasRemoveRun](const std::string& error)
88 { 88 {
89 EXPECT_TRUE(error.empty()); 89 EXPECT_TRUE(error.empty());
90 hasRemoveRun = true; 90 hasRemoveRun = true;
91 }); 91 });
92 EXPECT_FALSE(hasRemoveRun); 92 EXPECT_FALSE(hasRemoveRun);
93 PumpTask(); 93 PumpTask();
94 EXPECT_TRUE(hasRemoveRun); 94 EXPECT_TRUE(hasRemoveRun);
95 } 95 }
96 96
97 TEST_F(DefaultFileSystemTest, StatWorkingDirectory) 97 TEST_F(DefaultFileSystemTest, StatWorkingDirectory)
98 { 98 {
99 bool hasStatRun = false; 99 bool hasStatRun = false;
100 fileSystem->Stat(".", 100 fileSystem->Stat(".",
101 [&hasStatRun](const IFileSystem::StatResult result, const std::string& error ) 101 [&hasStatRun](const IFileSystem::StatResult result, const std::string& error )
102 { 102 {
103 EXPECT_TRUE(error.empty()); 103 EXPECT_TRUE(error.empty());
104 ASSERT_TRUE(result.exists); 104 ASSERT_TRUE(result.exists);
105 ASSERT_TRUE(result.isDirectory);
106 ASSERT_FALSE(result.isFile);
107 ASSERT_NE(0, result.lastModified); 105 ASSERT_NE(0, result.lastModified);
108 hasStatRun = true; 106 hasStatRun = true;
109 }); 107 });
110 EXPECT_FALSE(hasStatRun); 108 EXPECT_FALSE(hasStatRun);
111 PumpTask(); 109 PumpTask();
112 EXPECT_TRUE(hasStatRun); 110 EXPECT_TRUE(hasStatRun);
113 } 111 }
114 112
115 TEST_F(DefaultFileSystemTest, WriteMoveStatRemove) 113 TEST_F(DefaultFileSystemTest, WriteMoveStatRemove)
116 { 114 {
117 WriteString("foo"); 115 WriteString("foo");
118 116
119 bool hasStatOrigFileExistsRun = false; 117 bool hasStatOrigFileExistsRun = false;
120 fileSystem->Stat(testPath, 118 fileSystem->Stat(testFileName,
121 [&hasStatOrigFileExistsRun](const IFileSystem::StatResult& result, const std ::string& error) 119 [&hasStatOrigFileExistsRun](const IFileSystem::StatResult& result, const std ::string& error)
122 { 120 {
123 EXPECT_TRUE(error.empty()); 121 EXPECT_TRUE(error.empty());
124 ASSERT_TRUE(result.exists); 122 ASSERT_TRUE(result.exists);
125 ASSERT_TRUE(result.isFile);
126 ASSERT_FALSE(result.isDirectory);
127 ASSERT_NE(0, result.lastModified); 123 ASSERT_NE(0, result.lastModified);
128 hasStatOrigFileExistsRun = true; 124 hasStatOrigFileExistsRun = true;
129 }); 125 });
130 EXPECT_FALSE(hasStatOrigFileExistsRun); 126 EXPECT_FALSE(hasStatOrigFileExistsRun);
131 PumpTask(); 127 PumpTask();
132 EXPECT_TRUE(hasStatOrigFileExistsRun); 128 EXPECT_TRUE(hasStatOrigFileExistsRun);
133 129
134 const std::string newTestPath = testPath + "-new"; 130 const std::string newTestFileName = testFileName + "-new";
135 bool hasMoveRun = false; 131 bool hasMoveRun = false;
136 fileSystem->Move(testPath, newTestPath, [&hasMoveRun, newTestPath](const std:: string& error) 132 fileSystem->Move(testFileName, newTestFileName, [&hasMoveRun, newTestFileName] (const std::string& error)
137 { 133 {
138 EXPECT_TRUE(error.empty()); 134 EXPECT_TRUE(error.empty());
139 hasMoveRun = true; 135 hasMoveRun = true;
140 }); 136 });
141 EXPECT_FALSE(hasMoveRun); 137 EXPECT_FALSE(hasMoveRun);
142 PumpTask(); 138 PumpTask();
143 EXPECT_TRUE(hasMoveRun); 139 EXPECT_TRUE(hasMoveRun);
144 140
145 bool hasStatOrigFileDontExistsRun = false; 141 bool hasStatOrigFileDontExistsRun = false;
146 fileSystem->Stat(testPath, [&hasStatOrigFileDontExistsRun](const IFileSystem:: StatResult& result, const std::string& error) 142 fileSystem->Stat(testFileName, [&hasStatOrigFileDontExistsRun](const IFileSyst em::StatResult& result, const std::string& error)
147 { 143 {
148 EXPECT_TRUE(error.empty()); 144 EXPECT_TRUE(error.empty());
149 ASSERT_FALSE(result.exists); 145 ASSERT_FALSE(result.exists);
150 hasStatOrigFileDontExistsRun = true; 146 hasStatOrigFileDontExistsRun = true;
151 }); 147 });
152 EXPECT_FALSE(hasStatOrigFileDontExistsRun); 148 EXPECT_FALSE(hasStatOrigFileDontExistsRun);
153 PumpTask(); 149 PumpTask();
154 EXPECT_TRUE(hasStatOrigFileDontExistsRun); 150 EXPECT_TRUE(hasStatOrigFileDontExistsRun);
155 151
156 bool hasStatNewFileExistsRun = false; 152 bool hasStatNewFileExistsRun = false;
157 fileSystem->Stat(newTestPath, [&hasStatNewFileExistsRun](const IFileSystem::St atResult& result, const std::string& error) 153 fileSystem->Stat(newTestFileName, [&hasStatNewFileExistsRun](const IFileSystem ::StatResult& result, const std::string& error)
158 { 154 {
159 EXPECT_TRUE(error.empty()); 155 EXPECT_TRUE(error.empty());
160 ASSERT_TRUE(result.exists); 156 ASSERT_TRUE(result.exists);
161 hasStatNewFileExistsRun = true; 157 hasStatNewFileExistsRun = true;
162 }); 158 });
163 EXPECT_FALSE(hasStatNewFileExistsRun); 159 EXPECT_FALSE(hasStatNewFileExistsRun);
164 PumpTask(); 160 PumpTask();
165 EXPECT_TRUE(hasStatNewFileExistsRun); 161 EXPECT_TRUE(hasStatNewFileExistsRun);
166 162
167 bool hasRemoveRun = false; 163 bool hasRemoveRun = false;
168 fileSystem->Remove(newTestPath, [&hasRemoveRun](const std::string& error) 164 fileSystem->Remove(newTestFileName, [&hasRemoveRun](const std::string& error)
169 { 165 {
170 EXPECT_TRUE(error.empty()); 166 EXPECT_TRUE(error.empty());
171 hasRemoveRun = true; 167 hasRemoveRun = true;
172 }); 168 });
173 EXPECT_FALSE(hasRemoveRun); 169 EXPECT_FALSE(hasRemoveRun);
174 PumpTask(); 170 PumpTask();
175 EXPECT_TRUE(hasRemoveRun); 171 EXPECT_TRUE(hasRemoveRun);
176 172
177 bool hasStatRemovedFileRun = false; 173 bool hasStatRemovedFileRun = false;
178 fileSystem->Stat(newTestPath, [&hasStatRemovedFileRun](const IFileSystem::Stat Result& result, const std::string& error) 174 fileSystem->Stat(newTestFileName, [&hasStatRemovedFileRun](const IFileSystem:: StatResult& result, const std::string& error)
179 { 175 {
180 EXPECT_TRUE(error.empty()); 176 EXPECT_TRUE(error.empty());
181 ASSERT_FALSE(result.exists); 177 ASSERT_FALSE(result.exists);
182 hasStatRemovedFileRun = true; 178 hasStatRemovedFileRun = true;
183 }); 179 });
184 EXPECT_FALSE(hasStatRemovedFileRun); 180 EXPECT_FALSE(hasStatRemovedFileRun);
185 PumpTask(); 181 PumpTask();
186 EXPECT_TRUE(hasStatRemovedFileRun); 182 EXPECT_TRUE(hasStatRemovedFileRun);
187 } 183 }
OLDNEW
« libadblockplus.gyp ('K') | « test/BaseJsTest.h ('k') | test/FileSystemJsObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld