1 // Copyright (c) 2014 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.xwalk.core.xwview.test;
7 import android.test.suitebuilder.annotation.MediumTest;
9 import java.util.concurrent.TimeUnit;
11 import org.chromium.base.test.util.Feature;
12 import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
13 import org.chromium.net.test.util.TestWebServer;
15 import org.xwalk.core.XWalkUIClient.LoadStatus;
17 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
20 * Tests for the XWalkUIClient.onPageLoadStopped() method.
22 public class OnPageLoadStoppedTest extends XWalkViewTestBase {
23 private static final long WAIT_TIMEOUT_MS = scaleTimeout(2000);
24 TestWebServer mWebServer;
25 TestCallbackHelperContainer.OnPageFinishedHelper mOnPageFinishedHelper;
26 TestCallbackHelperContainer.OnReceivedErrorHelper mOnReceivedErrorHelper;
27 TestCallbackHelperContainer.OnPageStartedHelper mOnPageStartedHelper;
29 public void setUp() throws Exception {
31 mWebServer = TestWebServer.start();
32 mOnPageFinishedHelper = mTestHelperBridge.getOnPageFinishedHelper();
33 mOnReceivedErrorHelper = mTestHelperBridge.getOnReceivedErrorHelper();
34 mOnPageStartedHelper = mTestHelperBridge.getOnPageStartedHelper();
38 protected void tearDown() throws Exception {
39 mWebServer.shutdown();
44 @Feature({"OnPageLoadStopped"})
45 public void testOnPageLoadStoppedWithLocalUrl() throws Throwable {
46 String url = "file:///android_asset/www/index.html";
47 int currentCallCount = mOnPageFinishedHelper.getCallCount();
50 mOnPageFinishedHelper.waitForCallback(currentCallCount);
51 assertEquals(url, mOnPageFinishedHelper.getUrl());
52 assertEquals(LoadStatus.FINISHED, mTestHelperBridge.getLoadStatus());
56 @Feature({"OnPageLoadStopped"})
57 public void testOnPageLoadStoppedWithServer() throws Throwable {
58 final String testHtml = "<html><head>Header</head><body>Body</body></html>";
59 final String testPath = "/test.html";
61 final String testUrl = mWebServer.setResponse(testPath, testHtml, null);
62 int currentCallCount = mOnPageFinishedHelper.getCallCount();
63 loadUrlAsync(testUrl);
65 mOnPageFinishedHelper.waitForCallback(currentCallCount);
66 assertEquals(testUrl, mOnPageFinishedHelper.getUrl());
67 assertEquals(LoadStatus.FINISHED, mTestHelperBridge.getLoadStatus());
71 @Feature({"OnPageLoadStopped"})
72 public void testOnPageLoadStoppedWithData() throws Throwable {
73 final String name = "index.html";
74 String fileContent = getFileContent(name);
75 int currentCallCount = mOnPageFinishedHelper.getCallCount();
76 loadDataAsync(null, fileContent, "text/html", false);
78 mOnPageFinishedHelper.waitForCallback(currentCallCount);
79 assertEquals("about:blank", mOnPageFinishedHelper.getUrl());
80 assertEquals(LoadStatus.FINISHED, mTestHelperBridge.getLoadStatus());
84 @Feature({"OnPageLoadStopped"})
85 public void testOnPageLoadStoppedWithInvalidUrl() throws Throwable {
86 String url = "http://localhost/non_existent";
87 int currentCallCount = mOnPageFinishedHelper.getCallCount();
88 int onReceivedErrorCallCount = mOnReceivedErrorHelper.getCallCount();
89 assertEquals(0, mOnReceivedErrorHelper.getCallCount());
92 mOnReceivedErrorHelper.waitForCallback(onReceivedErrorCallCount,
94 TimeUnit.MILLISECONDS);
95 mOnPageFinishedHelper.waitForCallback(currentCallCount,
97 TimeUnit.MILLISECONDS);
98 assertEquals(1, mOnReceivedErrorHelper.getCallCount());
99 assertEquals(url, mOnPageFinishedHelper.getUrl());
100 assertEquals(LoadStatus.FAILED, mTestHelperBridge.getLoadStatus());
104 @Feature({"OnPageLoadStopped"})
105 public void testOnPageLoadStoppedWithStopLoading() throws Throwable {
106 final String testHtml = "<html><head>Header</head><body>Body</body></html>";
107 final String testPath = "/test.html";
109 final String testUrl = mWebServer.setResponse(testPath, testHtml, null);
110 int currentCallCount = mOnPageFinishedHelper.getCallCount();
111 int startedCount = mOnPageStartedHelper.getCallCount();
112 loadUrlAsync(testUrl);
113 mOnPageStartedHelper.waitForCallback(startedCount);
115 mOnPageFinishedHelper.waitForCallback(currentCallCount);
116 assertEquals(testUrl, mOnPageFinishedHelper.getUrl());
117 assertEquals(LoadStatus.CANCELLED, mTestHelperBridge.getLoadStatus());