Upstream version 6.35.131.0
[platform/framework/web/crosswalk.git] / src / xwalk / test / android / core / javatests / src / org / xwalk / core / xwview / test / UserAgentTest.java
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Copyright (c) 2013 Intel Corporation. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5
6 package org.xwalk.core.xwview.test;
7
8 import android.graphics.Bitmap;
9 import android.content.Context;
10 import android.test.suitebuilder.annotation.SmallTest;
11 import android.test.suitebuilder.annotation.MediumTest;
12
13 import java.util.concurrent.Callable;
14
15 import org.apache.http.Header;
16 import org.apache.http.HttpRequest;
17 import org.chromium.base.test.util.Feature;
18 import org.chromium.net.test.util.TestWebServer;
19 import org.xwalk.core.XWalkClient;
20 import org.xwalk.core.XWalkSettings;
21 import org.xwalk.core.XWalkView;
22
23 /**
24  * Test suite for setUserAgentString() and getUserAgentString().
25  */
26 public class UserAgentTest extends XWalkViewTestBase {
27     @Override
28     public void setUp() throws Exception {
29         super.setUp();
30
31         setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
32     }
33
34     protected XWalkSettings getXWalkSettingsOnUiThread(
35             ) throws Exception {
36         return runTestOnUiThreadAndGetResult(new Callable<XWalkSettings>() {
37             @Override
38             public XWalkSettings call() throws Exception {
39                 return getXWalkView().getSettings();
40             }
41         });
42     }
43
44     @SmallTest
45     @Feature({"UserAgent"})
46     public void testUserAgent() throws Throwable {
47         XWalkSettings settings = getXWalkSettingsOnUiThread();
48         final String defaultUserAgentString = settings.getUserAgentString();
49
50         // Check that an attempt to set the default UA string to null or "" has no effect.
51         settings.setUserAgentString(null);
52         assertEquals(defaultUserAgentString, settings.getUserAgentString());
53         settings.setUserAgentString("");
54         assertEquals(defaultUserAgentString, settings.getUserAgentString());
55
56         // Check that we can also set the default value.
57         settings.setUserAgentString(defaultUserAgentString);
58         assertEquals(defaultUserAgentString, settings.getUserAgentString());
59
60         // Set a custom UA string, verify that it can be reset back to default.
61         final String customUserAgentString = "XWalkUserAgentTest";
62         settings.setUserAgentString(customUserAgentString);
63         assertEquals(customUserAgentString, settings.getUserAgentString());
64         settings.setUserAgentString(null);
65         assertEquals(defaultUserAgentString, settings.getUserAgentString());
66     }
67
68     @MediumTest
69     @Feature({"UserAgent"})
70     public void testUserAgentWithTestServer() throws Throwable {
71         XWalkSettings settings = getXWalkSettingsOnUiThread();
72         final String customUserAgentString =
73                 "testUserAgentWithTestServerUserAgent";
74
75         TestWebServer webServer = null;
76         String fileName = null;
77         try {
78             webServer = new TestWebServer(false);
79             final String httpPath = "/testUserAgentWithTestServer.html";
80             final String url = webServer.setResponse(httpPath, "foo", null);
81
82             settings.setUserAgentString(customUserAgentString);
83             loadUrlSync(url);
84
85             assertEquals(1, webServer.getRequestCount(httpPath));
86             HttpRequest request = webServer.getLastRequest(httpPath);
87             Header[] matchingHeaders  = request.getHeaders("User-Agent");
88             assertEquals(1, matchingHeaders.length);
89
90             Header header = matchingHeaders[0];
91             assertEquals(customUserAgentString, header.getValue());
92         } finally {
93             if (webServer != null) webServer.shutdown();
94         }
95     }
96 }