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(); |
+ }, |
+ }; |
+}); |