Chromium Code Reviews| Index: chrome/test/data/webui/settings/default_browser_browsertest.js |
| diff --git a/chrome/test/data/webui/settings/default_browser_browsertest.js b/chrome/test/data/webui/settings/default_browser_browsertest.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..58775abfed3230bff355f49078e86ed2750052dc |
| --- /dev/null |
| +++ b/chrome/test/data/webui/settings/default_browser_browsertest.js |
| @@ -0,0 +1,173 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
|
Finnur
2016/09/07 16:25:22
nit: 2016
dschuyler
2016/09/07 18:51:42
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +cr.define('settings_default_browser', function() { |
| + /** |
| + * A test version of DefaultBrowserBrowserProxy. Provides helper methods |
| + * for allowing tests to know when a method was called, as well as |
| + * specifying mock responses. |
| + * |
| + * @constructor |
| + * @implements {settings.DefaultBrowserBrowserProxy} |
| + * @extends {settings.TestBrowserProxy} |
| + */ |
| + var TestDefaultBrowserBrowserProxy = function() { |
| + settings.TestBrowserProxy.call(this, [ |
| + 'requestDefaultBrowserState', |
| + 'setAsDefaultBrowser', |
| + ]); |
| + |
| + /** @private {!DefaultBrowserInfo} */ |
| + this.defaultBrowserInfo_ = { |
| + canBeDefault: true, |
| + isDefault: false, |
| + isDisabledByPolicy: false, |
| + isUnknownError: false |
| + }; |
| + }; |
| + |
| + TestDefaultBrowserBrowserProxy.prototype = { |
| + __proto__: settings.TestBrowserProxy.prototype, |
| + |
| + /** @override */ |
| + requestDefaultBrowserState: function() { |
| + this.methodCalled('requestDefaultBrowserState'); |
| + return Promise.resolve(this.defaultBrowserInfo_); |
| + }, |
| + |
| + /** @override */ |
| + setAsDefaultBrowser: function() { |
| + this.methodCalled('setAsDefaultBrowser'); |
| + }, |
| + |
| + /** |
| + * Sets the response to be returned by |requestDefaultBrowserState|. |
| + * @param {!DefaultBrowserInfo} |
|
Finnur
2016/09/07 16:25:22
nit: Missing param name etc.
dschuyler
2016/09/07 18:51:42
Done.
|
| + */ |
| + setDefaultBrowserInfo: function(info) { |
| + this.defaultBrowserInfo_ = info; |
| + }, |
| + } |
| + |
| + function registerDefaultBrowserPageTests() { |
| + suite('DefaultBrowserPageTest', function() { |
| + var page = null; |
| + |
| + /** @type {?settings.TestDefaultBrowserBrowserProxy} */ |
| + var browserProxy = null; |
| + |
| + setup(function() { |
| + browserProxy = new TestDefaultBrowserBrowserProxy(); |
| + settings.DefaultBrowserBrowserProxyImpl.instance_ = browserProxy; |
| + return initPage(); |
| + }); |
| + |
| + teardown(function() { |
| + page.remove(); |
| + page = null; |
| + }); |
| + |
| + /** @return {!Promise} */ |
| + function initPage() { |
| + browserProxy.reset(); |
| + PolymerTest.clearBody(); |
| + page = document.createElement('settings-default-browser-page'); |
| + document.body.appendChild(page); |
| + return browserProxy.whenCalled('requestDefaultBrowserState'); |
| + } |
| + |
| + test('default-browser-test-can-be-default', function(done) { |
| + browserProxy.setDefaultBrowserInfo({ |
| + canBeDefault: true, |
| + isDefault: false, |
| + isDisabledByPolicy: false, |
| + isUnknownError: false |
| + }); |
| + |
| + return initPage().then(function() { |
| + assertFalse(page.isDefault_); |
| + assertFalse(page.isSecondaryInstall_); |
| + assertFalse(page.isUnknownError_); |
| + assertTrue(page.showButton_); |
| + done(); |
| + }); |
| + }); |
| + |
| + test('default-browser-test-is-default', function(done) { |
| + assertTrue(!!page); |
| + browserProxy.setDefaultBrowserInfo({ |
| + canBeDefault: true, |
| + isDefault: true, |
| + isDisabledByPolicy: false, |
| + isUnknownError: false |
| + }); |
| + |
| + return initPage().then(function() { |
| + assertTrue(page.isDefault_); |
| + assertFalse(page.isSecondaryInstall_); |
| + assertFalse(page.isUnknownError_); |
| + assertFalse(page.showButton_); |
| + done(); |
| + }); |
| + }); |
| + |
| + test('default-browser-test-is-secondary-install', function(done) { |
| + browserProxy.setDefaultBrowserInfo({ |
| + canBeDefault: false, |
| + isDefault: false, |
| + isDisabledByPolicy: false, |
| + isUnknownError: false |
| + }); |
| + |
| + return initPage().then(function() { |
| + assertFalse(page.isDefault_); |
| + assertTrue(page.isSecondaryInstall_); |
| + assertFalse(page.isUnknownError_); |
| + assertFalse(page.showButton_); |
| + done(); |
| + }); |
| + }); |
| + |
| + test('default-browser-test-is-disabled-by-policy', function(done) { |
| + browserProxy.setDefaultBrowserInfo({ |
| + canBeDefault: true, |
| + isDefault: false, |
| + isDisabledByPolicy: true, |
| + isUnknownError: false |
| + }); |
| + |
| + return initPage().then(function() { |
| + assertFalse(page.isDefault_); |
| + assertFalse(page.isSecondaryInstall_); |
| + assertTrue(page.isUnknownError_); |
| + assertFalse(page.showButton_); |
| + done(); |
| + }); |
| + }); |
| + |
| + test('default-browser-test-is-unknown-error', function(done) { |
| + browserProxy.setDefaultBrowserInfo({ |
| + canBeDefault: true, |
| + isDefault: false, |
| + isDisabledByPolicy: false, |
| + isUnknownError: true |
| + }); |
| + |
| + return initPage().then(function() { |
| + assertFalse(page.isDefault_); |
| + assertFalse(page.isSecondaryInstall_); |
| + assertTrue(page.isUnknownError_); |
| + assertFalse(page.showButton_); |
| + done(); |
| + }); |
| + }); |
| + }); |
| + } |
| + |
| + return { |
| + registerTests: function() { |
| + registerDefaultBrowserPageTests(); |
| + }, |
| + }; |
| +}); |