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 13 matching lines...) Expand all Loading... |
24 using namespace AdblockPlus; | 24 using namespace AdblockPlus; |
25 | 25 |
26 namespace | 26 namespace |
27 { | 27 { |
28 class DefaultWebRequestTest : public ::testing::Test | 28 class DefaultWebRequestTest : public ::testing::Test |
29 { | 29 { |
30 protected: | 30 protected: |
31 void SetUp() | 31 void SetUp() |
32 { | 32 { |
33 JsEngineCreationParameters jsEngineParams; | 33 JsEngineCreationParameters jsEngineParams; |
| 34 jsEngineParams.logSystem = CreateLogSystem(); |
34 jsEngineParams.timer.reset(new NoopTimer()); | 35 jsEngineParams.timer.reset(new NoopTimer()); |
35 jsEngineParams.fileSystem.reset(new LazyFileSystem()); | 36 jsEngineParams.fileSystem.reset(new LazyFileSystem()); |
36 jsEngineParams.webRequest = CreateWebRequest(); | 37 jsEngineParams.webRequest = CreateWebRequest(); |
37 jsEngine = CreateJsEngine(std::move(jsEngineParams)); | 38 jsEngine = CreateJsEngine(std::move(jsEngineParams)); |
38 } | 39 } |
39 | 40 |
40 virtual WebRequestPtr CreateWebRequest() | 41 virtual WebRequestPtr CreateWebRequest() |
41 { | 42 { |
42 return CreateDefaultWebRequest(); | 43 return CreateDefaultWebRequest(); |
43 } | 44 } |
44 | 45 |
| 46 virtual LogSystemPtr CreateLogSystem() |
| 47 { |
| 48 return LogSystemPtr(new ThrowingLogSystem()); |
| 49 } |
| 50 |
45 JsEnginePtr jsEngine; | 51 JsEnginePtr jsEngine; |
46 }; | 52 }; |
47 | 53 |
48 class MockWebRequestTest : public DefaultWebRequestTest | 54 class MockWebRequestTest : public DefaultWebRequestTest |
49 { | 55 { |
50 virtual WebRequestPtr CreateWebRequest() override | 56 virtual WebRequestPtr CreateWebRequest() override |
51 { | 57 { |
52 return DelayedWebRequest::New(webRequestTasks); | 58 return DelayedWebRequest::New(webRequestTasks); |
53 } | 59 } |
54 | 60 |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 lastMessage = message; | 244 lastMessage = message; |
239 } | 245 } |
240 | 246 |
241 void clear() | 247 void clear() |
242 { | 248 { |
243 lastLogLevel = AdblockPlus::LogSystem::LOG_LEVEL_TRACE; | 249 lastLogLevel = AdblockPlus::LogSystem::LOG_LEVEL_TRACE; |
244 lastMessage.clear(); | 250 lastMessage.clear(); |
245 } | 251 } |
246 }; | 252 }; |
247 | 253 |
248 typedef std::shared_ptr<CatchLogSystem> CatchLogSystemPtr; | 254 class MockWebRequestAndLogSystemTest : public MockWebRequestTest |
| 255 { |
| 256 LogSystemPtr CreateLogSystem() override |
| 257 { |
| 258 return LogSystemPtr(catchLogSystem = new CatchLogSystem()); |
| 259 } |
| 260 protected: |
| 261 CatchLogSystem* catchLogSystem; |
| 262 }; |
249 } | 263 } |
250 | 264 |
251 TEST_F(MockWebRequestTest, RequestHeaderValidation) | 265 TEST_F(MockWebRequestAndLogSystemTest, RequestHeaderValidation) |
252 { | 266 { |
253 auto catchLogSystem = CatchLogSystemPtr(new CatchLogSystem()); | |
254 jsEngine->SetLogSystem(catchLogSystem); | |
255 | |
256 auto filterEngine = AdblockPlus::FilterEngine::Create(jsEngine); | 267 auto filterEngine = AdblockPlus::FilterEngine::Create(jsEngine); |
257 | 268 |
258 const std::string msg = "Attempt to set a forbidden header was denied: "; | 269 const std::string msg = "Attempt to set a forbidden header was denied: "; |
259 | 270 |
260 // The test will check that console.warn has been called when the | 271 // The test will check that console.warn has been called when the |
261 // header is rejected. While this is an implementation detail, we | 272 // header is rejected. While this is an implementation detail, we |
262 // have no other way to check this | 273 // have no other way to check this |
263 | 274 |
264 // test 'Accept-Encoding' is rejected | 275 // test 'Accept-Encoding' is rejected |
265 catchLogSystem->clear(); | 276 catchLogSystem->clear(); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve
l); | 355 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve
l); |
345 EXPECT_EQ("", catchLogSystem->lastMessage); | 356 EXPECT_EQ("", catchLogSystem->lastMessage); |
346 ProcessPendingWebRequests(); | 357 ProcessPendingWebRequests(); |
347 { | 358 { |
348 auto headersRequest = GetHeadersForRequest(url); | 359 auto headersRequest = GetHeadersForRequest(url); |
349 EXPECT_TRUE(headersRequest.first); | 360 EXPECT_TRUE(headersRequest.first); |
350 const auto& headers = headersRequest.second; | 361 const auto& headers = headersRequest.second; |
351 EXPECT_FALSE(headers.cend() == headers.find("Security")); | 362 EXPECT_FALSE(headers.cend() == headers.find("Security")); |
352 } | 363 } |
353 } | 364 } |
OLD | NEW |