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

Side by Side Diff: test/WebRequest.cpp

Issue 29523555: Issue 5552 - use strict mode for all JS in libadblocklus (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: move setting of strict mode to do it once Created Aug. 22, 2017, 7:58 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« src/JsEngine.cpp ('K') | « test/JsEngine.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('', {}, function(){})")); 153 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('', {}, function(){})"));
154 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET({toString: false}, {}, fun ction(){})")); 154 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET({toString: false}, {}, fun ction(){})"));
155 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', nul l, function(){})")); 155 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', nul l, function(){})"));
156 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', {}, null)")); 156 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', {}, null)"));
157 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', {}, function(){}, 0)")); 157 ASSERT_ANY_THROW(jsEngine.Evaluate("_webRequest.GET('http://example.com/', {}, function(){}, 0)"));
158 } 158 }
159 159
160 TEST_F(MockWebRequestTest, SuccessfulRequest) 160 TEST_F(MockWebRequestTest, SuccessfulRequest)
161 { 161 {
162 auto& jsEngine = GetJsEngine(); 162 auto& jsEngine = GetJsEngine();
163 jsEngine.Evaluate("_webRequest.GET('http://example.com/', {X: 'Y'}, function(r esult) {foo = result;} )"); 163 jsEngine.Evaluate("let foo; _webRequest.GET('http://example.com/', {X: 'Y'}, f unction(result) {foo = result;} )");
164 ASSERT_TRUE(jsEngine.Evaluate("this.foo").IsUndefined()); 164 ASSERT_TRUE(jsEngine.Evaluate("foo").IsUndefined());
165 ProcessPendingWebRequests(); 165 ProcessPendingWebRequests();
166 ASSERT_EQ(IWebRequest::NS_OK, jsEngine.Evaluate("foo.status").AsInt()); 166 ASSERT_EQ(IWebRequest::NS_OK, jsEngine.Evaluate("foo.status").AsInt());
167 ASSERT_EQ(123, jsEngine.Evaluate("foo.responseStatus").AsInt()); 167 ASSERT_EQ(123, jsEngine.Evaluate("foo.responseStatus").AsInt());
168 ASSERT_EQ("http://example.com/\nX\nY", jsEngine.Evaluate("foo.responseText").A sString()); 168 ASSERT_EQ("http://example.com/\nX\nY", jsEngine.Evaluate("foo.responseText").A sString());
169 ASSERT_EQ("{\"Foo\":\"Bar\"}", jsEngine.Evaluate("JSON.stringify(foo.responseH eaders)").AsString()); 169 ASSERT_EQ("{\"Foo\":\"Bar\"}", jsEngine.Evaluate("JSON.stringify(foo.responseH eaders)").AsString());
170 } 170 }
171 171
172 #if defined(HAVE_CURL) || defined(_WIN32) 172 #if defined(HAVE_CURL) || defined(_WIN32)
173 TEST_F(DefaultWebRequestTest, RealWebRequest) 173 TEST_F(DefaultWebRequestTest, RealWebRequest)
174 { 174 {
175 auto& jsEngine = GetJsEngine(); 175 auto& jsEngine = GetJsEngine();
176 // This URL should redirect to easylist-downloads.adblockplus.org and we 176 // This URL should redirect to easylist-downloads.adblockplus.org and we
177 // should get the actual filter list back. 177 // should get the actual filter list back.
178 jsEngine.Evaluate("_webRequest.GET('https://easylist-downloads.adblockplus.org /easylist.txt', {}, function(result) {foo = result;} )"); 178 jsEngine.Evaluate("let foo; _webRequest.GET('https://easylist-downloads.adbloc kplus.org/easylist.txt', {}, function(result) {foo = result;} )");
179 WaitForVariable("this.foo", jsEngine); 179 WaitForVariable("foo", jsEngine);
180 ASSERT_EQ("text/plain", jsEngine.Evaluate("foo.responseHeaders['content-type'] .substr(0, 10)").AsString()); 180 ASSERT_EQ("text/plain", jsEngine.Evaluate("foo.responseHeaders['content-type'] .substr(0, 10)").AsString());
181 ASSERT_EQ(IWebRequest::NS_OK, jsEngine.Evaluate("foo.status").AsInt()); 181 ASSERT_EQ(IWebRequest::NS_OK, jsEngine.Evaluate("foo.status").AsInt());
182 ASSERT_EQ(200, jsEngine.Evaluate("foo.responseStatus").AsInt()); 182 ASSERT_EQ(200, jsEngine.Evaluate("foo.responseStatus").AsInt());
183 ASSERT_EQ("[Adblock Plus ", jsEngine.Evaluate("foo.responseText.substr(0, 14)" ).AsString()); 183 ASSERT_EQ("[Adblock Plus ", jsEngine.Evaluate("foo.responseText.substr(0, 14)" ).AsString());
184 ASSERT_EQ("text/plain", jsEngine.Evaluate("foo.responseHeaders['content-type'] .substr(0, 10)").AsString()); 184 ASSERT_EQ("text/plain", jsEngine.Evaluate("foo.responseHeaders['content-type'] .substr(0, 10)").AsString());
185 #if defined(HAVE_CURL) 185 #if defined(HAVE_CURL)
186 ASSERT_EQ("gzip", jsEngine.Evaluate("foo.responseHeaders['content-encoding'].s ubstr(0, 4)").AsString()); 186 ASSERT_EQ("gzip", jsEngine.Evaluate("foo.responseHeaders['content-encoding'].s ubstr(0, 4)").AsString());
187 #endif 187 #endif
188 ASSERT_TRUE(jsEngine.Evaluate("foo.responseHeaders['location']").IsUndefined() ); 188 ASSERT_TRUE(jsEngine.Evaluate("foo.responseHeaders['location']").IsUndefined() );
189 } 189 }
(...skipping 15 matching lines...) Expand all
205 ASSERT_EQ("text/plain", jsEngine.Evaluate("request.getResponseHeader('Content- Type').substr(0, 10)").AsString()); 205 ASSERT_EQ("text/plain", jsEngine.Evaluate("request.getResponseHeader('Content- Type').substr(0, 10)").AsString());
206 #if defined(HAVE_CURL) 206 #if defined(HAVE_CURL)
207 ASSERT_EQ("gzip", jsEngine.Evaluate("request.getResponseHeader('Content-Encodi ng').substr(0, 4)").AsString()); 207 ASSERT_EQ("gzip", jsEngine.Evaluate("request.getResponseHeader('Content-Encodi ng').substr(0, 4)").AsString());
208 #endif 208 #endif
209 ASSERT_TRUE(jsEngine.Evaluate("request.getResponseHeader('Location')").IsNull( )); 209 ASSERT_TRUE(jsEngine.Evaluate("request.getResponseHeader('Location')").IsNull( ));
210 } 210 }
211 #else 211 #else
212 TEST_F(DefaultWebRequestTest, DummyWebRequest) 212 TEST_F(DefaultWebRequestTest, DummyWebRequest)
213 { 213 {
214 auto& jsEngine = GetJsEngine(); 214 auto& jsEngine = GetJsEngine();
215 jsEngine.Evaluate("_webRequest.GET('https://easylist-downloads.adblockplus.org /easylist.txt', {}, function(result) {foo = result;} )"); 215 jsEngine.Evaluate("let foo; _webRequest.GET('https://easylist-downloads.adbloc kplus.org/easylist.txt', {}, function(result) {foo = result;} )");
216 WaitForVariable("this.foo", jsEngine); 216 WaitForVariable("foo", jsEngine);
217 ASSERT_EQ(IWebRequest::NS_ERROR_FAILURE, jsEngine.Evaluate("foo.status").AsInt ()); 217 ASSERT_EQ(IWebRequest::NS_ERROR_FAILURE, jsEngine.Evaluate("foo.status").AsInt ());
218 ASSERT_EQ(0, jsEngine.Evaluate("foo.responseStatus").AsInt()); 218 ASSERT_EQ(0, jsEngine.Evaluate("foo.responseStatus").AsInt());
219 ASSERT_EQ("", jsEngine.Evaluate("foo.responseText").AsString()); 219 ASSERT_EQ("", jsEngine.Evaluate("foo.responseText").AsString());
220 ASSERT_EQ("{}", jsEngine.Evaluate("JSON.stringify(foo.responseHeaders)").AsStr ing()); 220 ASSERT_EQ("{}", jsEngine.Evaluate("JSON.stringify(foo.responseHeaders)").AsStr ing());
221 } 221 }
222 222
223 TEST_F(DefaultWebRequestTest, XMLHttpRequest) 223 TEST_F(DefaultWebRequestTest, XMLHttpRequest)
224 { 224 {
225 auto& jsEngine = GetJsEngine(); 225 auto& jsEngine = GetJsEngine();
226 auto filterEngine = CreateFilterEngine(*fileSystem, *platform); 226 auto filterEngine = CreateFilterEngine(*fileSystem, *platform);
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve l); 371 EXPECT_EQ(AdblockPlus::LogSystem::LOG_LEVEL_TRACE, catchLogSystem->lastLogLeve l);
372 EXPECT_EQ("", catchLogSystem->lastMessage); 372 EXPECT_EQ("", catchLogSystem->lastMessage);
373 ProcessPendingWebRequests(); 373 ProcessPendingWebRequests();
374 { 374 {
375 auto headersRequest = GetHeadersForRequest(url); 375 auto headersRequest = GetHeadersForRequest(url);
376 EXPECT_TRUE(headersRequest.first); 376 EXPECT_TRUE(headersRequest.first);
377 const auto& headers = headersRequest.second; 377 const auto& headers = headersRequest.second;
378 EXPECT_FALSE(headers.cend() == headers.find("Security")); 378 EXPECT_FALSE(headers.cend() == headers.find("Security"));
379 } 379 }
380 } 380 }
OLDNEW
« src/JsEngine.cpp ('K') | « test/JsEngine.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld