| 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 | 
|---|