[go: nahoru, domu]

blob: 02caa0932a3748e34cd08e20e235c263269c0c29 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.android_webview.test;
import androidx.test.filters.SmallTest;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.UseParametersRunnerFactory;
import org.chromium.android_webview.AwContents;
import org.chromium.base.test.util.Feature;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** Tests for User Agent implementation. */
@RunWith(Parameterized.class)
@UseParametersRunnerFactory(AwJUnit4ClassRunnerWithParameters.Factory.class)
public class UserAgentTest extends AwParameterizedTest {
@Rule public AwActivityTestRule mActivityTestRule;
private TestAwContentsClient mContentsClient;
private AwContents mAwContents;
public UserAgentTest(AwSettingsMutation param) {
this.mActivityTestRule = new AwActivityTestRule(param.getMutation());
}
@Before
public void setUp() {
mContentsClient = new TestAwContentsClient();
mAwContents =
mActivityTestRule
.createAwTestContainerViewOnMainSync(mContentsClient)
.getAwContents();
}
/**
* Test for b/6404375. Verify that the UA string doesn't contain
* two spaces before the Android build name.
*/
@Test
@SmallTest
@Feature({"AndroidWebView"})
@SkipMutations(reason = "This test depends on AwSettings.setUserAgentString()")
public void testNoExtraSpaceBeforeBuildName() throws Throwable {
mActivityTestRule.getAwSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true);
mActivityTestRule.loadDataSync(
mAwContents,
mContentsClient.getOnPageFinishedHelper(),
// Spaces are replaced with underscores to avoid consecutive spaces compression.
"<html>"
+ "<body /g, \"_\")'>"
+ "</body>"
+ "</html>",
"text/html",
false);
final String ua = mActivityTestRule.getTitleOnUiThread(mAwContents);
Matcher matcher = Pattern.compile("Android_[^;]+;_[^_]").matcher(ua);
Assert.assertTrue(matcher.find());
}
}