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.XWalkView;
20 import org.xwalk.core.internal.XWalkClient;
21 import org.xwalk.core.internal.XWalkSettings;
24 * Test suite for setUserAgentString() and getUserAgentString().
26 public class UserAgentTest extends XWalkViewTestBase {
28 public void setUp() throws Exception {
32 protected XWalkSettings getXWalkSettingsOnUiThread(
34 return runTestOnUiThreadAndGetResult(new Callable<XWalkSettings>() {
36 public XWalkSettings call() throws Exception {
37 return getXWalkView().getSettings();
43 @Feature({"UserAgent"})
44 public void testUserAgent() throws Throwable {
45 XWalkSettings settings = getXWalkSettingsOnUiThread();
46 final String defaultUserAgentString = settings.getUserAgentString();
48 // Check that an attempt to set the default UA string to null or "" has no effect.
49 settings.setUserAgentString(null);
50 assertEquals(defaultUserAgentString, settings.getUserAgentString());
51 settings.setUserAgentString("");
52 assertEquals(defaultUserAgentString, settings.getUserAgentString());
54 // Check that we can also set the default value.
55 settings.setUserAgentString(defaultUserAgentString);
56 assertEquals(defaultUserAgentString, settings.getUserAgentString());
58 // Set a custom UA string, verify that it can be reset back to default.
59 final String customUserAgentString = "XWalkUserAgentTest";
60 settings.setUserAgentString(customUserAgentString);
61 assertEquals(customUserAgentString, settings.getUserAgentString());
62 settings.setUserAgentString(null);
63 assertEquals(defaultUserAgentString, settings.getUserAgentString());
67 @Feature({"UserAgent"})
68 public void testUserAgentWithTestServer() throws Throwable {
69 XWalkSettings settings = getXWalkSettingsOnUiThread();
70 final String customUserAgentString =
71 "testUserAgentWithTestServerUserAgent";
73 TestWebServer webServer = null;
74 String fileName = null;
76 webServer = new TestWebServer(false);
77 final String httpPath = "/testUserAgentWithTestServer.html";
78 final String url = webServer.setResponse(httpPath, "foo", null);
80 settings.setUserAgentString(customUserAgentString);
83 assertEquals(1, webServer.getRequestCount(httpPath));
84 HttpRequest request = webServer.getLastRequest(httpPath);
85 Header[] matchingHeaders = request.getHeaders("User-Agent");
86 assertEquals(1, matchingHeaders.length);
88 Header header = matchingHeaders[0];
89 assertEquals(customUserAgentString, header.getValue());
91 if (webServer != null) webServer.shutdown();