| Index: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java
|
| index 047dd81fa5db917c79b1d60339ecae0f64229a64..82d93e6522fe004ecfbc5aa825ed9a3b631dee28 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java
|
| @@ -16,6 +16,7 @@ import org.chromium.chrome.browser.ChromeApplication;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.infobar.InfoBarContainer;
|
| import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
|
| +import org.chromium.chrome.browser.preferences.ChromeBaseListPreference;
|
| import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
|
| import org.chromium.chrome.browser.preferences.LocationSettings;
|
| import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| @@ -123,6 +124,15 @@ public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro
|
| return (Preferences) getInstrumentation().startActivitySync(intent);
|
| }
|
|
|
| + private Preferences startSingleWebsitePreferences(Website site) {
|
| + Bundle fragmentArgs = new Bundle();
|
| + fragmentArgs.putSerializable(SingleWebsitePreferences.EXTRA_SITE, site);
|
| + Intent intent = PreferencesLauncher.createIntentForSettingsPage(
|
| + getInstrumentation().getTargetContext(), SingleWebsitePreferences.class.getName());
|
| + intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs);
|
| + return (Preferences) getInstrumentation().startActivitySync(intent);
|
| + }
|
| +
|
| private void setCookiesEnabled(final Preferences preferenceActivity, final boolean enabled) {
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| @@ -254,6 +264,27 @@ public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro
|
| preferenceActivity.finish();
|
| }
|
|
|
| + private void setEnableKeygen(final String origin, final boolean enabled) {
|
| + Website website = new Website(WebsiteAddress.create(origin));
|
| + website.setKeygenInfo(new KeygenInfo(origin, origin, false));
|
| + final Preferences preferenceActivity = startSingleWebsitePreferences(website);
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + SingleWebsitePreferences websitePreferences =
|
| + (SingleWebsitePreferences) preferenceActivity.getFragmentForTest();
|
| + ChromeBaseListPreference keygen =
|
| + (ChromeBaseListPreference) websitePreferences.findPreference(
|
| + SingleWebsitePreferences.PREF_KEYGEN_PERMISSION);
|
| + websitePreferences.onPreferenceChange(keygen, enabled
|
| + ? ContentSetting.ALLOW.toString()
|
| + : ContentSetting.BLOCK.toString());
|
| + }
|
| + });
|
| + preferenceActivity.finish();
|
| + }
|
| +
|
| /**
|
| * Tests that disabling cookies turns off the third-party cookie toggle.
|
| * @throws Exception
|
| @@ -351,6 +382,46 @@ public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro
|
| }
|
|
|
| /**
|
| + * Sets Allow Keygen Enabled to be false and make sure it is set correctly.
|
| + * @throws Exception
|
| + */
|
| + @SmallTest
|
| + @Feature({"Preferences"})
|
| + public void testKeygenBlocked() throws Exception {
|
| + final String origin = "http://example.com/";
|
| + setEnableKeygen(origin, false);
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + Website site = new Website(WebsiteAddress.create(origin));
|
| + site.setKeygenInfo(new KeygenInfo(origin, origin, false));
|
| + assertEquals(site.getKeygenPermission(), ContentSetting.BLOCK);
|
| + }
|
| + });
|
| + }
|
| +
|
| + /**
|
| + * Sets Allow Keygen Enabled to be true and make sure it is set correctly.
|
| + * @throws Exception
|
| + */
|
| + @SmallTest
|
| + @Feature({"Preferences"})
|
| + public void testKeygenNotBlocked() throws Exception {
|
| + final String origin = "http://example.com/";
|
| + setEnableKeygen(origin, true);
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + Website site = new Website(WebsiteAddress.create(origin));
|
| + site.setKeygenInfo(new KeygenInfo(origin, origin, false));
|
| + assertEquals(site.getKeygenPermission(), ContentSetting.ALLOW);
|
| + }
|
| + });
|
| + }
|
| +
|
| + /**
|
| * Sets Allow Camera Enabled to be false and make sure it is set correctly.
|
| * @throws Exception
|
| */
|
|
|