Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4970)

Unified Diff: chrome/test/data/webui/settings/default_browser_browsertest.js

Issue 2317693003: [MD settings] display message about secondary install in default browser settings (Closed)
Patch Set: excluding from chromeos Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/webui/settings/cr_settings_browsertest.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..c312eccec7ac2f608f252acff3042b2f3e81c644
--- /dev/null
+++ b/chrome/test/data/webui/settings/default_browser_browsertest.js
@@ -0,0 +1,173 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// 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} info Fake info for testing.
+ */
+ 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.maySetDefaultBrowser_);
+ 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.maySetDefaultBrowser_);
+ 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.maySetDefaultBrowser_);
+ 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.maySetDefaultBrowser_);
+ 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.maySetDefaultBrowser_);
+ done();
+ });
+ });
+ });
+ }
+
+ return {
+ registerTests: function() {
+ registerDefaultBrowserPageTests();
+ },
+ };
+});
« no previous file with comments | « chrome/test/data/webui/settings/cr_settings_browsertest.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698