f6c111c261564d9bd787fa94cbc55cef4cee1df3
[platform/framework/web/crosswalk.git] / src / xwalk / test / android / core / javatests / src / org / xwalk / core / xwview / test / OnReceivedTitleTest.java
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.
4
5 package org.xwalk.core.xwview.test;
6
7 import android.test.suitebuilder.annotation.MediumTest;
8 import android.util.Pair;
9
10 import java.util.ArrayList;
11 import java.util.List;
12
13 import org.chromium.base.test.util.Feature;
14 import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
15 import org.chromium.net.test.util.TestWebServer;
16
17 import org.xwalk.core.xwview.test.util.CommonResources;
18
19 /**
20  * Tests for the XWalkUIClient.OnReceivedTitleTest() method.
21  */
22 public class OnReceivedTitleTest extends XWalkViewTestBase {
23     private OnTitleUpdatedHelper mOnTitleUpdatedHelper;
24     private TestWebServer mWebServer;
25
26     @Override
27     public void setUp() throws Exception {
28         super.setUp();
29
30         mOnTitleUpdatedHelper = mTestHelperBridge.getOnTitleUpdatedHelper();
31         mWebServer = new TestWebServer(false);
32     }
33
34     @Override
35     protected void tearDown() throws Exception {
36         mWebServer.shutdown();
37         super.tearDown();
38     }
39
40     private String addPageToTestServer(TestWebServer webServer, String httpPath, String html) {
41         List<Pair<String, String>> headers = new ArrayList<Pair<String, String>>();
42         headers.add(Pair.create("Content-Type", "text/html"));
43         headers.add(Pair.create("Cache-Control", "no-store"));
44         return webServer.setResponse(httpPath, html, headers);
45     }
46
47     @MediumTest
48     @Feature({"onReceivedTitle"})
49     public void testOnReceivedTitleWithUrl() throws Throwable {
50         String path = "/test.html";
51         String pageContent = CommonResources.makeHtmlPageFrom("<title>Test</title>",
52                 "<div> The title is: Test </div>");
53         String url = addPageToTestServer(mWebServer, path, pageContent);
54         int onReceivedTitleCallCount = mOnTitleUpdatedHelper.getCallCount();
55
56         loadUrlAsync(url);
57         mOnTitleUpdatedHelper.waitForCallback(onReceivedTitleCallCount);
58         assertNotNull(mOnTitleUpdatedHelper.getTitle());
59     }
60
61     @MediumTest
62     @Feature({"onReceivedTitle"})
63     public void testOnReceivedTitleWithData() throws Throwable {
64         final String name = "index.html";
65         final String fileContent = getFileContent(name);
66         int onReceivedTitleCallCount = mOnTitleUpdatedHelper.getCallCount();
67
68         loadDataSync(name, fileContent, "text/html", false);
69         mOnTitleUpdatedHelper.waitForCallback(onReceivedTitleCallCount);
70         assertNotNull(mOnTitleUpdatedHelper.getTitle());
71     }
72 }