diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 14:53:24 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-31 14:53:24 +0000 |
commit | f97393357d252e94c8800cb42e2751896d38b5c2 (patch) | |
tree | 6f0c2533db9ce04f0f63dd08d746e6dcf5c12acf /android_webview | |
parent | ffd3eff06f253f6a96e79af6a5aad40d3f363059 (diff) | |
download | chromium_src-f97393357d252e94c8800cb42e2751896d38b5c2.zip chromium_src-f97393357d252e94c8800cb42e2751896d38b5c2.tar.gz chromium_src-f97393357d252e94c8800cb42e2751896d38b5c2.tar.bz2 |
[Android] Port simple ContentSettings tests to android_webview.
This CL depends on https://chromiumcodereview.appspot.com/10908014/
Review URL: https://chromiumcodereview.appspot.com/10919010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154435 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview')
2 files changed, 714 insertions, 0 deletions
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java b/android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java index 906204b..5ea8915 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AndroidWebViewTestBase.java @@ -177,4 +177,14 @@ public class AndroidWebViewTestBase } }); } + + protected ContentSettings getContentSettingsOnUiThread( + final ContentViewCore contentViewCore) throws Throwable { + return runTestOnUiThreadAndGetResult(new Callable<ContentSettings>() { + @Override + public ContentSettings call() throws Exception { + return contentViewCore.getContentSettings(); + } + }); + } } diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java new file mode 100644 index 0000000..82f6daf2 --- /dev/null +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java @@ -0,0 +1,704 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// 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 android.content.Context; +import android.test.suitebuilder.annotation.SmallTest; +import android.test.suitebuilder.annotation.Smoke; + +import org.chromium.base.test.Feature; +import org.chromium.base.test.UrlUtils; +import org.chromium.android_webview.AwContents; +import org.chromium.android_webview.AwContentsClient; +import org.chromium.content.browser.ContentSettings; +import org.chromium.content.browser.ContentViewCore; + +import java.util.concurrent.Callable; + +/** + * A test suite for ContentSettings class. The key objective is to verify that each + * settings applies either to each individual view or to all views of the + * application. + */ +public class AwSettingsTest extends AndroidWebViewTestBase { + private static final boolean ENABLED = true; + private static final boolean DISABLED = false; + + /** + * A helper class for testing a particular preference from ContentSettings. + * The generic type T is the type of the setting. Usually, to test an + * effect of the preference, JS code is executed that sets document's title. + * In this case, requiresJsEnabled constructor argument must be set to true. + */ + abstract class AwSettingsTestHelper<T> { + protected final ContentViewCore mContentViewCore; + protected final TestAwContentsClient mContentViewClient; + protected final ContentSettings mContentSettings; + + AwSettingsTestHelper(ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient, + boolean requiresJsEnabled) throws Throwable { + mContentViewCore = contentViewCore; + mContentViewClient = contentViewClient; + mContentSettings = getContentSettingsOnUiThread(mContentViewCore); + if (requiresJsEnabled) { + mContentSettings.setJavaScriptEnabled(true); + } + } + + void ensureSettingHasAlteredValue() throws Throwable { + ensureSettingHasValue(getAlteredValue()); + } + + void ensureSettingHasInitialValue() throws Throwable { + ensureSettingHasValue(getInitialValue()); + } + + void setAlteredSettingValue() throws Throwable { + setCurrentValue(getAlteredValue()); + } + + void setInitialSettingValue() throws Throwable { + setCurrentValue(getInitialValue()); + } + + protected abstract T getAlteredValue(); + + protected abstract T getInitialValue(); + + protected abstract T getCurrentValue(); + + protected abstract void setCurrentValue(T value); + + protected abstract void doEnsureSettingHasValue(T value) throws Throwable; + + protected String getTitleOnUiThread() throws Throwable { + return AwSettingsTest.this.getTitleOnUiThread(mContentViewCore); + } + + protected void loadDataSync(String data) throws Throwable { + AwSettingsTest.this.loadDataSync( + mContentViewCore, + mContentViewClient.getOnPageFinishedHelper(), + data, + "text/html", + false); + } + + private void ensureSettingHasValue(T value) throws Throwable { + assertEquals(value, getCurrentValue()); + doEnsureSettingHasValue(value); + } + } + + class AwSettingsJavaScriptTestHelper extends AwSettingsTestHelper<Boolean> { + private static final String JS_ENABLED_STRING = "JS Enabled"; + private static final String JS_DISABLED_STRING = "JS Disabled"; + + AwSettingsJavaScriptTestHelper(ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, false); + } + + @Override + protected Boolean getAlteredValue() { + return ENABLED; + } + + @Override + protected Boolean getInitialValue() { + return DISABLED; + } + + @Override + protected Boolean getCurrentValue() { + return mContentSettings.getJavaScriptEnabled(); + } + + @Override + protected void setCurrentValue(Boolean value) { + mContentSettings.setJavaScriptEnabled(value); + } + + @Override + protected void doEnsureSettingHasValue(Boolean value) throws Throwable { + loadDataSync(getData()); + assertEquals( + value == ENABLED ? JS_ENABLED_STRING : JS_DISABLED_STRING, + getTitleOnUiThread()); + } + + private String getData() { + return "<html><head><title>" + JS_DISABLED_STRING + "</title>" + + "</head><body onload=\"document.title='" + JS_ENABLED_STRING + + "';\"></body></html>"; + } + } + + class AwSettingsPluginsTestHelper extends AwSettingsTestHelper<Boolean> { + private static final String PLUGINS_ENABLED_STRING = "Embed"; + private static final String PLUGINS_DISABLED_STRING = "NoEmbed"; + + AwSettingsPluginsTestHelper(ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + } + + @Override + protected Boolean getAlteredValue() { + return ENABLED; + } + + @Override + protected Boolean getInitialValue() { + return DISABLED; + } + + @Override + protected Boolean getCurrentValue() { + return mContentSettings.getPluginsEnabled(); + } + + @Override + protected void setCurrentValue(Boolean value) { + mContentSettings.setPluginsEnabled(value); + } + + @Override + protected void doEnsureSettingHasValue(Boolean value) throws Throwable { + loadDataSync(getData()); + assertEquals( + value == ENABLED ? PLUGINS_ENABLED_STRING : PLUGINS_DISABLED_STRING, + getTitleOnUiThread()); + } + + private String getData() { + return "<html><body onload=\"document.title = document.body.innerText;\">" + + "<noembed>No</noembed><span>Embed</span></body></html>"; + } + } + + class AwSettingsStandardFontFamilyTestHelper extends AwSettingsTestHelper<String> { + AwSettingsStandardFontFamilyTestHelper( + ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + } + + @Override + protected String getAlteredValue() { + return "cursive"; + } + + @Override + protected String getInitialValue() { + return "sans-serif"; + } + + @Override + protected String getCurrentValue() { + return mContentSettings.getStandardFontFamily(); + } + + @Override + protected void setCurrentValue(String value) { + mContentSettings.setStandardFontFamily(value); + } + + @Override + protected void doEnsureSettingHasValue(String value) throws Throwable { + loadDataSync(getData()); + assertEquals(value, getTitleOnUiThread()); + } + + private String getData() { + return "<html><body onload=\"document.title = " + + "getComputedStyle(document.body).getPropertyValue('font-family');\">" + + "</body></html>"; + } + } + + class AwSettingsDefaultFontSizeTestHelper extends AwSettingsTestHelper<Integer> { + AwSettingsDefaultFontSizeTestHelper( + ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + } + + @Override + protected Integer getAlteredValue() { + return 42; + } + + @Override + protected Integer getInitialValue() { + return 16; + } + + @Override + protected Integer getCurrentValue() { + return mContentSettings.getDefaultFontSize(); + } + + @Override + protected void setCurrentValue(Integer value) { + mContentSettings.setDefaultFontSize(value); + } + + @Override + protected void doEnsureSettingHasValue(Integer value) throws Throwable { + loadDataSync(getData()); + assertEquals(value.toString() + "px", getTitleOnUiThread()); + } + + private String getData() { + return "<html><body onload=\"document.title = " + + "getComputedStyle(document.body).getPropertyValue('font-size');\">" + + "</body></html>"; + } + } + + class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<String> { + AwSettingsDefaultTextEncodingTestHelper( + ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + } + + @Override + protected String getAlteredValue() { + return "utf-8"; + } + + @Override + protected String getInitialValue() { + return "Latin-1"; + } + + @Override + protected String getCurrentValue() { + return mContentSettings.getDefaultTextEncodingName(); + } + + @Override + protected void setCurrentValue(String value) { + mContentSettings.setDefaultTextEncodingName(value); + } + + @Override + protected void doEnsureSettingHasValue(String value) throws Throwable { + loadDataSync(getData()); + assertEquals(value, getTitleOnUiThread()); + } + + private String getData() { + return "<html><body onload='document.title=document.defaultCharset'></body></html>"; + } + } + + class AwSettingsUserAgentTestHelper extends AwSettingsTestHelper<String> { + private final String mDefaultUa; + private static final String DEFAULT_UA = ""; + private static final String CUSTOM_UA = "ChromeViewTest"; + + AwSettingsUserAgentTestHelper( + ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + mDefaultUa = mContentSettings.getUserAgentString(); + } + + @Override + protected String getAlteredValue() { + return CUSTOM_UA; + } + + @Override + protected String getInitialValue() { + return DEFAULT_UA; + } + + @Override + protected String getCurrentValue() { + // The test framework expects that getXXX() == Z after setXXX(Z). + // But setUserAgentString("" / null) resets the UA string to default, + // and getUserAgentString returns the default UA string afterwards. + // To align with the framework, we return an empty string instead of + // the default UA. + String currentUa = mContentSettings.getUserAgentString(); + return mDefaultUa.equals(currentUa) ? DEFAULT_UA : currentUa; + } + + @Override + protected void setCurrentValue(String value) { + mContentSettings.setUserAgentString(value); + } + + @Override + protected void doEnsureSettingHasValue(String value) throws Throwable { + loadDataSync(getData()); + assertEquals( + value == DEFAULT_UA ? mDefaultUa : value, + getTitleOnUiThread()); + } + + private String getData() { + return "<html>" + + "<body onload='document.writeln(document.title=navigator.userAgent)'></body>" + + "</html>"; + } + } + + class AwSettingsDomStorageEnabledTestHelper extends AwSettingsTestHelper<Boolean> { + private static final String NO_LOCAL_STORAGE = "No localStorage"; + private static final String HAS_LOCAL_STORAGE = "Has localStorage"; + + AwSettingsDomStorageEnabledTestHelper( + ContentViewCore contentViewCore, + TestAwContentsClient contentViewClient) throws Throwable { + super(contentViewCore, contentViewClient, true); + } + + @Override + protected Boolean getAlteredValue() { + return ENABLED; + } + + @Override + protected Boolean getInitialValue() { + return DISABLED; + } + + @Override + protected Boolean getCurrentValue() { + return mContentSettings.getDomStorageEnabled(); + } + + @Override + protected void setCurrentValue(Boolean value) { + mContentSettings.setDomStorageEnabled(value); + } + + @Override + protected void doEnsureSettingHasValue(Boolean value) throws Throwable { + // It is not permitted to access localStorage from data URLs in WebKit, + // that is why a standalone page must be used. + AwSettingsTest.this.loadUrlSync( + mContentViewCore, + mContentViewClient.getOnPageFinishedHelper(), + UrlUtils.getTestFileUrl("webview/localStorage.html")); + assertEquals( + value == ENABLED ? HAS_LOCAL_STORAGE : NO_LOCAL_STORAGE, + getTitleOnUiThread()); + } + } + + // The test verifies that JavaScript is disabled upon WebView + // creation without accessing ContentSettings. If the test passes, + // it means that WebView-specific web preferences configuration + // is applied on WebView creation. JS state is used, because it is + // enabled by default in Chrome, but must be disabled by default + // in WebView. + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testJavaScriptDisabledByDefault() throws Throwable { + final String JS_ENABLED_STRING = "JS has run"; + final String JS_DISABLED_STRING = "JS has not run"; + final String TEST_PAGE_HTML = + "<html><head><title>" + JS_DISABLED_STRING + "</title>" + + "</head><body onload=\"document.title='" + JS_ENABLED_STRING + + "';\"></body></html>"; + final TestAwContentsClient contentClient = new TestAwContentsClient(); + final ContentViewCore contentView = + createAwTestContainerViewOnMainSync(false, contentClient).getContentViewCore(); + loadDataSync( + contentView, + contentClient.getOnPageFinishedHelper(), + TEST_PAGE_HTML, + "text/html", + false); + assertEquals(JS_DISABLED_STRING, getTitleOnUiThread(contentView)); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testJavaScriptEnabledNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient0()), + new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testJavaScriptEnabledIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient0()), + new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testJavaScriptEnabledBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient0()), + new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testPluginsEnabledNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()), + new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testPluginsEnabledIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()), + new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testPluginsEnabledBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()), + new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testStandardFontFamilyNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.getClient0()), + new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testStandardFontFamilyIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.getClient0()), + new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testStandardFontFamilyBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.getClient0()), + new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultFontSizeNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultFontSizeIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultFontSizeBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultTextEncodingNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultTextEncodingIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDefaultTextEncodingBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testUserAgentNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsUserAgentTestHelper(views.getView0(), views.getClient0()), + new AwSettingsUserAgentTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testUserAgentIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsUserAgentTestHelper(views.getView0(), views.getClient0()), + new AwSettingsUserAgentTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testUserAgentBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsUserAgentTestHelper(views.getView0(), views.getClient0()), + new AwSettingsUserAgentTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDomStorageEnabledNormal() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); + runPerViewSettingsTest( + new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDomStorageEnabledIncognito() throws Throwable { + ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.getClient1())); + } + + @SmallTest + @Feature({"Android-WebView", "Preferences"}) + public void testDomStorageEnabledBoth() throws Throwable { + ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); + runPerViewSettingsTest( + new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.getClient0()), + new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.getClient1())); + } + + class ViewPair { + private final ContentViewCore view0; + private final TestAwContentsClient client0; + private final ContentViewCore view1; + private final TestAwContentsClient client1; + + ViewPair(ContentViewCore view0, TestAwContentsClient client0, + ContentViewCore view1, TestAwContentsClient client1) { + this.view0 = view0; + this.client0 = client0; + this.view1 = view1; + this.client1 = client1; + } + + ContentViewCore getView0() { + return view0; + } + + TestAwContentsClient getClient0() { + return client0; + } + + ContentViewCore getView1() { + return view1; + } + + TestAwContentsClient getClient1() { + return client1; + } + } + + /** + * Runs the tests to check if a setting works properly in the case of + * multiple WebViews. + * + * @param helper0 Test helper for the first ContentView + * @param helper1 Test helper for the second ContentView + * @throws Throwable + */ + private void runPerViewSettingsTest(AwSettingsTestHelper helper0, + AwSettingsTestHelper helper1) throws Throwable { + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasInitialValue(); + + helper1.setAlteredSettingValue(); + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasAlteredValue(); + + helper1.setInitialSettingValue(); + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasInitialValue(); + + helper0.setAlteredSettingValue(); + helper0.ensureSettingHasAlteredValue(); + helper1.ensureSettingHasInitialValue(); + + helper0.setInitialSettingValue(); + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasInitialValue(); + + helper0.setAlteredSettingValue(); + helper0.ensureSettingHasAlteredValue(); + helper1.ensureSettingHasInitialValue(); + + helper1.setAlteredSettingValue(); + helper0.ensureSettingHasAlteredValue(); + helper1.ensureSettingHasAlteredValue(); + + helper0.setInitialSettingValue(); + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasAlteredValue(); + + helper1.setInitialSettingValue(); + helper0.ensureSettingHasInitialValue(); + helper1.ensureSettingHasInitialValue(); + } + + private ViewPair createViews( + boolean firstIsIncognito, + boolean secondIsIncognito) throws Throwable { + TestAwContentsClient client0 = new TestAwContentsClient(); + TestAwContentsClient client1 = new TestAwContentsClient(); + return new ViewPair( + createAwTestContainerViewOnMainSync( + firstIsIncognito, client0).getContentViewCore(), + client0, + createAwTestContainerViewOnMainSync( + secondIsIncognito, client1).getContentViewCore(), + client1); + } +} |