Commit 8a5cac6e authored by Scott Chen's avatar Scott Chen Committed by Commit Bot

Nux Onboarding: add testing for signin-view

Bug: 881937
Change-Id: I01c66ec9463db1c76f8f45579be7cd210c780b8a
Reviewed-on: https://chromium-review.googlesource.com/c/1338475
Commit-Queue: Scott Chen <scottchen@chromium.org>
Reviewed-by: default avatarHector Carmona <hcarmona@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609078}
parent 170ac20d
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
<link rel="import" href="email/nux_email_proxy.html">
<link rel="import" href="navigation_behavior.html"> <link rel="import" href="navigation_behavior.html">
<link rel="import" href="shared/action_link_style_css.html"> <link rel="import" href="shared/action_link_style_css.html">
<link rel="import" href="shared/i18n_setup.html"> <link rel="import" href="shared/i18n_setup.html">
......
...@@ -74,3 +74,23 @@ OnboardingWelcomeWelcomeAppTest = class extends OnboardingWelcomeBrowserTest { ...@@ -74,3 +74,23 @@ OnboardingWelcomeWelcomeAppTest = class extends OnboardingWelcomeBrowserTest {
TEST_F('OnboardingWelcomeWelcomeAppTest', 'All', function() { TEST_F('OnboardingWelcomeWelcomeAppTest', 'All', function() {
mocha.run(); mocha.run();
}); });
OnboardingWelcomeSigninViewTest = class extends OnboardingWelcomeBrowserTest {
/** @override */
get browsePreload() {
return 'chrome://welcome/signin_view.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'signin_view_test.js',
'test_nux_email_proxy.js',
'test_welcome_browser_proxy.js',
]);
}
};
TEST_F('OnboardingWelcomeSigninViewTest', 'All', function() {
mocha.run();
});
// Copyright 2018 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('onboarding_signin_view_test', function() {
suite('SigninViewTest', function() {
/** @type {SigninViewElement} */
let testElement;
/** @type {welcome.WelcomeBrowserProxy} */
let testWelcomeBrowserProxy;
/** @type {nux.NuxEmailProxy} */
let testEmailBrowserProxy;
setup(function() {
testWelcomeBrowserProxy = new TestWelcomeBrowserProxy();
welcome.WelcomeBrowserProxyImpl.instance_ = testWelcomeBrowserProxy;
testEmailBrowserProxy = new TestNuxEmailProxy();
nux.NuxEmailProxyImpl.instance_ = testEmailBrowserProxy;
PolymerTest.clearBody();
testElement = document.createElement('signin-view');
document.body.appendChild(testElement);
});
teardown(function() {
testElement.remove();
});
test('sign-in button with no email provider selected', function() {
const signinButton = testElement.$$('paper-button');
assertTrue(!!signinButton);
signinButton.click();
return testEmailBrowserProxy.whenCalled('getSavedProvider')
.then(() => {
return testWelcomeBrowserProxy.whenCalled('handleActivateSignIn');
})
.then(redirectUrl => {
assertEquals(redirectUrl, null);
});
});
test('sign-in button with a email provider selected', function() {
const signinButton = testElement.$$('paper-button');
assertTrue(!!signinButton);
testEmailBrowserProxy.setSavedProvider(3);
signinButton.click();
return testEmailBrowserProxy.whenCalled('getSavedProvider')
.then(() => {
return testWelcomeBrowserProxy.whenCalled('handleActivateSignIn');
})
.then(redirectUrl => {
assertEquals(
redirectUrl, 'chrome://welcome/email-interstitial?provider=3');
});
});
test('no-thanks button with no email provider selected', function() {
const noThanksButton = testElement.$$('button');
assertTrue(!!noThanksButton);
noThanksButton.click();
return Promise.all([
testEmailBrowserProxy.whenCalled('getSavedProvider'),
testWelcomeBrowserProxy.whenCalled('goToNewTabPage'),
]);
});
test('no-thanks button with an email provider selected', function() {
const noThanksButton = testElement.$$('button');
assertTrue(!!noThanksButton);
testEmailBrowserProxy.setSavedProvider(4);
noThanksButton.click();
return testEmailBrowserProxy.whenCalled('getSavedProvider')
.then(() => {
return testWelcomeBrowserProxy.whenCalled('goToURL');
})
.then(url => {
assertEquals(url, 'chrome://welcome/email-interstitial?provider=4');
});
});
});
});
...@@ -20,6 +20,14 @@ class TestNuxEmailProxy extends TestBrowserProxy { ...@@ -20,6 +20,14 @@ class TestNuxEmailProxy extends TestBrowserProxy {
/** @private {!Array<!nux.BookmarkListItem>} */ /** @private {!Array<!nux.BookmarkListItem>} */
this.emailList_ = []; this.emailList_ = [];
/** @private {number} */
this.stubSavedProvider_;
}
/** @param {number} id */
setSavedProvider(id) {
this.stubSavedProvider_ = id;
} }
/** @override */ /** @override */
...@@ -40,6 +48,7 @@ class TestNuxEmailProxy extends TestBrowserProxy { ...@@ -40,6 +48,7 @@ class TestNuxEmailProxy extends TestBrowserProxy {
/** @override */ /** @override */
getSavedProvider() { getSavedProvider() {
this.methodCalled('getSavedProvider'); this.methodCalled('getSavedProvider');
return this.stubSavedProvider_;
} }
/** @override */ /** @override */
recordClickedOption() { recordClickedOption() {
......
...@@ -13,8 +13,8 @@ class TestWelcomeBrowserProxy extends TestBrowserProxy { ...@@ -13,8 +13,8 @@ class TestWelcomeBrowserProxy extends TestBrowserProxy {
} }
/** @override */ /** @override */
handleActivateSignIn() { handleActivateSignIn(providerId) {
this.methodCalled('handleActivateSignIn'); this.methodCalled('handleActivateSignIn', providerId);
} }
/** @override */ /** @override */
...@@ -23,7 +23,7 @@ class TestWelcomeBrowserProxy extends TestBrowserProxy { ...@@ -23,7 +23,7 @@ class TestWelcomeBrowserProxy extends TestBrowserProxy {
} }
/** @override */ /** @override */
goToURL() { goToURL(url) {
this.methodCalled('goToURL'); this.methodCalled('goToURL', url);
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment