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

Unified Diff: libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java

Issue 29347192: Issue 4181 - Fix FilterEngineTest tests (Closed)
Patch Set: Made FileSystemUtils methods static Created Sept. 9, 2016, 7:07 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java
diff --git a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java b/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java
index 2ffe0639fc6651be71df6d03ac0ce349c7c7bc29..3f77cb47bbd1d84ed7668f803ef961b9835c7280 100644
--- a/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java
+++ b/libadblockplus-android-tests/src/org/adblockplus/libadblockplus/tests/UpdateCheckTest.java
@@ -30,236 +30,243 @@ import org.adblockplus.libadblockplus.UpdateCheckDoneCallback;
import org.junit.Test;
+import java.io.IOException;
import java.util.List;
public class UpdateCheckTest extends BaseJsTest
{
- protected String previousRequestUrl;
+ protected String previousRequestUrl;
- public class TestWebRequest extends LazyWebRequest
- {
- public ServerResponse response = new ServerResponse();
-
- @Override
- public ServerResponse httpGET(String url, List<HeaderEntry> headers)
- {
- if (url.indexOf("easylist") >= 0)
- return super.httpGET(url, headers);
-
- previousRequestUrl = url;
- return response;
- }
- }
-
- protected AppInfo appInfo;
- protected TestWebRequest webRequest;
- protected JsEngine jsEngine;
- protected FilterEngine filterEngine;
-
- protected boolean eventCallbackCalled;
- protected List<JsValue> eventCallbackParams;
- protected boolean updateCallbackCalled;
- protected String updateError;
-
- private EventCallback eventCallback = new EventCallback()
- {
- @Override
- public void eventCallback(List<JsValue> params)
- {
- eventCallbackCalled = true;
- eventCallbackParams = params;
- }
- };
-
- private UpdateCheckDoneCallback updateCallback = new UpdateCheckDoneCallback()
- {
- @Override
- public void updateCheckDoneCallback(String error)
- {
- updateCallbackCalled = true;
- updateError = error;
- }
- };
-
- public void reset()
- {
- jsEngine = new JsEngine(appInfo);
- jsEngine.setLogSystem(new LazyLogSystem());
- jsEngine.setDefaultFileSystem(getContext().getFilesDir().getAbsolutePath());
- jsEngine.setWebRequest(webRequest);
- jsEngine.setEventCallback("updateAvailable", eventCallback);
-
- filterEngine = new FilterEngine(jsEngine);
- }
+ public class TestWebRequest extends LazyWebRequest
+ {
+ public ServerResponse response = new ServerResponse();
@Override
- protected void setUp() throws Exception
+ public ServerResponse httpGET(String url, List<HeaderEntry> headers)
{
- super.setUp();
+ if (url.indexOf("easylist") >= 0)
+ {
+ return super.httpGET(url, headers);
+ }
- appInfo = AppInfo.builder().build();
- webRequest = new TestWebRequest();
- eventCallbackCalled = false;
- updateCallbackCalled = false;
- reset();
+ previousRequestUrl = url;
+ return response;
}
+ }
- public void forceUpdateCheck()
- {
- filterEngine.forceUpdateCheck(updateCallback);
- }
-
- @Test
- public void testRequestFailure() throws InterruptedException
- {
- webRequest.response.setStatus(ServerResponse.NsStatus.ERROR_FAILURE);
-
- appInfo = AppInfo
- .builder()
- .setName("1")
- .setVersion("3")
- .setApplication("4")
- .setApplicationVersion("2")
- .setDevelopmentBuild(false)
- .build();
-
- reset();
- forceUpdateCheck();
-
- Thread.sleep(100);
-
- assertFalse(eventCallbackCalled);
- assertTrue(updateCallbackCalled);
- assertNotNull(updateError);
-
- String expectedUrl = filterEngine.getPref("update_url_release").asString();
- String platform = "libadblockplus";
- String platformVersion = "1.0";
-
- expectedUrl = expectedUrl
- .replaceAll("%NAME%", appInfo.name)
- .replaceAll("%TYPE%", "1"); // manual update
-
- expectedUrl +=
- "&addonName=" + appInfo.name +
- "&addonVersion=" + appInfo.version +
- "&application=" + appInfo.application +
- "&applicationVersion=" + appInfo.applicationVersion +
- "&platform=" + platform +
- "&platformVersion=" + platformVersion +
- "&lastVersion=0&downloadCount=0";
-
- assertEquals(expectedUrl, previousRequestUrl);
- }
-
- @Test
- public void testApplicationUpdateAvailable() throws InterruptedException
- {
- webRequest.response.setStatus(ServerResponse.NsStatus.OK);
- webRequest.response.setResponseStatus(200);
- webRequest.response.setResponse(
- "{\"1/4\": {\"version\":\"3.1\",\"url\":\"https://foo.bar/\"}}");
-
- appInfo = AppInfo
- .builder()
- .setName("1")
- .setVersion("3")
- .setApplication("4")
- .setApplicationVersion("2")
- .setDevelopmentBuild(true)
- .build();
-
- reset();
- forceUpdateCheck();
-
- Thread.sleep(1000);
-
- assertTrue(eventCallbackCalled);
- assertNotNull(eventCallbackParams);
- assertEquals(1l, eventCallbackParams.size());
- assertEquals("https://foo.bar/", eventCallbackParams.get(0).asString());
- assertTrue(updateCallbackCalled);
- assertEquals("", updateError);
- }
+ protected AppInfo appInfo;
+ protected TestWebRequest webRequest;
+ protected JsEngine jsEngine;
+ protected FilterEngine filterEngine;
- @Test
- public void testWrongApplication() throws InterruptedException
- {
- webRequest.response.setStatus(ServerResponse.NsStatus.OK);
- webRequest.response.setResponseStatus(200);
- webRequest.response.setResponse(
- "{\"1/3\": {\"version\":\"3.1\",\"url\":\"https://foo.bar/\"}}");
-
- appInfo = AppInfo
- .builder()
- .setName("1")
- .setVersion("3")
- .setApplication("4")
- .setApplicationVersion("2")
- .setDevelopmentBuild(true)
- .build();
-
- reset();
- forceUpdateCheck();
-
- Thread.sleep(1000);
-
- assertFalse(eventCallbackCalled);
- assertTrue(updateCallbackCalled);
- assertEquals("", updateError);
- }
+ protected boolean eventCallbackCalled;
+ protected List<JsValue> eventCallbackParams;
+ protected boolean updateCallbackCalled;
+ protected String updateError;
- @Test
- public void testWrongVersion() throws InterruptedException
+ private EventCallback eventCallback = new EventCallback()
+ {
+ @Override
+ public void eventCallback(List<JsValue> params)
{
- webRequest.response.setStatus(ServerResponse.NsStatus.OK);
- webRequest.response.setResponseStatus(200);
- webRequest.response.setResponse(
- "{\"1\": {\"version\":\"3\",\"url\":\"https://foo.bar/\"}}");
-
- appInfo = AppInfo
- .builder()
- .setName("1")
- .setVersion("3")
- .setApplication("4")
- .setApplicationVersion("2")
- .setDevelopmentBuild(true)
- .build();
-
- reset();
- forceUpdateCheck();
-
- Thread.sleep(1000);
-
- assertFalse(eventCallbackCalled);
- assertTrue(updateCallbackCalled);
- assertEquals("", updateError);
+ eventCallbackCalled = true;
+ eventCallbackParams = params;
}
+ };
- @Test
- public void testWrongURL() throws InterruptedException
+ private UpdateCheckDoneCallback updateCallback = new UpdateCheckDoneCallback()
+ {
+ @Override
+ public void updateCheckDoneCallback(String error)
{
- webRequest.response.setStatus(ServerResponse.NsStatus.OK);
- webRequest.response.setResponseStatus(200);
- webRequest.response.setResponse(
- "{\"1\": {\"version\":\"3.1\",\"url\":\"http://insecure/\"}}");
-
- appInfo = AppInfo
- .builder()
- .setName("1")
- .setVersion("3")
- .setApplication("4")
- .setApplicationVersion("2")
- .setDevelopmentBuild(true)
- .build();
-
- reset();
- forceUpdateCheck();
-
- Thread.sleep(1000);
-
- assertFalse(eventCallbackCalled);
- assertTrue(updateCallbackCalled);
- assertTrue(updateError.length() > 0);
+ updateCallbackCalled = true;
+ updateError = error;
}
+ };
+
+ public void reset() throws IOException
+ {
+ jsEngine = new JsEngine(appInfo);
+ jsEngine.setLogSystem(new LazyLogSystem());
+
+ cleanupFileSystem();
+ tmpFileSystemPath = buildTmpFileSystemPath();
+ jsEngine.setDefaultFileSystem(tmpFileSystemPath.getAbsolutePath());
+
+ jsEngine.setWebRequest(webRequest);
+ jsEngine.setEventCallback("updateAvailable", eventCallback);
+
+ filterEngine = new FilterEngine(jsEngine);
+ }
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ appInfo = AppInfo.builder().build();
+ webRequest = new TestWebRequest();
+ eventCallbackCalled = false;
+ updateCallbackCalled = false;
+ reset();
+ }
+
+ public void forceUpdateCheck()
+ {
+ filterEngine.forceUpdateCheck(updateCallback);
+ }
+
+ @Test
+ public void testRequestFailure() throws InterruptedException, IOException
+ {
+ webRequest.response.setStatus(ServerResponse.NsStatus.ERROR_FAILURE);
+
+ appInfo = AppInfo
+ .builder()
+ .setName("1")
+ .setVersion("3")
+ .setApplication("4")
+ .setApplicationVersion("2")
+ .setDevelopmentBuild(false)
+ .build();
+
+ reset();
+ forceUpdateCheck();
+
+ Thread.sleep(100);
+
+ assertFalse(eventCallbackCalled);
+ assertTrue(updateCallbackCalled);
+ assertNotNull(updateError);
+
+ String expectedUrl = filterEngine.getPref("update_url_release").asString();
+ String platform = "libadblockplus";
+ String platformVersion = "1.0";
+
+ expectedUrl = expectedUrl
+ .replaceAll("%NAME%", appInfo.name)
+ .replaceAll("%TYPE%", "1"); // manual update
+
+ expectedUrl +=
+ "&addonName=" + appInfo.name +
+ "&addonVersion=" + appInfo.version +
+ "&application=" + appInfo.application +
+ "&applicationVersion=" + appInfo.applicationVersion +
+ "&platform=" + platform +
+ "&platformVersion=" + platformVersion +
+ "&lastVersion=0&downloadCount=0";
+
+ assertEquals(expectedUrl, previousRequestUrl);
+ }
+
+ @Test
+ public void testApplicationUpdateAvailable() throws InterruptedException, IOException
+ {
+ webRequest.response.setStatus(ServerResponse.NsStatus.OK);
+ webRequest.response.setResponseStatus(200);
+ webRequest.response.setResponse(
+ "{\"1/4\": {\"version\":\"3.1\",\"url\":\"https://foo.bar/\"}}");
+
+ appInfo = AppInfo
+ .builder()
+ .setName("1")
+ .setVersion("3")
+ .setApplication("4")
+ .setApplicationVersion("2")
+ .setDevelopmentBuild(true)
+ .build();
+
+ reset();
+ forceUpdateCheck();
+
+ Thread.sleep(1000);
+
+ assertTrue(eventCallbackCalled);
+ assertNotNull(eventCallbackParams);
+ assertEquals(1l, eventCallbackParams.size());
+ assertEquals("https://foo.bar/", eventCallbackParams.get(0).asString());
+ assertTrue(updateCallbackCalled);
+ assertEquals("", updateError);
+ }
+
+ @Test
+ public void testWrongApplication() throws InterruptedException, IOException
+ {
+ webRequest.response.setStatus(ServerResponse.NsStatus.OK);
+ webRequest.response.setResponseStatus(200);
+ webRequest.response.setResponse(
+ "{\"1/3\": {\"version\":\"3.1\",\"url\":\"https://foo.bar/\"}}");
+
+ appInfo = AppInfo
+ .builder()
+ .setName("1")
+ .setVersion("3")
+ .setApplication("4")
+ .setApplicationVersion("2")
+ .setDevelopmentBuild(true)
+ .build();
+
+ reset();
+ forceUpdateCheck();
+
+ Thread.sleep(1000);
+
+ assertFalse(eventCallbackCalled);
+ assertTrue(updateCallbackCalled);
+ assertEquals("", updateError);
+ }
+
+ @Test
+ public void testWrongVersion() throws InterruptedException, IOException
+ {
+ webRequest.response.setStatus(ServerResponse.NsStatus.OK);
+ webRequest.response.setResponseStatus(200);
+ webRequest.response.setResponse(
+ "{\"1\": {\"version\":\"3\",\"url\":\"https://foo.bar/\"}}");
+
+ appInfo = AppInfo
+ .builder()
+ .setName("1")
+ .setVersion("3")
+ .setApplication("4")
+ .setApplicationVersion("2")
+ .setDevelopmentBuild(true)
+ .build();
+
+ reset();
+ forceUpdateCheck();
+
+ Thread.sleep(1000);
+
+ assertFalse(eventCallbackCalled);
+ assertTrue(updateCallbackCalled);
+ assertEquals("", updateError);
+ }
+
+ @Test
+ public void testWrongURL() throws InterruptedException, IOException
+ {
+ webRequest.response.setStatus(ServerResponse.NsStatus.OK);
+ webRequest.response.setResponseStatus(200);
+ webRequest.response.setResponse(
+ "{\"1\": {\"version\":\"3.1\",\"url\":\"http://insecure/\"}}");
+
+ appInfo = AppInfo
+ .builder()
+ .setName("1")
+ .setVersion("3")
+ .setApplication("4")
+ .setApplicationVersion("2")
+ .setDevelopmentBuild(true)
+ .build();
+
+ reset();
+ forceUpdateCheck();
+
+ Thread.sleep(1000);
+
+ assertFalse(eventCallbackCalled);
+ assertTrue(updateCallbackCalled);
+ assertTrue(updateError.length() > 0);
+ }
}

Powered by Google App Engine
This is Rietveld