Commit 1b954e40 authored by Hector Carmona's avatar Hector Carmona Committed by Commit Bot

Navi: Pre-select first email provider to have a default.

Bug: 901210, 900377
Change-Id: I928f6cdb1a8251131afbe2e95afe1cbca39703ea
Reviewed-on: https://chromium-review.googlesource.com/c/1332696
Commit-Queue: Hector Carmona <hcarmona@chromium.org>
Reviewed-by: default avatarScott Chen <scottchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607853}
parent 14e947fa
...@@ -65,6 +65,9 @@ Polymer({ ...@@ -65,6 +65,9 @@ Polymer({
this.emailProxy_.getEmailList().then(list => { this.emailProxy_.getEmailList().then(list => {
this.emailList_ = list; this.emailList_ = list;
// Pre-select fist email provider.
this.selectedEmailProvider_ = this.emailList_[0];
}); });
window.addEventListener('beforeunload', () => { window.addEventListener('beforeunload', () => {
...@@ -152,6 +155,9 @@ Polymer({ ...@@ -152,6 +155,9 @@ Polymer({
if (emailProvider.bookmarkId) if (emailProvider.bookmarkId)
return; return;
// Indicates that the emailProvider is being added as a bookmark.
emailProvider.bookmarkId = 'pending';
this.emailProxy_.cacheBookmarkIcon(emailProvider.id); this.emailProxy_.cacheBookmarkIcon(emailProvider.id);
this.bookmarkProxy_.toggleBookmarkBar(true); this.bookmarkProxy_.toggleBookmarkBar(true);
this.bookmarkProxy_.addBookmark( this.bookmarkProxy_.addBookmark(
......
...@@ -154,9 +154,12 @@ cr.define('nux', function() { ...@@ -154,9 +154,12 @@ cr.define('nux', function() {
recordFinalize() { recordFinalize() {
let finalValue = this.firstPart + this.lastPart; let finalValue = this.firstPart + this.lastPart;
chrome.metricsPrivate.recordEnumerationValue( // TODO(hcarmona): revisit this metric.
INTERACTION_METRIC_NAME, NuxEmailProvidersInteractions[finalValue], let metric = NuxEmailProvidersInteractions[finalValue];
INTERACTION_METRIC_COUNT); if (metric) {
chrome.metricsPrivate.recordEnumerationValue(
INTERACTION_METRIC_NAME, metric, INTERACTION_METRIC_COUNT);
}
} }
} }
......
...@@ -50,42 +50,34 @@ cr.define('onboarding_welcome_email_chooser', function() { ...@@ -50,42 +50,34 @@ cr.define('onboarding_welcome_email_chooser', function() {
}); });
test('test email chooser options', function() { test('test email chooser options', function() {
var options = testElement.shadowRoot.querySelectorAll('.option'); let options = testElement.shadowRoot.querySelectorAll('.option');
assertEquals(2, options.length); assertEquals(2, options.length);
assertFalse(!!testElement.$$('.option[active]')); // First option is default selected and action button should be enabled.
assertTrue(testElement.$$('.action-button').disabled); assertEquals(testElement.$$('.option[active]'), options[0]);
assertFalse(testElement.$$('.action-button').disabled);
// Click first option, it should be selected and action button should be
// enabled.
options[0].click(); options[0].click();
return Promise return Promise
.all([ .all([
testBookmarkBrowserProxy.whenCalled('addBookmark'), testBookmarkBrowserProxy.whenCalled('removeBookmark'),
testEmailBrowserProxy.whenCalled('recordClickedOption'), testEmailBrowserProxy.whenCalled('recordClickedOption'),
]) ])
.then(responses => { .then(responses => {
let response = responses[0]; let removedId = responses[0];
assertEquals(response.title, emails[0].name); assertEquals(removedId, 1);
assertEquals(response.url, emails[0].url); assertFalse(!!testElement.$$('.option[active]'));
assertEquals(response.parentId, '1'); assertTrue(testElement.$$('.action-button').disabled);
assertEquals(testElement.$$('.option[active]'), options[0]);
assertFalse(testElement.$$('.action-button').disabled);
// Click second option, it should be selected and first option // Click second option, it should be selected.
// should not be selected anymore.
testBookmarkBrowserProxy.reset(); testBookmarkBrowserProxy.reset();
options[1].click(); options[1].click();
return Promise.all([ return Promise.all([
testBookmarkBrowserProxy.whenCalled('addBookmark'), testBookmarkBrowserProxy.whenCalled('addBookmark'),
testBookmarkBrowserProxy.whenCalled('removeBookmark'),
]); ]);
}) })
.then(responses => { .then(responses => {
let addResponse = responses[0]; let addResponse = responses[0];
let removedId = responses[1];
assertEquals(removedId, 1);
assertEquals(addResponse.title, emails[1].name); assertEquals(addResponse.title, emails[1].name);
assertEquals(addResponse.url, emails[1].url); assertEquals(addResponse.url, emails[1].url);
...@@ -108,21 +100,17 @@ cr.define('onboarding_welcome_email_chooser', function() { ...@@ -108,21 +100,17 @@ cr.define('onboarding_welcome_email_chooser', function() {
}); });
test('test email chooser skip button', function() { test('test email chooser skip button', function() {
var options = testElement.shadowRoot.querySelectorAll('.option'); let options = testElement.shadowRoot.querySelectorAll('.option');
testElement.bookmarkBarWasShown_ = true; testElement.bookmarkBarWasShown_ = true;
// Click first option, it should be selected and action button should be // First option should be selected and action button should be enabled.
// enabled. testElement.$.noThanksButton.click();
options[0].click(); return Promise
return testBookmarkBrowserProxy.whenCalled('addBookmark') .all([
.then(response => { testBookmarkBrowserProxy.whenCalled('removeBookmark'),
testElement.$.noThanksButton.click(); testBookmarkBrowserProxy.whenCalled('toggleBookmarkBar'),
return Promise.all([ testEmailBrowserProxy.whenCalled('recordNoThanks'),
testBookmarkBrowserProxy.whenCalled('removeBookmark'), ])
testBookmarkBrowserProxy.whenCalled('toggleBookmarkBar'),
testEmailBrowserProxy.whenCalled('recordNoThanks'),
]);
})
.then(responses => { .then(responses => {
let removeBookmarkResponse = responses[0]; let removeBookmarkResponse = responses[0];
let toggleBookmarkBarResponse = responses[1]; let toggleBookmarkBarResponse = responses[1];
...@@ -133,20 +121,16 @@ cr.define('onboarding_welcome_email_chooser', function() { ...@@ -133,20 +121,16 @@ cr.define('onboarding_welcome_email_chooser', function() {
}); });
test('test email chooser next button', function() { test('test email chooser next button', function() {
var options = testElement.shadowRoot.querySelectorAll('.option'); let options = testElement.shadowRoot.querySelectorAll('.option');
testElement.bookmarkBarWasShown_ = true; testElement.bookmarkBarWasShown_ = true;
// Click first option, it should be selected and action button should be // First option should be selected and action button should be enabled.
// enabled. testElement.$$('.action-button').click();
options[0].click(); return Promise
return testBookmarkBrowserProxy.whenCalled('addBookmark') .all([
.then(response => { testEmailBrowserProxy.whenCalled('recordProviderSelected'),
testElement.$$('.action-button').click(); testEmailBrowserProxy.whenCalled('recordGetStarted'),
return Promise.all([ ])
testEmailBrowserProxy.whenCalled('recordProviderSelected'),
testEmailBrowserProxy.whenCalled('recordGetStarted'),
]);
})
.then(responses => { .then(responses => {
let recordProviderSelectedResponse = responses[0]; let recordProviderSelectedResponse = responses[0];
......
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