Chromium Code Reviews| 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 { | |
|
Theresa
2016/07/19 20:18:03
Now that there's not an explicit toggle, I think r
Jinsuk Kim
2016/07/20 04:04:53
Revived this test and moved to EncodingTest. Left
| |
| 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 |