OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.preferences.website; | 5 package org.chromium.chrome.browser.preferences.website; |
6 | 6 |
7 import android.content.Intent; | 7 import android.content.Intent; |
8 import android.os.Bundle; | 8 import android.os.Bundle; |
9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
10 | 10 |
11 import org.chromium.base.ThreadUtils; | 11 import org.chromium.base.ThreadUtils; |
12 import org.chromium.base.test.util.CommandLineFlags; | 12 import org.chromium.base.test.util.CommandLineFlags; |
13 import org.chromium.base.test.util.Feature; | 13 import org.chromium.base.test.util.Feature; |
14 import org.chromium.chrome.browser.ChromeActivity; | 14 import org.chromium.chrome.browser.ChromeActivity; |
15 import org.chromium.chrome.browser.ChromeApplication; | 15 import org.chromium.chrome.browser.ChromeApplication; |
16 import org.chromium.chrome.browser.ChromeSwitches; | 16 import org.chromium.chrome.browser.ChromeSwitches; |
17 import org.chromium.chrome.browser.infobar.InfoBarContainer; | 17 import org.chromium.chrome.browser.infobar.InfoBarContainer; |
18 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; | 18 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; |
| 19 import org.chromium.chrome.browser.preferences.ChromeBaseListPreference; |
19 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; | 20 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; |
20 import org.chromium.chrome.browser.preferences.LocationSettings; | 21 import org.chromium.chrome.browser.preferences.LocationSettings; |
21 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 22 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
22 import org.chromium.chrome.browser.preferences.Preferences; | 23 import org.chromium.chrome.browser.preferences.Preferences; |
23 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 24 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
24 import org.chromium.chrome.browser.preferences.PreferencesTest; | 25 import org.chromium.chrome.browser.preferences.PreferencesTest; |
25 import org.chromium.chrome.browser.util.FeatureUtilities; | 26 import org.chromium.chrome.browser.util.FeatureUtilities; |
26 import org.chromium.chrome.test.ChromeActivityTestCaseBase; | 27 import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
27 import org.chromium.chrome.test.util.ChromeTabUtils; | 28 import org.chromium.chrome.test.util.ChromeTabUtils; |
28 import org.chromium.chrome.test.util.InfoBarTestAnimationListener; | 29 import org.chromium.chrome.test.util.InfoBarTestAnimationListener; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 | 117 |
117 private Preferences startSiteSettingsCategory(String category) { | 118 private Preferences startSiteSettingsCategory(String category) { |
118 Bundle fragmentArgs = new Bundle(); | 119 Bundle fragmentArgs = new Bundle(); |
119 fragmentArgs.putString(SingleCategoryPreferences.EXTRA_CATEGORY, categor
y); | 120 fragmentArgs.putString(SingleCategoryPreferences.EXTRA_CATEGORY, categor
y); |
120 Intent intent = PreferencesLauncher.createIntentForSettingsPage( | 121 Intent intent = PreferencesLauncher.createIntentForSettingsPage( |
121 getInstrumentation().getTargetContext(), SingleCategoryPreferenc
es.class.getName()); | 122 getInstrumentation().getTargetContext(), SingleCategoryPreferenc
es.class.getName()); |
122 intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs)
; | 123 intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs)
; |
123 return (Preferences) getInstrumentation().startActivitySync(intent); | 124 return (Preferences) getInstrumentation().startActivitySync(intent); |
124 } | 125 } |
125 | 126 |
| 127 private Preferences startSingleWebsitePreferences(Website site) { |
| 128 Bundle fragmentArgs = new Bundle(); |
| 129 fragmentArgs.putSerializable(SingleWebsitePreferences.EXTRA_SITE, site); |
| 130 Intent intent = PreferencesLauncher.createIntentForSettingsPage( |
| 131 getInstrumentation().getTargetContext(), SingleWebsitePreference
s.class.getName()); |
| 132 intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs)
; |
| 133 return (Preferences) getInstrumentation().startActivitySync(intent); |
| 134 } |
| 135 |
126 private void setCookiesEnabled(final Preferences preferenceActivity, final b
oolean enabled) { | 136 private void setCookiesEnabled(final Preferences preferenceActivity, final b
oolean enabled) { |
127 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 137 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
128 @Override | 138 @Override |
129 public void run() { | 139 public void run() { |
130 final SingleCategoryPreferences websitePreferences = | 140 final SingleCategoryPreferences websitePreferences = |
131 (SingleCategoryPreferences) preferenceActivity.getFragme
ntForTest(); | 141 (SingleCategoryPreferences) preferenceActivity.getFragme
ntForTest(); |
132 final ChromeSwitchPreference cookies = | 142 final ChromeSwitchPreference cookies = |
133 (ChromeSwitchPreference) websitePreferences.findPreferen
ce( | 143 (ChromeSwitchPreference) websitePreferences.findPreferen
ce( |
134 SingleCategoryPreferences.READ_WRITE_TOGGLE_KEY)
; | 144 SingleCategoryPreferences.READ_WRITE_TOGGLE_KEY)
; |
135 final ChromeBaseCheckBoxPreference thirdPartyCookies = | 145 final ChromeBaseCheckBoxPreference thirdPartyCookies = |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 PreferencesTest.clickPreference(languagePreferences, checkbo
x); | 257 PreferencesTest.clickPreference(languagePreferences, checkbo
x); |
248 } | 258 } |
249 assertEquals("Auto detect encoding should be " + (enabled ? "ena
bled" : "disabled"), | 259 assertEquals("Auto detect encoding should be " + (enabled ? "ena
bled" : "disabled"), |
250 enabled, PrefServiceBridge.getInstance().isAutoDetectEnc
odingEnabled()); | 260 enabled, PrefServiceBridge.getInstance().isAutoDetectEnc
odingEnabled()); |
251 } | 261 } |
252 }); | 262 }); |
253 | 263 |
254 preferenceActivity.finish(); | 264 preferenceActivity.finish(); |
255 } | 265 } |
256 | 266 |
| 267 private void setEnableKeygen(final String origin, final boolean enabled) { |
| 268 Website website = new Website(WebsiteAddress.create(origin)); |
| 269 website.setKeygenInfo(new KeygenInfo(origin, origin, false)); |
| 270 final Preferences preferenceActivity = startSingleWebsitePreferences(web
site); |
| 271 |
| 272 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 273 @Override |
| 274 public void run() { |
| 275 SingleWebsitePreferences websitePreferences = |
| 276 (SingleWebsitePreferences) preferenceActivity.getFragmen
tForTest(); |
| 277 ChromeBaseListPreference keygen = |
| 278 (ChromeBaseListPreference) websitePreferences.findPrefer
ence( |
| 279 SingleWebsitePreferences.PREF_KEYGEN_PERMISSION)
; |
| 280 websitePreferences.onPreferenceChange(keygen, enabled |
| 281 ? ContentSetting.ALLOW.toString() |
| 282 : ContentSetting.BLOCK.toString()); |
| 283 } |
| 284 }); |
| 285 preferenceActivity.finish(); |
| 286 } |
| 287 |
257 /** | 288 /** |
258 * Tests that disabling cookies turns off the third-party cookie toggle. | 289 * Tests that disabling cookies turns off the third-party cookie toggle. |
259 * @throws Exception | 290 * @throws Exception |
260 */ | 291 */ |
261 @SmallTest | 292 @SmallTest |
262 @Feature({"Preferences"}) | 293 @Feature({"Preferences"}) |
263 public void testThirdPartyCookieToggleGetsDisabled() throws Exception { | 294 public void testThirdPartyCookieToggleGetsDisabled() throws Exception { |
264 Preferences preferenceActivity = | 295 Preferences preferenceActivity = |
265 startSiteSettingsCategory(SiteSettingsPreferences.COOKIES_KEY); | 296 startSiteSettingsCategory(SiteSettingsPreferences.COOKIES_KEY); |
266 setCookiesEnabled(preferenceActivity, true); | 297 setCookiesEnabled(preferenceActivity, true); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 setEnablePopups(true); | 375 setEnablePopups(true); |
345 | 376 |
346 // Test that a popup opens. | 377 // Test that a popup opens. |
347 loadUrl(TestHttpServerClient.getUrl("chrome/test/data/android/popup.html
")); | 378 loadUrl(TestHttpServerClient.getUrl("chrome/test/data/android/popup.html
")); |
348 getInstrumentation().waitForIdleSync(); | 379 getInstrumentation().waitForIdleSync(); |
349 | 380 |
350 assertEquals(2, getTabCount()); | 381 assertEquals(2, getTabCount()); |
351 } | 382 } |
352 | 383 |
353 /** | 384 /** |
| 385 * Sets Allow Keygen Enabled to be false and make sure it is set correctly. |
| 386 * @throws Exception |
| 387 */ |
| 388 @SmallTest |
| 389 @Feature({"Preferences"}) |
| 390 public void testKeygenBlocked() throws Exception { |
| 391 final String origin = "http://example.com/"; |
| 392 setEnableKeygen(origin, false); |
| 393 |
| 394 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 395 @Override |
| 396 public void run() { |
| 397 Website site = new Website(WebsiteAddress.create(origin)); |
| 398 site.setKeygenInfo(new KeygenInfo(origin, origin, false)); |
| 399 assertEquals(site.getKeygenPermission(), ContentSetting.BLOCK); |
| 400 } |
| 401 }); |
| 402 } |
| 403 |
| 404 /** |
| 405 * Sets Allow Keygen Enabled to be true and make sure it is set correctly. |
| 406 * @throws Exception |
| 407 */ |
| 408 @SmallTest |
| 409 @Feature({"Preferences"}) |
| 410 public void testKeygenNotBlocked() throws Exception { |
| 411 final String origin = "http://example.com/"; |
| 412 setEnableKeygen(origin, true); |
| 413 |
| 414 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 415 @Override |
| 416 public void run() { |
| 417 Website site = new Website(WebsiteAddress.create(origin)); |
| 418 site.setKeygenInfo(new KeygenInfo(origin, origin, false)); |
| 419 assertEquals(site.getKeygenPermission(), ContentSetting.ALLOW); |
| 420 } |
| 421 }); |
| 422 } |
| 423 |
| 424 /** |
354 * Sets Allow Camera Enabled to be false and make sure it is set correctly. | 425 * Sets Allow Camera Enabled to be false and make sure it is set correctly. |
355 * @throws Exception | 426 * @throws Exception |
356 */ | 427 */ |
357 @SmallTest | 428 @SmallTest |
358 @Feature({"Preferences"}) | 429 @Feature({"Preferences"}) |
359 @CommandLineFlags.Add(ChromeSwitches.USE_FAKE_DEVICE_FOR_MEDIA_STREAM) | 430 @CommandLineFlags.Add(ChromeSwitches.USE_FAKE_DEVICE_FOR_MEDIA_STREAM) |
360 public void testCameraBlocked() throws Exception { | 431 public void testCameraBlocked() throws Exception { |
361 setEnableCamera(false); | 432 setEnableCamera(false); |
362 | 433 |
363 // Test that the camera permission doesn't get requested. | 434 // Test that the camera permission doesn't get requested. |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 public Integer call() throws Exception { | 531 public Integer call() throws Exception { |
461 if (FeatureUtilities.isDocumentMode(getInstrumentation().getTarg
etContext())) { | 532 if (FeatureUtilities.isDocumentMode(getInstrumentation().getTarg
etContext())) { |
462 return ChromeApplication.getDocumentTabModelSelector().getTo
talTabCount(); | 533 return ChromeApplication.getDocumentTabModelSelector().getTo
talTabCount(); |
463 } else { | 534 } else { |
464 return getActivity().getTabModelSelector().getTotalTabCount(
); | 535 return getActivity().getTabModelSelector().getTotalTabCount(
); |
465 } | 536 } |
466 } | 537 } |
467 }); | 538 }); |
468 } | 539 } |
469 } | 540 } |
OLD | NEW |