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..aa42769c5ac7cdc0d907a37172b4a513bc59bc31 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 |
@@ -123,6 +123,16 @@ public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro |
return (Preferences) getInstrumentation().startActivitySync(intent); |
} |
+ private Preferences startSingleWebsitePreferences() { |
+ Bundle fragmentArgs = SingleWebsitePreferences.createFragmentArgsForSite( |
+ TestHttpServerClient.getUrl("")); |
newt (away)
2015/12/15 00:10:01
Why not use a real page here? Seems like TestHttpS
svaldez
2015/12/15 21:45:57
Done.
|
+ 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,23 @@ public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro |
preferenceActivity.finish(); |
} |
+ private void setEnableKeygen(final boolean enabled) { |
+ final Preferences preferenceActivity = startSingleWebsitePreferences(); |
+ |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ SingleWebsitePreferences websitePreferences = |
+ (SingleWebsitePreferences) preferenceActivity.getFragmentForTest(); |
+ ChromeSwitchPreference keygen = (ChromeSwitchPreference) |
newt (away)
2015/12/15 00:10:01
Doesn't this cast fail? I thought PREF_KEYGEN_PERM
svaldez
2015/12/15 21:45:57
Done.
|
+ websitePreferences.findPreference( |
+ SingleWebsitePreferences.PREF_KEYGEN_PERMISSION); |
+ websitePreferences.onPreferenceChange(keygen, (enabled ? "ALLOW" : "BLOCK")); |
newt (away)
2015/12/15 00:10:01
I'd simulate clicking the switch, rather than call
svaldez
2015/12/15 21:45:57
Done.
|
+ } |
+ }); |
+ preferenceActivity.finish(); |
+ } |
+ |
/** |
* Tests that disabling cookies turns off the third-party cookie toggle. |
* @throws Exception |
@@ -351,6 +378,32 @@ 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 { |
newt (away)
2015/12/15 00:10:01
Alternatively, you could just test the Preferences
svaldez
2015/12/15 21:45:57
Done.
|
+ setEnableKeygen(false); |
+ |
+ loadUrl(TestHttpServerClient.getUrl("chrome/test/data/android/keygen.html")); |
+ assertEquals("false", runJavaScriptCodeInCurrentTab("didKeygen();")); |
+ } |
+ |
+ /** |
+ * Sets Allow Keygen Enabled to be true and make sure it is set correctly. |
+ * @throws Exception |
+ */ |
+ @SmallTest |
+ @Feature({"Preferences"}) |
+ public void testKeygenNotBlocked() throws Exception { |
+ setEnableKeygen(true); |
+ |
+ loadUrl(TestHttpServerClient.getUrl("chrome/test/data/android/keygen.html")); |
+ assertEquals("true", runJavaScriptCodeInCurrentTab("didKeygen();")); |
+ } |
+ |
+ /** |
* Sets Allow Camera Enabled to be false and make sure it is set correctly. |
* @throws Exception |
*/ |