| OLD | NEW |
| 1 #include <sstream> | 1 #include <sstream> |
| 2 #include <AdblockPlus.h> | 2 #include <AdblockPlus.h> |
| 3 #include <gtest/gtest.h> | 3 #include <gtest/gtest.h> |
| 4 | 4 |
| 5 #include "../src/Thread.h" | 5 #include "../src/Thread.h" |
| 6 | 6 |
| 7 class TestWebRequest : public AdblockPlus::WebRequest | 7 // TODO: Use a fixture here |
| 8 |
| 9 namespace |
| 8 { | 10 { |
| 9 public: | 11 class TestWebRequest : public AdblockPlus::WebRequest |
| 10 AdblockPlus::ServerResponse GET(const std::string& url, const AdblockPlus::Hea
derList& requestHeaders) const | |
| 11 { | 12 { |
| 12 AdblockPlus::Sleep(50); | 13 public: |
| 14 AdblockPlus::ServerResponse GET(const std::string& url, const AdblockPlus::H
eaderList& requestHeaders) const |
| 15 { |
| 16 AdblockPlus::Sleep(50); |
| 13 | 17 |
| 14 AdblockPlus::ServerResponse result; | 18 AdblockPlus::ServerResponse result; |
| 15 result.status = NS_OK; | 19 result.status = NS_OK; |
| 16 result.responseStatus = 123; | 20 result.responseStatus = 123; |
| 17 result.responseHeaders.push_back(std::pair<std::string, std::string>("Foo",
"Bar")); | 21 result.responseHeaders.push_back(std::pair<std::string, std::string>("Foo"
, "Bar")); |
| 18 result.responseText = url + "\n" + requestHeaders[0].first + "\n" + requestH
eaders[0].second; | 22 result.responseText = url + "\n" + requestHeaders[0].first + "\n" + reques
tHeaders[0].second; |
| 19 return result; | 23 return result; |
| 24 } |
| 25 }; |
| 26 |
| 27 std::string ToString(unsigned int i) |
| 28 { |
| 29 std::stringstream stream; |
| 30 stream << i; |
| 31 return stream.str(); |
| 20 } | 32 } |
| 21 }; | |
| 22 | |
| 23 std::string ToString(unsigned int i) | |
| 24 { | |
| 25 std::stringstream stream; | |
| 26 stream << i; | |
| 27 return stream.str(); | |
| 28 } | 33 } |
| 29 | 34 |
| 30 TEST(WebRequestTest, BadCall) | 35 TEST(WebRequestTest, BadCall) |
| 31 { | 36 { |
| 32 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); | 37 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
| 33 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET()")); | 38 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET()")); |
| 34 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('', {}, function(){})")); | 39 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('', {}, function(){})")); |
| 35 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET({toString: false}, {}, fu
nction(){})")); | 40 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET({toString: false}, {}, fu
nction(){})")); |
| 36 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('http://example.com/', nu
ll, function(){})")); | 41 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('http://example.com/', nu
ll, function(){})")); |
| 37 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('http://example.com/', {}
, null)")); | 42 ASSERT_ANY_THROW(jsEngine->Evaluate("_webRequest.GET('http://example.com/', {}
, null)")); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 do | 107 do |
| 103 { | 108 { |
| 104 AdblockPlus::Sleep(200); | 109 AdblockPlus::Sleep(200); |
| 105 } while (jsEngine->Evaluate("this.foo")->IsUndefined()); | 110 } while (jsEngine->Evaluate("this.foo")->IsUndefined()); |
| 106 ASSERT_EQ(AdblockPlus::WebRequest::NS_ERROR_FAILURE, jsEngine->Evaluate("foo.s
tatus")->AsInt()); | 111 ASSERT_EQ(AdblockPlus::WebRequest::NS_ERROR_FAILURE, jsEngine->Evaluate("foo.s
tatus")->AsInt()); |
| 107 ASSERT_EQ(0, jsEngine->Evaluate("foo.responseStatus")->AsInt()); | 112 ASSERT_EQ(0, jsEngine->Evaluate("foo.responseStatus")->AsInt()); |
| 108 ASSERT_EQ("", jsEngine->Evaluate("foo.responseText")->AsString()); | 113 ASSERT_EQ("", jsEngine->Evaluate("foo.responseText")->AsString()); |
| 109 ASSERT_EQ("{}", jsEngine->Evaluate("JSON.stringify(foo.responseHeaders)")->AsS
tring()); | 114 ASSERT_EQ("{}", jsEngine->Evaluate("JSON.stringify(foo.responseHeaders)")->AsS
tring()); |
| 110 } | 115 } |
| 111 | 116 |
| 112 #if !FILTER_ENGINE_STUBS | |
| 113 TEST(WebRequestTest, XMLHttpRequest) | 117 TEST(WebRequestTest, XMLHttpRequest) |
| 114 { | 118 { |
| 115 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); | 119 AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); |
| 116 AdblockPlus::FilterEngine filterEngine(jsEngine); | 120 AdblockPlus::FilterEngine filterEngine(jsEngine); |
| 117 | 121 |
| 118 jsEngine->Evaluate("\ | 122 jsEngine->Evaluate("\ |
| 119 var result;\ | 123 var result;\ |
| 120 var request = new XMLHttpRequest();\ | 124 var request = new XMLHttpRequest();\ |
| 121 request.open('GET', 'https://easylist.adblockplus.org/easylist.txt');\ | 125 request.open('GET', 'https://easylist.adblockplus.org/easylist.txt');\ |
| 122 request.setRequestHeader('X', 'Y');\ | 126 request.setRequestHeader('X', 'Y');\ |
| 123 request.overrideMimeType('text/plain');\ | 127 request.overrideMimeType('text/plain');\ |
| 124 request.addEventListener('load', function() {result = request.responseText;}
, false);\ | 128 request.addEventListener('load', function() {result = request.responseText;}
, false);\ |
| 125 request.addEventListener('error', function() {result = 'error';}, false);\ | 129 request.addEventListener('error', function() {result = 'error';}, false);\ |
| 126 request.send(null);"); | 130 request.send(null);"); |
| 127 do | 131 do |
| 128 { | 132 { |
| 129 AdblockPlus::Sleep(200); | 133 AdblockPlus::Sleep(200); |
| 130 } while (jsEngine->Evaluate("result")->IsUndefined()); | 134 } while (jsEngine->Evaluate("result")->IsUndefined()); |
| 131 ASSERT_EQ(AdblockPlus::WebRequest::NS_ERROR_FAILURE, jsEngine->Evaluate("reque
st.channel.status")->AsInt()); | 135 ASSERT_EQ(AdblockPlus::WebRequest::NS_ERROR_FAILURE, jsEngine->Evaluate("reque
st.channel.status")->AsInt()); |
| 132 ASSERT_EQ(0, jsEngine->Evaluate("request.status")->AsInt()); | 136 ASSERT_EQ(0, jsEngine->Evaluate("request.status")->AsInt()); |
| 133 ASSERT_EQ("error", jsEngine->Evaluate("result")->AsString()); | 137 ASSERT_EQ("error", jsEngine->Evaluate("result")->AsString()); |
| 134 ASSERT_TRUE(jsEngine->Evaluate("request.getResponseHeader('Content-Type')")->I
sNull()); | 138 ASSERT_TRUE(jsEngine->Evaluate("request.getResponseHeader('Content-Type')")->I
sNull()); |
| 135 } | 139 } |
| 136 #endif | |
| 137 | 140 |
| 138 #endif | 141 #endif |
| OLD | NEW |