Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java

Issue 1432573002: Adding <keygen> Content Setting (Android UI) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@keygen_ui
Patch Set: Trying tested code. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
*/

Powered by Google App Engine
This is Rietveld 408576698