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.
6 package org.xwalk.core.xwview.test;
8 import android.graphics.Bitmap;
9 import android.content.Context;
10 import android.test.suitebuilder.annotation.SmallTest;
11 import android.test.suitebuilder.annotation.MediumTest;
13 import java.util.concurrent.Callable;
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;
24 * Test suite for setUserAgentString() and getUserAgentString().
26 public class UserAgentTest extends XWalkViewTestBase {
28 public void setUp() throws Exception {
31 setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
34 protected XWalkSettings getXWalkSettingsOnUiThread(
36 return runTestOnUiThreadAndGetResult(new Callable<XWalkSettings>() {
38 public XWalkSettings call() throws Exception {
39 return getXWalkView().getSettings();
45 @Feature({"UserAgent"})
46 public void testUserAgent() throws Throwable {
47 XWalkSettings settings = getXWalkSettingsOnUiThread();
48 final String defaultUserAgentString = settings.getUserAgentString();
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());
56 // Check that we can also set the default value.
57 settings.setUserAgentString(defaultUserAgentString);
58 assertEquals(defaultUserAgentString, settings.getUserAgentString());
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());
69 @Feature({"UserAgent"})
70 public void testUserAgentWithTestServer() throws Throwable {
71 XWalkSettings settings = getXWalkSettingsOnUiThread();
72 final String customUserAgentString =
73 "testUserAgentWithTestServerUserAgent";
75 TestWebServer webServer = null;
76 String fileName = null;
78 webServer = new TestWebServer(false);
79 final String httpPath = "/testUserAgentWithTestServer.html";
80 final String url = webServer.setResponse(httpPath, "foo", null);
82 settings.setUserAgentString(customUserAgentString);
85 assertEquals(1, webServer.getRequestCount(httpPath));
86 HttpRequest request = webServer.getLastRequest(httpPath);
87 Header[] matchingHeaders = request.getHeaders("User-Agent");
88 assertEquals(1, matchingHeaders.length);
90 Header header = matchingHeaders[0];
91 assertEquals(customUserAgentString, header.getValue());
93 if (webServer != null) webServer.shutdown();