| OLD | NEW | 
| (Empty) |  | 
 |    1 /* | 
 |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
 |    3  * Copyright (C) 2006-2016 Eyeo GmbH | 
 |    4  * | 
 |    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 | 
 |    7  * published by the Free Software Foundation. | 
 |    8  * | 
 |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |   12  * GNU General Public License for more details. | 
 |   13  * | 
 |   14  * You should have received a copy of the GNU General Public License | 
 |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |   16  */ | 
 |   17  | 
 |   18 package org.adblockplus.libadblockplus.tests; | 
 |   19  | 
 |   20 import org.adblockplus.libadblockplus.AdblockPlusException; | 
 |   21 import org.adblockplus.libadblockplus.HeaderEntry; | 
 |   22 import org.adblockplus.libadblockplus.ServerResponse; | 
 |   23 import org.adblockplus.libadblockplus.WebRequest; | 
 |   24  | 
 |   25 import org.junit.Test; | 
 |   26  | 
 |   27 import java.util.Arrays; | 
 |   28 import java.util.List; | 
 |   29  | 
 |   30 public class MockWebRequestTest extends BaseJsTest | 
 |   31 { | 
 |   32  | 
 |   33   private class LocalMockWebRequest extends WebRequest | 
 |   34   { | 
 |   35     @Override | 
 |   36     public ServerResponse httpGET(String url, List<HeaderEntry> headers) | 
 |   37     { | 
 |   38       try | 
 |   39       { | 
 |   40         Thread.sleep(50); | 
 |   41       } | 
 |   42       catch (InterruptedException e) | 
 |   43       { | 
 |   44         throw new RuntimeException(e); | 
 |   45       } | 
 |   46  | 
 |   47       ServerResponse result = new ServerResponse(); | 
 |   48       result.setStatus(ServerResponse.NsStatus.OK); | 
 |   49       result.setResponseStatus(123); | 
 |   50       result.setReponseHeaders(Arrays.asList(new HeaderEntry("Foo", "Bar"))); | 
 |   51  | 
 |   52       result.setResponse( | 
 |   53         url + "\n" + | 
 |   54           headers.get(0).getKey() + "\n" + | 
 |   55           headers.get(0).getValue()); | 
 |   56       return result; | 
 |   57     } | 
 |   58   } | 
 |   59  | 
 |   60   @Override | 
 |   61   protected void setUp() throws Exception | 
 |   62   { | 
 |   63     super.setUp(); | 
 |   64  | 
 |   65     jsEngine.setWebRequest(new LocalMockWebRequest()); | 
 |   66   } | 
 |   67  | 
 |   68   @Test | 
 |   69   public void testBadCall() | 
 |   70   { | 
 |   71     try | 
 |   72     { | 
 |   73       jsEngine.evaluate("_webRequest.GET()"); | 
 |   74       fail(); | 
 |   75     } | 
 |   76     catch (AdblockPlusException e) | 
 |   77     { | 
 |   78       // ignored | 
 |   79     } | 
 |   80  | 
 |   81     try | 
 |   82     { | 
 |   83       jsEngine.evaluate("_webRequest.GET('', {}, function(){})"); | 
 |   84       fail(); | 
 |   85     } | 
 |   86     catch (AdblockPlusException e) | 
 |   87     { | 
 |   88       // ignored | 
 |   89     } | 
 |   90  | 
 |   91     try | 
 |   92     { | 
 |   93       jsEngine.evaluate("_webRequest.GET({toString: false}, {}, function(){})"); | 
 |   94       fail(); | 
 |   95     } | 
 |   96     catch (AdblockPlusException e) | 
 |   97     { | 
 |   98       // ignored | 
 |   99     } | 
 |  100  | 
 |  101     try | 
 |  102     { | 
 |  103       jsEngine.evaluate("_webRequest.GET('http://example.com/', null, function()
     {})"); | 
 |  104       fail(); | 
 |  105     } | 
 |  106     catch (AdblockPlusException e) | 
 |  107     { | 
 |  108       // ignored | 
 |  109     } | 
 |  110  | 
 |  111     try | 
 |  112     { | 
 |  113       jsEngine.evaluate("_webRequest.GET('http://example.com/', {}, null)"); | 
 |  114       fail(); | 
 |  115     } | 
 |  116     catch (AdblockPlusException e) | 
 |  117     { | 
 |  118       // ignored | 
 |  119     } | 
 |  120  | 
 |  121     try | 
 |  122     { | 
 |  123       jsEngine.evaluate("_webRequest.GET('http://example.com/', {}, function(){}
     , 0)"); | 
 |  124       fail(); | 
 |  125     } | 
 |  126     catch (AdblockPlusException e) | 
 |  127     { | 
 |  128       // ignored | 
 |  129     } | 
 |  130   } | 
 |  131  | 
 |  132   @Test | 
 |  133   public void testSuccessfulRequest() throws InterruptedException | 
 |  134   { | 
 |  135     jsEngine.evaluate( | 
 |  136       "_webRequest.GET('http://example.com/', {X: 'Y'}, function(result) {foo = 
     result;} )"); | 
 |  137     assertTrue(jsEngine.evaluate("this.foo").isUndefined()); | 
 |  138  | 
 |  139     Thread.sleep(200); | 
 |  140  | 
 |  141     assertEquals( | 
 |  142       ServerResponse.NsStatus.OK.getStatusCode(), | 
 |  143       jsEngine.evaluate("foo.status").asLong()); | 
 |  144     assertEquals("http://example.com/\nX\nY", jsEngine.evaluate("foo.responseTex
     t").asString()); | 
 |  145     assertEquals("{\"Foo\":\"Bar\"}", | 
 |  146       jsEngine.evaluate("JSON.stringify(foo.responseHeaders)").asString()); | 
 |  147   } | 
 |  148  | 
 |  149 } | 
| OLD | NEW |