| Index: chrome/test/data/webui/settings/site_list_tests.js
|
| diff --git a/chrome/test/data/webui/settings/site_list_tests.js b/chrome/test/data/webui/settings/site_list_tests.js
|
| index 9235f42de9292270e892d9596fe70d16f89a0190..dd966a37de3bdbc05a69bfcee34b8a146176786d 100644
|
| --- a/chrome/test/data/webui/settings/site_list_tests.js
|
| +++ b/chrome/test/data/webui/settings/site_list_tests.js
|
| @@ -87,6 +87,38 @@ cr.define('site_list', function() {
|
| };
|
|
|
| /**
|
| + * An example pref with mixed origin and pattern.
|
| + * @type {SiteSettingsPref}
|
| + */
|
| + var prefsMixedOriginAndPattern = {
|
| + exceptions: {
|
| + media_stream_camera: [],
|
| + cookies: [],
|
| + fullscreen: [],
|
| + geolocation: [
|
| + {
|
| + origin: 'https://foo.com',
|
| + embeddingOrigin: '*',
|
| + setting: 'allow',
|
| + source: 'preference',
|
| + },
|
| + ],
|
| + javascript: [
|
| + {
|
| + origin: 'https://[*.]foo.com',
|
| + embeddingOrigin: '*',
|
| + setting: 'allow',
|
| + source: 'preference',
|
| + },
|
| + ],
|
| + images: [],
|
| + media_stream_mic: [],
|
| + notifications: [],
|
| + popups: [],
|
| + }
|
| + };
|
| +
|
| + /**
|
| * An example pref with multiple categories and multiple allow/block
|
| * state.
|
| * @type {SiteSettingsPref}
|
| @@ -452,13 +484,17 @@ cr.define('site_list', function() {
|
| });
|
| });
|
|
|
| - test('All sites category', function(done) {
|
| + test('All sites category', function() {
|
| // Prefs: Multiple and overlapping sites.
|
| setupAllSitesCategory(prefsVarious);
|
|
|
| - browserProxy.whenCalled('getExceptionList').then(
|
| + return browserProxy.whenCalled('getExceptionList').then(
|
| function(contentType) {
|
| - testElement.async(function() {
|
| + // Use resolver to ensure asserts bubble up to the framework with
|
| + // meaningful errors.
|
| + var resolver = new PromiseResolver();
|
| + testElement.async(resolver.resolve);
|
| + return resolver.promise.then(function() {
|
| // All Sites calls getExceptionList for all categories, starting
|
| // with Cookies.
|
| assertEquals(settings.ContentSettingsTypes.COOKIES, contentType);
|
| @@ -469,9 +505,9 @@ cr.define('site_list', function() {
|
| assertTrue(testElement.$.category.opened);
|
| assertFalse(testElement.$.category.hidden);
|
| // Validate that the sites gets populated from pre-canned prefs.
|
| - // If this fails with 5 instead of the expected 3, then the
|
| - // de-duping of sites is not working for site_list.
|
| - assertEquals(3, testElement.sites.length);
|
| + assertEquals(3, testElement.sites.length,
|
| + 'If this fails with 5 instead of the expected 3, then the ' +
|
| + 'de-duping of sites is not working for site_list');
|
| assertEquals(prefsVarious.exceptions.geolocation[1].origin,
|
| testElement.sites[0].origin);
|
| assertEquals(prefsVarious.exceptions.geolocation[0].origin,
|
| @@ -487,10 +523,49 @@ cr.define('site_list', function() {
|
| MockInteractions.tap(clickable);
|
| assertEquals(prefsVarious.exceptions.geolocation[0].origin,
|
| testElement.selectedSite.origin);
|
| + });
|
| + });
|
| + });
|
| +
|
| + test('All sites mixed pattern and origin', function() {
|
| + // Prefs: One site, represented as origin and pattern.
|
| + setupAllSitesCategory(prefsMixedOriginAndPattern);
|
| +
|
| + return browserProxy.whenCalled('getExceptionList').then(
|
| + function(contentType) {
|
| + // Use resolver to ensure asserts bubble up to the framework with
|
| + // meaningful errors.
|
| + var resolver = new PromiseResolver();
|
| + testElement.async(resolver.resolve);
|
| + return resolver.promise.then(function() {
|
| + // All Sites calls getExceptionList for all categories, starting
|
| + // with Cookies.
|
| + assertEquals(settings.ContentSettingsTypes.COOKIES, contentType);
|
| +
|
| + // Required for firstItem to be found below.
|
| + Polymer.dom.flush();
|
|
|
| - done();
|
| + assertTrue(testElement.$.category.opened);
|
| + assertFalse(testElement.$.category.hidden);
|
| + // Validate that the sites gets populated from pre-canned prefs.
|
| + assertEquals(1, testElement.sites.length,
|
| + 'If this fails with 2 instead of the expected 1, then the ' +
|
| + 'de-duping of sites is not working for site_list');
|
| + assertEquals(
|
| + prefsMixedOriginAndPattern.exceptions.geolocation[0].origin,
|
| + testElement.sites[0].originForDisplay);
|
| +
|
| + assertEquals(undefined, testElement.selectedOrigin);
|
| + // Validate that the sites are shown in UI and can be selected.
|
| + var firstItem = testElement.$.listContainer.items[0];
|
| + var clickable = firstItem.querySelector('.flex paper-item-body');
|
| + assertNotEquals(undefined, clickable);
|
| + MockInteractions.tap(clickable);
|
| + assertEquals(
|
| + prefsMixedOriginAndPattern.exceptions.geolocation[0].origin,
|
| + testElement.selectedSite.originForDisplay);
|
| + });
|
| });
|
| - });
|
| });
|
|
|
| test('Mixed schemes (present and absent)', function() {
|
|
|