OLD | NEW |
---|---|
(Empty) | |
1 // 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.
| |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 cr.define('settings_default_browser', function() { | |
6 /** | |
7 * A test version of DefaultBrowserBrowserProxy. Provides helper methods | |
8 * for allowing tests to know when a method was called, as well as | |
9 * specifying mock responses. | |
10 * | |
11 * @constructor | |
12 * @implements {settings.DefaultBrowserBrowserProxy} | |
13 * @extends {settings.TestBrowserProxy} | |
14 */ | |
15 var TestDefaultBrowserBrowserProxy = function() { | |
16 settings.TestBrowserProxy.call(this, [ | |
17 'requestDefaultBrowserState', | |
18 'setAsDefaultBrowser', | |
19 ]); | |
20 | |
21 /** @private {!DefaultBrowserInfo} */ | |
22 this.defaultBrowserInfo_ = { | |
23 canBeDefault: true, | |
24 isDefault: false, | |
25 isDisabledByPolicy: false, | |
26 isUnknownError: false | |
27 }; | |
28 }; | |
29 | |
30 TestDefaultBrowserBrowserProxy.prototype = { | |
31 __proto__: settings.TestBrowserProxy.prototype, | |
32 | |
33 /** @override */ | |
34 requestDefaultBrowserState: function() { | |
35 this.methodCalled('requestDefaultBrowserState'); | |
36 return Promise.resolve(this.defaultBrowserInfo_); | |
37 }, | |
38 | |
39 /** @override */ | |
40 setAsDefaultBrowser: function() { | |
41 this.methodCalled('setAsDefaultBrowser'); | |
42 }, | |
43 | |
44 /** | |
45 * Sets the response to be returned by |requestDefaultBrowserState|. | |
46 * @param {!DefaultBrowserInfo} | |
Finnur
2016/09/07 16:25:22
nit: Missing param name etc.
dschuyler
2016/09/07 18:51:42
Done.
| |
47 */ | |
48 setDefaultBrowserInfo: function(info) { | |
49 this.defaultBrowserInfo_ = info; | |
50 }, | |
51 } | |
52 | |
53 function registerDefaultBrowserPageTests() { | |
54 suite('DefaultBrowserPageTest', function() { | |
55 var page = null; | |
56 | |
57 /** @type {?settings.TestDefaultBrowserBrowserProxy} */ | |
58 var browserProxy = null; | |
59 | |
60 setup(function() { | |
61 browserProxy = new TestDefaultBrowserBrowserProxy(); | |
62 settings.DefaultBrowserBrowserProxyImpl.instance_ = browserProxy; | |
63 return initPage(); | |
64 }); | |
65 | |
66 teardown(function() { | |
67 page.remove(); | |
68 page = null; | |
69 }); | |
70 | |
71 /** @return {!Promise} */ | |
72 function initPage() { | |
73 browserProxy.reset(); | |
74 PolymerTest.clearBody(); | |
75 page = document.createElement('settings-default-browser-page'); | |
76 document.body.appendChild(page); | |
77 return browserProxy.whenCalled('requestDefaultBrowserState'); | |
78 } | |
79 | |
80 test('default-browser-test-can-be-default', function(done) { | |
81 browserProxy.setDefaultBrowserInfo({ | |
82 canBeDefault: true, | |
83 isDefault: false, | |
84 isDisabledByPolicy: false, | |
85 isUnknownError: false | |
86 }); | |
87 | |
88 return initPage().then(function() { | |
89 assertFalse(page.isDefault_); | |
90 assertFalse(page.isSecondaryInstall_); | |
91 assertFalse(page.isUnknownError_); | |
92 assertTrue(page.showButton_); | |
93 done(); | |
94 }); | |
95 }); | |
96 | |
97 test('default-browser-test-is-default', function(done) { | |
98 assertTrue(!!page); | |
99 browserProxy.setDefaultBrowserInfo({ | |
100 canBeDefault: true, | |
101 isDefault: true, | |
102 isDisabledByPolicy: false, | |
103 isUnknownError: false | |
104 }); | |
105 | |
106 return initPage().then(function() { | |
107 assertTrue(page.isDefault_); | |
108 assertFalse(page.isSecondaryInstall_); | |
109 assertFalse(page.isUnknownError_); | |
110 assertFalse(page.showButton_); | |
111 done(); | |
112 }); | |
113 }); | |
114 | |
115 test('default-browser-test-is-secondary-install', function(done) { | |
116 browserProxy.setDefaultBrowserInfo({ | |
117 canBeDefault: false, | |
118 isDefault: false, | |
119 isDisabledByPolicy: false, | |
120 isUnknownError: false | |
121 }); | |
122 | |
123 return initPage().then(function() { | |
124 assertFalse(page.isDefault_); | |
125 assertTrue(page.isSecondaryInstall_); | |
126 assertFalse(page.isUnknownError_); | |
127 assertFalse(page.showButton_); | |
128 done(); | |
129 }); | |
130 }); | |
131 | |
132 test('default-browser-test-is-disabled-by-policy', function(done) { | |
133 browserProxy.setDefaultBrowserInfo({ | |
134 canBeDefault: true, | |
135 isDefault: false, | |
136 isDisabledByPolicy: true, | |
137 isUnknownError: false | |
138 }); | |
139 | |
140 return initPage().then(function() { | |
141 assertFalse(page.isDefault_); | |
142 assertFalse(page.isSecondaryInstall_); | |
143 assertTrue(page.isUnknownError_); | |
144 assertFalse(page.showButton_); | |
145 done(); | |
146 }); | |
147 }); | |
148 | |
149 test('default-browser-test-is-unknown-error', function(done) { | |
150 browserProxy.setDefaultBrowserInfo({ | |
151 canBeDefault: true, | |
152 isDefault: false, | |
153 isDisabledByPolicy: false, | |
154 isUnknownError: true | |
155 }); | |
156 | |
157 return initPage().then(function() { | |
158 assertFalse(page.isDefault_); | |
159 assertFalse(page.isSecondaryInstall_); | |
160 assertTrue(page.isUnknownError_); | |
161 assertFalse(page.showButton_); | |
162 done(); | |
163 }); | |
164 }); | |
165 }); | |
166 } | |
167 | |
168 return { | |
169 registerTests: function() { | |
170 registerDefaultBrowserPageTests(); | |
171 }, | |
172 }; | |
173 }); | |
OLD | NEW |