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.os.Environment; | 9 import android.os.Environment; |
10 import android.test.suitebuilder.annotation.SmallTest; | 10 import android.test.suitebuilder.annotation.SmallTest; |
11 | 11 |
12 import org.chromium.base.ThreadUtils; | 12 import org.chromium.base.ThreadUtils; |
13 import org.chromium.base.test.util.CommandLineFlags; | 13 import org.chromium.base.test.util.CommandLineFlags; |
14 import org.chromium.base.test.util.Feature; | 14 import org.chromium.base.test.util.Feature; |
15 import org.chromium.chrome.browser.ChromeActivity; | 15 import org.chromium.chrome.browser.ChromeActivity; |
16 import org.chromium.chrome.browser.ChromeApplication; | 16 import org.chromium.chrome.browser.ChromeApplication; |
17 import org.chromium.chrome.browser.ChromeSwitches; | 17 import org.chromium.chrome.browser.ChromeSwitches; |
18 import org.chromium.chrome.browser.infobar.InfoBarContainer; | 18 import org.chromium.chrome.browser.infobar.InfoBarContainer; |
19 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; | 19 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; |
20 import org.chromium.chrome.browser.preferences.ChromeBaseListPreference; | 20 import org.chromium.chrome.browser.preferences.ChromeBaseListPreference; |
21 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; | 21 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; |
22 import org.chromium.chrome.browser.preferences.LocationSettings; | 22 import org.chromium.chrome.browser.preferences.LocationSettings; |
23 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 23 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
24 import org.chromium.chrome.browser.preferences.Preferences; | 24 import org.chromium.chrome.browser.preferences.Preferences; |
25 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 25 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
26 import org.chromium.chrome.browser.preferences.PreferencesTest; | |
27 import org.chromium.chrome.browser.util.FeatureUtilities; | 26 import org.chromium.chrome.browser.util.FeatureUtilities; |
28 import org.chromium.chrome.test.ChromeActivityTestCaseBase; | 27 import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
29 import org.chromium.chrome.test.util.ChromeTabUtils; | |
30 import org.chromium.chrome.test.util.InfoBarTestAnimationListener; | 28 import org.chromium.chrome.test.util.InfoBarTestAnimationListener; |
31 import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil; | 29 import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil; |
32 import org.chromium.net.test.EmbeddedTestServer; | 30 import org.chromium.net.test.EmbeddedTestServer; |
33 | 31 |
34 import java.util.concurrent.Callable; | 32 import java.util.concurrent.Callable; |
35 | 33 |
36 /** | 34 /** |
37 * Tests for everything under Settings > Site Settings. | 35 * Tests for everything under Settings > Site Settings. |
38 */ | 36 */ |
39 public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro
meActivity> { | 37 public class SiteSettingsPreferencesTest extends ChromeActivityTestCaseBase<Chro
meActivity> { |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 websitePreferences.findPreference( | 255 websitePreferences.findPreference( |
258 SingleCategoryPreferences.READ_WRITE_TOGGLE_KEY)
; | 256 SingleCategoryPreferences.READ_WRITE_TOGGLE_KEY)
; |
259 websitePreferences.onPreferenceChange(toggle, enabled); | 257 websitePreferences.onPreferenceChange(toggle, enabled); |
260 assertEquals("Mic should be " + (enabled ? "allowed" : "blocked"
), | 258 assertEquals("Mic should be " + (enabled ? "allowed" : "blocked"
), |
261 enabled, PrefServiceBridge.getInstance().isMicEnabled())
; | 259 enabled, PrefServiceBridge.getInstance().isMicEnabled())
; |
262 } | 260 } |
263 }); | 261 }); |
264 preferenceActivity.finish(); | 262 preferenceActivity.finish(); |
265 } | 263 } |
266 | 264 |
267 private void setAutoDetectEncoding(final boolean enabled) { | |
268 Intent intent = PreferencesLauncher.createIntentForSettingsPage( | |
269 getInstrumentation().getTargetContext(), LanguagePreferences.cla
ss.getName()); | |
270 final Preferences preferenceActivity = | |
271 (Preferences) getInstrumentation().startActivitySync(intent); | |
272 | |
273 ThreadUtils.runOnUiThread(new Runnable() { | |
274 @Override | |
275 public void run() { | |
276 LanguagePreferences languagePreferences = | |
277 (LanguagePreferences) preferenceActivity.getFragmentForT
est(); | |
278 ChromeBaseCheckBoxPreference checkbox = (ChromeBaseCheckBoxPrefe
rence) | |
279 languagePreferences.findPreference( | |
280 LanguagePreferences.PREF_AUTO_DETECT_CHECKBOX); | |
281 if (checkbox.isChecked() != enabled) { | |
282 PreferencesTest.clickPreference(languagePreferences, checkbo
x); | |
283 } | |
284 assertEquals("Auto detect encoding should be " + (enabled ? "ena
bled" : "disabled"), | |
285 enabled, PrefServiceBridge.getInstance().isAutoDetectEnc
odingEnabled()); | |
286 } | |
287 }); | |
288 | |
289 preferenceActivity.finish(); | |
290 } | |
291 | |
292 private void setEnableKeygen(final String origin, final boolean enabled) { | 265 private void setEnableKeygen(final String origin, final boolean enabled) { |
293 Website website = new Website(WebsiteAddress.create(origin)); | 266 Website website = new Website(WebsiteAddress.create(origin)); |
294 website.setKeygenInfo(new KeygenInfo(origin, origin, false)); | 267 website.setKeygenInfo(new KeygenInfo(origin, origin, false)); |
295 final Preferences preferenceActivity = startSingleWebsitePreferences(web
site); | 268 final Preferences preferenceActivity = startSingleWebsitePreferences(web
site); |
296 | 269 |
297 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 270 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
298 @Override | 271 @Override |
299 public void run() { | 272 public void run() { |
300 SingleWebsitePreferences websitePreferences = | 273 SingleWebsitePreferences websitePreferences = |
301 (SingleWebsitePreferences) preferenceActivity.getFragmen
tForTest(); | 274 (SingleWebsitePreferences) preferenceActivity.getFragmen
tForTest(); |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 | 572 |
600 // Launch a page that uses the microphone and make sure an infobar shows
up. | 573 // Launch a page that uses the microphone and make sure an infobar shows
up. |
601 loadUrl(mTestServer.getURL("/content/test/data/media/getusermedia.html")
); | 574 loadUrl(mTestServer.getURL("/content/test/data/media/getusermedia.html")
); |
602 runJavaScriptCodeInCurrentTab("getUserMediaAndStop({video: false, audio:
true});"); | 575 runJavaScriptCodeInCurrentTab("getUserMediaAndStop({video: false, audio:
true});"); |
603 | 576 |
604 assertTrue("InfoBar not added.", listener.addInfoBarAnimationFinished())
; | 577 assertTrue("InfoBar not added.", listener.addInfoBarAnimationFinished())
; |
605 assertEquals("Wrong infobar count", 1, getInfoBars().size()); | 578 assertEquals("Wrong infobar count", 1, getInfoBars().size()); |
606 } | 579 } |
607 | 580 |
608 /** | 581 /** |
609 * Toggles auto detect encoding, makes sure it is set correctly, and makes s
ure the page is | |
610 * encoded correctly. | |
611 */ | |
612 @SmallTest | |
613 @Feature({"Preferences"}) | |
614 public void testToggleAutoDetectEncoding() throws Exception { | |
615 String testUrl = mTestServer.getURL( | |
616 "/chrome/test/data/encoding_tests/auto_detect/" | |
617 + "Big5_with_no_encoding_specified.html"); | |
618 | |
619 setAutoDetectEncoding(false); | |
620 loadUrl(testUrl); | |
621 assertEquals("Wrong page encoding while auto detect encoding disabled",
"windows-1252", | |
622 getActivity().getCurrentContentViewCore().getWebContents().getEn
coding()); | |
623 | |
624 setAutoDetectEncoding(true); | |
625 ThreadUtils.runOnUiThread(new Runnable() { | |
626 @Override | |
627 public void run() { | |
628 getActivity().getActivityTab().reload(); | |
629 } | |
630 }); | |
631 ChromeTabUtils.waitForTabPageLoaded(getActivity().getActivityTab(), test
Url); | |
632 assertEquals("Wrong page encoding while auto detect encoding enabled", "
Big5", | |
633 getActivity().getCurrentContentViewCore().getWebContents().getEn
coding()); | |
634 | |
635 } | |
636 | |
637 /** | |
638 * Helper function to test allowing and blocking background sync. | 582 * Helper function to test allowing and blocking background sync. |
639 * @param enabled true to test enabling background sync, false to test disab
ling the feature. | 583 * @param enabled true to test enabling background sync, false to test disab
ling the feature. |
640 */ | 584 */ |
641 private void doTestBackgroundSyncPermission(final boolean enabled) { | 585 private void doTestBackgroundSyncPermission(final boolean enabled) { |
642 setEnableBackgroundSync(enabled); | 586 setEnableBackgroundSync(enabled); |
643 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 587 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
644 @Override | 588 @Override |
645 public void run() { | 589 public void run() { |
646 assertEquals("Background Sync should be " + (enabled ? "enabled"
: "disabled"), | 590 assertEquals("Background Sync should be " + (enabled ? "enabled"
: "disabled"), |
647 PrefServiceBridge.getInstance().isBackgroundSyncAllowed(
), enabled); | 591 PrefServiceBridge.getInstance().isBackgroundSyncAllowed(
), enabled); |
(...skipping 19 matching lines...) Expand all Loading... |
667 public Integer call() throws Exception { | 611 public Integer call() throws Exception { |
668 if (FeatureUtilities.isDocumentMode(getInstrumentation().getTarg
etContext())) { | 612 if (FeatureUtilities.isDocumentMode(getInstrumentation().getTarg
etContext())) { |
669 return ChromeApplication.getDocumentTabModelSelector().getTo
talTabCount(); | 613 return ChromeApplication.getDocumentTabModelSelector().getTo
talTabCount(); |
670 } else { | 614 } else { |
671 return getActivity().getTabModelSelector().getTotalTabCount(
); | 615 return getActivity().getTabModelSelector().getTotalTabCount(
); |
672 } | 616 } |
673 } | 617 } |
674 }); | 618 }); |
675 } | 619 } |
676 } | 620 } |
OLD | NEW |