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.XWalkContent;
21 import org.xwalk.core.XWalkSettings;
22 import org.xwalk.core.XWalkView;
25 * Test suite for setUserAgentString() and getUserAgentString().
27 public class UserAgentTest extends XWalkViewTestBase {
29 public void setUp() throws Exception {
32 setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
35 protected XWalkSettings getXWalkSettingsOnUiThread(
37 return runTestOnUiThreadAndGetResult(new Callable<XWalkSettings>() {
39 public XWalkSettings call() throws Exception {
40 return getXWalkView().getXWalkViewContentForTest().getSettings();
46 @Feature({"UserAgent"})
47 public void testUserAgent() throws Throwable {
48 XWalkSettings settings = getXWalkSettingsOnUiThread();
49 final String defaultUserAgentString = settings.getUserAgentString();
51 // Check that an attempt to set the default UA string to null or "" has no effect.
52 settings.setUserAgentString(null);
53 assertEquals(defaultUserAgentString, settings.getUserAgentString());
54 settings.setUserAgentString("");
55 assertEquals(defaultUserAgentString, settings.getUserAgentString());
57 // Check that we can also set the default value.
58 settings.setUserAgentString(defaultUserAgentString);
59 assertEquals(defaultUserAgentString, settings.getUserAgentString());
61 // Set a custom UA string, verify that it can be reset back to default.
62 final String customUserAgentString = "XWalkUserAgentTest";
63 settings.setUserAgentString(customUserAgentString);
64 assertEquals(customUserAgentString, settings.getUserAgentString());
65 settings.setUserAgentString(null);
66 assertEquals(defaultUserAgentString, settings.getUserAgentString());
70 @Feature({"UserAgent"})
71 public void testUserAgentWithTestServer() throws Throwable {
72 XWalkSettings settings = getXWalkSettingsOnUiThread();
73 final String customUserAgentString =
74 "testUserAgentWithTestServerUserAgent";
76 TestWebServer webServer = null;
77 String fileName = null;
79 webServer = new TestWebServer(false);
80 final String httpPath = "/testUserAgentWithTestServer.html";
81 final String url = webServer.setResponse(httpPath, "foo", null);
83 settings.setUserAgentString(customUserAgentString);
86 assertEquals(1, webServer.getRequestCount(httpPath));
87 HttpRequest request = webServer.getLastRequest(httpPath);
88 Header[] matchingHeaders = request.getHeaders("User-Agent");
89 assertEquals(1, matchingHeaders.length);
91 Header header = matchingHeaders[0];
92 assertEquals(customUserAgentString, header.getValue());
94 if (webServer != null) webServer.shutdown();