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-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 mutable std::set<std::string> lastRequestHeaders; | 50 mutable std::set<std::string> lastRequestHeaders; |
51 }; | 51 }; |
52 | 52 |
53 template<class T> | 53 template<class T> |
54 class WebRequestTest : public BaseJsTest | 54 class WebRequestTest : public BaseJsTest |
55 { | 55 { |
56 protected: | 56 protected: |
57 void SetUp() | 57 void SetUp() |
58 { | 58 { |
59 BaseJsTest::SetUp(); | 59 BaseJsTest::SetUp(); |
60 jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new T)); | 60 jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(new T())); |
61 jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new LazyFileSystem)); | 61 jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(new LazyFileSystem())); |
62 } | 62 } |
63 }; | 63 }; |
64 | 64 |
65 typedef WebRequestTest<MockWebRequest> MockWebRequestTest; | 65 typedef WebRequestTest<MockWebRequest> MockWebRequestTest; |
66 typedef WebRequestTest<AdblockPlus::DefaultWebRequest> DefaultWebRequestTest; | 66 typedef WebRequestTest<AdblockPlus::DefaultWebRequest> DefaultWebRequestTest; |
67 typedef WebRequestTest<MockWebRequest> XMLHttpRequestTest; | 67 typedef WebRequestTest<MockWebRequest> XMLHttpRequestTest; |
68 | 68 |
69 void ResetTestXHR(const AdblockPlus::JsEnginePtr& jsEngine) | 69 void ResetTestXHR(const AdblockPlus::JsEnginePtr& jsEngine) |
70 { | 70 { |
71 jsEngine->Evaluate("\ | 71 jsEngine->Evaluate("\ |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 lastLogLevel = AdblockPlus::LogSystem::LOG_LEVEL_TRACE; | 200 lastLogLevel = AdblockPlus::LogSystem::LOG_LEVEL_TRACE; |
201 lastMessage.clear(); | 201 lastMessage.clear(); |
202 } | 202 } |
203 }; | 203 }; |
204 | 204 |
205 typedef std::shared_ptr<CatchLogSystem> CatchLogSystemPtr; | 205 typedef std::shared_ptr<CatchLogSystem> CatchLogSystemPtr; |
206 } | 206 } |
207 | 207 |
208 TEST_F(XMLHttpRequestTest, RequestHeaderValidation) | 208 TEST_F(XMLHttpRequestTest, RequestHeaderValidation) |
209 { | 209 { |
210 auto catchLogSystem = CatchLogSystemPtr(new CatchLogSystem); | 210 CatchLogSystemPtr catchLogSystem = std::make_shared<CatchLogSystem>(); |
211 jsEngine->SetLogSystem(catchLogSystem); | 211 jsEngine->SetLogSystem(catchLogSystem); |
212 | 212 |
213 AdblockPlus::FilterEngine filterEngine(jsEngine); | 213 AdblockPlus::FilterEngine filterEngine(jsEngine); |
214 auto webRequest = | 214 auto webRequest = |
215 std::static_pointer_cast<MockWebRequest>(jsEngine->GetWebRequest()); | 215 std::static_pointer_cast<MockWebRequest>(jsEngine->GetWebRequest()); |
216 | 216 |
217 ASSERT_TRUE(webRequest); | 217 ASSERT_TRUE(webRequest); |
218 | 218 |
219 const std::string msg = "Attempt to set a forbidden header was denied: "; | 219 const std::string msg = "Attempt to set a forbidden header was denied: "; |
220 | 220 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 catchLogSystem->clear(); | 281 catchLogSystem->clear(); |
282 ResetTestXHR(jsEngine); | 282 ResetTestXHR(jsEngine); |
283 jsEngine->Evaluate("\ | 283 jsEngine->Evaluate("\ |
284 request.setRequestHeader('Security', 'theater');\nrequest.send();"); | 284 request.setRequestHeader('Security', 'theater');\nrequest.send();"); |
285 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve
l); | 285 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve
l); |
286 EXPECT_EQ("", catchLogSystem->lastMessage); | 286 EXPECT_EQ("", catchLogSystem->lastMessage); |
287 WaitForVariable("result", jsEngine); | 287 WaitForVariable("result", jsEngine); |
288 EXPECT_FALSE(webRequest->lastRequestHeaders.cend() == | 288 EXPECT_FALSE(webRequest->lastRequestHeaders.cend() == |
289 webRequest->lastRequestHeaders.find("Security")); | 289 webRequest->lastRequestHeaders.find("Security")); |
290 } | 290 } |
OLD | NEW |