Commit 52f80bb3 authored by Oskar Sundbom's avatar Oskar Sundbom Committed by Commit Bot

Revert "Hide saved printers when empty"

This reverts commit 6268a44d.

Reason for revert: Test fails on ChromeOS, see: https://crbug.com/999072

Original change's description:
> Hide saved printers when empty
> 
> - The header for saved printers will be hidden when the saved printers
>   list is empty.
> - Adds a browsertest to reflect this change.
> 
> Bug: 993819
> Test: browser tests, end to end manual
> Change-Id: I4bbae8f389161a7c3252df09d39380c896413fa2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1767488
> Commit-Queue: jimmy gong <jimmyxgong@chromium.org>
> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
> Reviewed-by: Bailey Berro <baileyberro@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#691391}

TBR=khorimoto@chromium.org,zentaro@chromium.org,baileyberro@chromium.org,jimmyxgong@chromium.org

Change-Id: Iee2c84d5e9aacd691bb695229a2c26d8ffff1b2a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 993819, 999072
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1776039Reviewed-by: default avatarOskar Sundbom <ossu@chromium.org>
Commit-Queue: Oskar Sundbom <ossu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#691547}
parent 3e2cf3c7
...@@ -103,7 +103,6 @@ if (is_chromeos) { ...@@ -103,7 +103,6 @@ if (is_chromeos) {
":cups_nearby_printers", ":cups_nearby_printers",
":cups_printers_browser_proxy", ":cups_printers_browser_proxy",
":cups_saved_printers", ":cups_saved_printers",
"..:route",
"//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider", "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider",
"//ui/webui/resources/cr_elements/chromeos/network:cr_network_listener_behavior", "//ui/webui/resources/cr_elements/chromeos/network:cr_network_listener_behavior",
"//ui/webui/resources/cr_elements/cr_toast:cr_toast", "//ui/webui/resources/cr_elements/cr_toast:cr_toast",
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
<link rel="import" href="cups_printers_list.html"> <link rel="import" href="cups_printers_list.html">
<link rel="import" href="cups_saved_printers.html"> <link rel="import" href="cups_saved_printers.html">
<link rel="import" href="cups_nearby_printers.html"> <link rel="import" href="cups_nearby_printers.html">
<link rel="import" href="../route.html">
<dom-module id="settings-cups-printers"> <dom-module id="settings-cups-printers">
<template> <template>
...@@ -122,9 +121,6 @@ ...@@ -122,9 +121,6 @@
</div> </div>
</template> </template>
<template is="dom-if"
if="[[doesAccountHaveSavedPrinters_(savedPrinters_)]]"
id="savedPrintersSection" restamp>
<div class="settings-box first"> <div class="settings-box first">
<div class="start"> <div class="start">
<span>$i18n{savedPrintersTitle}</span> <span>$i18n{savedPrintersTitle}</span>
...@@ -133,10 +129,8 @@ ...@@ -133,10 +129,8 @@
<settings-cups-saved-printers id="savedPrinters" <settings-cups-saved-printers id="savedPrinters"
active-printer="{{activePrinter}}" active-printer="{{activePrinter}}"
saved-printers="[[savedPrinters_]]"
search-term="[[searchTerm]]"> search-term="[[searchTerm]]">
</settings-cups-saved-printers> </settings-cups-saved-printers>
</template>
<div class="padded first" id="nearbyPrinters"> <div class="padded first" id="nearbyPrinters">
<div>$i18n{nearbyPrintersListTitle}</div> <div>$i18n{nearbyPrintersListTitle}</div>
......
...@@ -14,7 +14,6 @@ Polymer({ ...@@ -14,7 +14,6 @@ Polymer({
behaviors: [ behaviors: [
CrNetworkListenerBehavior, CrNetworkListenerBehavior,
settings.RouteObserverBehavior,
WebUIListenerBehavior, WebUIListenerBehavior,
], ],
...@@ -43,15 +42,6 @@ Polymer({ ...@@ -43,15 +42,6 @@ Polymer({
reflectToAttribute: true, reflectToAttribute: true,
}, },
/**
* @type {!Array<!PrinterListEntry>}
* @private
*/
savedPrinters_: {
type: Array,
value: () => [],
},
/** @private */ /** @private */
showCupsEditPrinterDialog_: Boolean, showCupsEditPrinterDialog_: Boolean,
...@@ -103,6 +93,9 @@ Polymer({ ...@@ -103,6 +93,9 @@ Polymer({
if (this.enableUpdatedUi_) { if (this.enableUpdatedUi_) {
return; return;
} }
this.addWebUIListener(
'on-printers-changed', this.printersChanged_.bind(this));
}, },
/** @override */ /** @override */
...@@ -110,21 +103,6 @@ Polymer({ ...@@ -110,21 +103,6 @@ Polymer({
this.updateCupsPrintersList_(); this.updateCupsPrintersList_();
}, },
/**
* settings.RouteObserverBehavior
* @param {!settings.Route} route
* @protected
*/
currentRouteChanged: function(route) {
if (route != settings.routes.CUPS_PRINTERS) {
cr.removeWebUIListener('on-printers-changed');
return;
}
cr.addWebUIListener(
'on-printers-changed', this.onPrintersChanged_.bind(this));
},
/** /**
* CrosNetworkConfigObserver impl * CrosNetworkConfigObserver impl
* @param {!Array<chromeos.networkConfig.mojom.NetworkStateProperties>} * @param {!Array<chromeos.networkConfig.mojom.NetworkStateProperties>}
...@@ -152,13 +130,21 @@ Polymer({ ...@@ -152,13 +130,21 @@ Polymer({
const printerName = event.detail.printerName; const printerName = event.detail.printerName;
switch (event.detail.resultCode) { switch (event.detail.resultCode) {
case PrinterSetupResult.SUCCESS: case PrinterSetupResult.SUCCESS:
if (this.enableUpdatedUi_) {
this.$$('#savedPrinters').updateSavedPrintersList();
} else {
this.updateCupsPrintersList_(); this.updateCupsPrintersList_();
}
this.addPrinterResultText_ = this.addPrinterResultText_ =
loadTimeData.getStringF('printerAddedSuccessfulMessage', loadTimeData.getStringF('printerAddedSuccessfulMessage',
printerName); printerName);
break; break;
case PrinterSetupResult.EDIT_SUCCESS: case PrinterSetupResult.EDIT_SUCCESS:
if (this.enableUpdatedUi_) {
this.$$('#savedPrinters').updateSavedPrintersList();
} else {
this.updateCupsPrintersList_(); this.updateCupsPrintersList_();
}
this.addPrinterResultText_ = this.addPrinterResultText_ =
loadTimeData.getStringF('printerEditedSuccessfulMessage', loadTimeData.getStringF('printerEditedSuccessfulMessage',
printerName); printerName);
...@@ -190,22 +176,15 @@ Polymer({ ...@@ -190,22 +176,15 @@ Polymer({
updateCupsPrintersList_: function() { updateCupsPrintersList_: function() {
settings.CupsPrintersBrowserProxyImpl.getInstance() settings.CupsPrintersBrowserProxyImpl.getInstance()
.getCupsPrintersList() .getCupsPrintersList()
.then(this.onPrintersChanged_.bind(this)); .then(this.printersChanged_.bind(this));
}, },
/** /**
* @param {!CupsPrintersList} cupsPrintersList * @param {!CupsPrintersList} cupsPrintersList
* @private * @private
*/ */
onPrintersChanged_: function(cupsPrintersList) { printersChanged_: function(cupsPrintersList) {
if (this.enableUpdatedUi_) {
this.savedPrinters_ = cupsPrintersList.printerList.map(
printer => /** @type {!PrinterListEntry} */({
printerInfo: printer,
printerType: PrinterType.SAVED}));
} else {
this.printers = cupsPrintersList.printerList; this.printers = cupsPrintersList.printerList;
}
}, },
/** @private */ /** @private */
...@@ -256,13 +235,5 @@ Polymer({ ...@@ -256,13 +235,5 @@ Polymer({
addPrinterButtonActive_: function( addPrinterButtonActive_: function(
connectedToNetwork, userNativePrintersAllowed) { connectedToNetwork, userNativePrintersAllowed) {
return connectedToNetwork && userNativePrintersAllowed; return connectedToNetwork && userNativePrintersAllowed;
},
/**
* @return {boolean} Whether |savedPrinters_| is empty.
* @private
*/
doesAccountHaveSavedPrinters_: function() {
return !!this.savedPrinters_.length;
} }
}); });
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</cr-action-menu> </cr-action-menu>
<style include="settings-shared"></style> <style include="settings-shared"></style>
<settings-cups-printers-entry-list printers="[[savedPrinters]]" <settings-cups-printers-entry-list printers="[[savedPrinters_]]"
search-term="[[searchTerm]]"> search-term="[[searchTerm]]">
</settings-cups-printers-entry-list> </settings-cups-printers-entry-list>
</template> </template>
......
...@@ -14,13 +14,17 @@ Polymer({ ...@@ -14,13 +14,17 @@ Polymer({
], ],
properties: { properties: {
/** @type {!Array<!PrinterListEntry>} */ /**
savedPrinters: { * @type {!Array<!PrinterListEntry>}
* @private
*/
savedPrinters_: {
type: Array, type: Array,
value: () => [],
}, },
/** /**
* Search term for filtering |savedPrinters|. * Search term for filtering |savedPrinters_|.
* @type {string} * @type {string}
*/ */
searchTerm: { searchTerm: {
...@@ -56,6 +60,35 @@ Polymer({ ...@@ -56,6 +60,35 @@ Polymer({
this.browserProxy_ = settings.CupsPrintersBrowserProxyImpl.getInstance(); this.browserProxy_ = settings.CupsPrintersBrowserProxyImpl.getInstance();
}, },
/** @override */
ready: function() {
this.addWebUIListener(
'on-printers-changed', this.printersChanged_.bind(this));
this.updateSavedPrintersList();
},
/** Public function to update the printer list. */
updateSavedPrintersList: function() {
settings.CupsPrintersBrowserProxyImpl.getInstance()
.getCupsPrintersList()
.then(this.printersChanged_.bind(this));
},
/**
* @param {!CupsPrintersList} cupsPrintersList
* @private
*/
printersChanged_: function(cupsPrintersList) {
if (!cupsPrintersList) {
return;
}
this.savedPrinters_ = cupsPrintersList.printerList.map(
printer => /** @type {!PrinterListEntry} */({
printerInfo: printer,
printerType: PrinterType.SAVED}));
},
/** /**
* @param {!CustomEvent<{target: !HTMLElement, item: !PrinterListEntry}>} e * @param {!CustomEvent<{target: !HTMLElement, item: !PrinterListEntry}>} e
* @private * @private
...@@ -63,10 +96,10 @@ Polymer({ ...@@ -63,10 +96,10 @@ Polymer({
onOpenActionMenu_: function(e) { onOpenActionMenu_: function(e) {
const item = /** @type {!PrinterListEntry} */(e.detail.item); const item = /** @type {!PrinterListEntry} */(e.detail.item);
this.activePrinterListEntryIndex_ = this.activePrinterListEntryIndex_ =
this.savedPrinters.findIndex( this.savedPrinters_.findIndex(
printer => printer.printerInfo == item.printerInfo); printer => printer.printerInfo == item.printerInfo);
this.activePrinter = this.activePrinter =
this.get(['savedPrinters', this.activePrinterListEntryIndex_]) this.get(['savedPrinters_', this.activePrinterListEntryIndex_])
.printerInfo; .printerInfo;
const target = /** @type {!HTMLElement} */ (e.detail.target); const target = /** @type {!HTMLElement} */ (e.detail.target);
...@@ -82,6 +115,7 @@ Polymer({ ...@@ -82,6 +115,7 @@ Polymer({
/** @private */ /** @private */
onRemoveTap_: function() { onRemoveTap_: function() {
this.splice('savedPrinters_', this.activePrinterListEntryIndex_, 1);
this.browserProxy_.removeCupsPrinter( this.browserProxy_.removeCupsPrinter(
this.activePrinter.printerId, this.activePrinter.printerName); this.activePrinter.printerId, this.activePrinter.printerName);
this.activePrinter = null; this.activePrinter = null;
......
...@@ -130,52 +130,34 @@ function verifyPrintersList(entryList, printerList) { ...@@ -130,52 +130,34 @@ function verifyPrintersList(entryList, printerList) {
} }
/** /**
* Removes a saved printer located at |index|. * Removes a saved printer located at |index| and then verify that saved
* printers list is updated accordingly.
* @param {!TestCupsPrintersBrowserProxy} cupsPrintersBrowserProxy * @param {!TestCupsPrintersBrowserProxy} cupsPrintersBrowserProxy
* @param {!HTMLElement} savedPrintersElement * @param {!HTMLElement} savedPrinters
* @param {!HTMLElement} entryList
* @param {!Array<!CupsPrinterInfo>} printerList
* @param {number} index * @param {number} index
* @return {!Promise} * @return {!Promise}
*/ */
function removePrinter(cupsPrintersBrowserProxy, savedPrintersElement, index) { function removeAndVerifyPrinters(
let printerList = cupsPrintersBrowserProxy.printerList.printerList; cupsPrintersBrowserProxy, savedPrinters, entryList, printerList, index) {
let savedPrinterEntries = getPrinterEntries(savedPrintersElement); clickThreeDotMenu(entryList[index]);
savedPrinters.$$('#removeButton').click();
clickThreeDotMenu(savedPrinterEntries[index]);
savedPrintersElement.$$('#removeButton').click();
return cupsPrintersBrowserProxy.whenCalled('removeCupsPrinter') return cupsPrintersBrowserProxy.whenCalled('removeCupsPrinter')
.then(function() { .then(function() {
// Simulate removing the printer from |cupsPrintersBrowserProxy|. // Simulate removing the printer from |cupsPrintersBrowserProxy|.
printerList.splice(index, 1); printerList.splice(index, 1);
// Simuluate saved printer changes.
cr.webUIListenerCallback(
'on-printers-changed', cupsPrintersBrowserProxy.printerList);
Polymer.dom.flush(); Polymer.dom.flush();
return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList');
})
.then(function() {
entryList = getPrinterEntries(savedPrinters);
verifyPrintersList(entryList, printerList);
}); });
} }
/**
* Removes all saved printers through recursion.
* @param {!TestCupsPrintersBrowserProxy} cupsPrintersBrowserProxy
* @param {!HTMLElement} savedPrintersElement
* @return {!Promise}
*/
function removeAllPrinters(cupsPrintersBrowserProxy, savedPrintersElement) {
let printerList = cupsPrintersBrowserProxy.printerList.printerList;
let savedPrinterEntries = getPrinterEntries(savedPrintersElement);
if (!printerList.length) {
return Promise.resolve();
}
return removePrinter(
cupsPrintersBrowserProxy, savedPrintersElement, 0 /* index */)
.then(test_util.flushTasks)
.then(removeAllPrinters.bind(
this, cupsPrintersBrowserProxy, savedPrintersElement));
}
/** /**
* @param {string} printerName * @param {string} printerName
* @param {string} printerAddress * @param {string} printerAddress
...@@ -255,8 +237,6 @@ suite('CupsSavedPrintersTests', function() { ...@@ -255,8 +237,6 @@ suite('CupsSavedPrintersTests', function() {
api_.enableNetworkType('WiFi'); api_.enableNetworkType('WiFi');
PolymerTest.clearBody(); PolymerTest.clearBody();
settings.navigateTo(settings.routes.CUPS_PRINTERS);
page = document.createElement('settings-cups-printers'); page = document.createElement('settings-cups-printers');
// Enable feature flag to show the new saved printers list. // Enable feature flag to show the new saved printers list.
// TODO(jimmyxgong): Remove this line when the feature flag is removed. // TODO(jimmyxgong): Remove this line when the feature flag is removed.
...@@ -265,6 +245,9 @@ suite('CupsSavedPrintersTests', function() { ...@@ -265,6 +245,9 @@ suite('CupsSavedPrintersTests', function() {
assertTrue(!!page); assertTrue(!!page);
Polymer.dom.flush(); Polymer.dom.flush();
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
}); });
teardown(function() { teardown(function() {
...@@ -277,15 +260,15 @@ suite('CupsSavedPrintersTests', function() { ...@@ -277,15 +260,15 @@ suite('CupsSavedPrintersTests', function() {
}); });
test('SavedPrintersSuccessfullyPopulates', function() { test('SavedPrintersSuccessfullyPopulates', function() {
// Wait for saved printers to populate.
return test_util.flushTasks().then(() => {
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
// List component contained by CupsSavedPrinters. // List component contained by CupsSavedPrinters.
const savedPrintersList = const savedPrintersList =
savedPrintersElement.$$('settings-cups-printers-entry-list'); savedPrintersElement.$$('settings-cups-printers-entry-list');
return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
.then(function() {
// Wait for saved printers to populate.
Polymer.dom.flush();
const printerListEntries = getPrinterEntries(savedPrintersElement); const printerListEntries = getPrinterEntries(savedPrintersElement);
verifyPrintersList(printerListEntries, printerList); verifyPrintersList(printerListEntries, printerList);
...@@ -295,45 +278,31 @@ suite('CupsSavedPrintersTests', function() { ...@@ -295,45 +278,31 @@ suite('CupsSavedPrintersTests', function() {
test('SuccessfullyRemoveMultipleSavedPrinters', function() { test('SuccessfullyRemoveMultipleSavedPrinters', function() {
let savedPrinterEntries = []; let savedPrinterEntries = [];
return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
.then(function() {
// Wait for saved printers to populate. // Wait for saved printers to populate.
return test_util.flushTasks() Polymer.dom.flush();
.then(() => {
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
return removeAllPrinters(
cupsPrintersBrowserProxy, savedPrintersElement);
})
.then(() => {
let entryList = getPrinterEntries(savedPrintersElement);
verifyPrintersList(entryList, printerList);
});
});
test('HideSavedPrintersWhenEmpty', function() {
// List component contained by CupsSavedPrinters.
let savedPrintersList = [];
let savedPrinterEntries = [];
// Wait for saved printers to populate.
return test_util.flushTasks()
.then(() => {
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
savedPrintersList =
savedPrintersElement.$$('settings-cups-printers-entry-list');
savedPrinterEntries = getPrinterEntries(savedPrintersElement); savedPrinterEntries = getPrinterEntries(savedPrintersElement);
verifyPrintersList(savedPrinterEntries, printerList); return removeAndVerifyPrinters(
cupsPrintersBrowserProxy, savedPrintersElement,
assertTrue(!!page.$$('#savedPrinters')); savedPrinterEntries, printerList, 1 /** index */);
return removeAllPrinters(
cupsPrintersBrowserProxy, savedPrintersElement);
}) })
.then(() => { .then(function() {
assertFalse(!!page.$$('#savedPrinters')); return removeAndVerifyPrinters(
cupsPrintersBrowserProxy, savedPrintersElement,
savedPrinterEntries, printerList, 0 /** index */);
})
.then(function() {
return removeAndVerifyPrinters(
cupsPrintersBrowserProxy, savedPrintersElement,
savedPrinterEntries, printerList, 1 /** index */);
})
.then(function() {
return removeAndVerifyPrinters(
cupsPrintersBrowserProxy, savedPrintersElement,
savedPrinterEntries, printerList, 0 /** index */);
}); });
}); });
...@@ -343,11 +312,10 @@ suite('CupsSavedPrintersTests', function() { ...@@ -343,11 +312,10 @@ suite('CupsSavedPrintersTests', function() {
let editDialog = null; let editDialog = null;
let savedPrinterEntries = null; let savedPrinterEntries = null;
return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
.then(function() {
// Wait for saved printers to populate. // Wait for saved printers to populate.
return test_util.flushTasks() Polymer.dom.flush();
.then(() => {
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
savedPrinterEntries = getPrinterEntries(savedPrintersElement); savedPrinterEntries = getPrinterEntries(savedPrintersElement);
...@@ -371,7 +339,7 @@ suite('CupsSavedPrintersTests', function() { ...@@ -371,7 +339,7 @@ suite('CupsSavedPrintersTests', function() {
return cupsPrintersBrowserProxy.whenCalled('updateCupsPrinter'); return cupsPrintersBrowserProxy.whenCalled('updateCupsPrinter');
}) })
.then(() => { .then(function() {
assertEquals(expectedName, editDialog.activePrinter.printerName); assertEquals(expectedName, editDialog.activePrinter.printerName);
// Mimic changes to |cupsPrintersBrowserProxy.printerList|. // Mimic changes to |cupsPrintersBrowserProxy.printerList|.
...@@ -388,11 +356,10 @@ suite('CupsSavedPrintersTests', function() { ...@@ -388,11 +356,10 @@ suite('CupsSavedPrintersTests', function() {
let savedPrinterEntries = null; let savedPrinterEntries = null;
let editDialog = null; let editDialog = null;
return cupsPrintersBrowserProxy.whenCalled('getCupsPrintersList')
.then(function() {
// Wait for saved printers to populate. // Wait for saved printers to populate.
return test_util.flushTasks() Polymer.dom.flush();
.then(() => {
savedPrintersElement = page.$$('settings-cups-saved-printers');
assertTrue(!!savedPrintersElement);
savedPrinterEntries = getPrinterEntries(savedPrintersElement); savedPrinterEntries = getPrinterEntries(savedPrintersElement);
...@@ -420,7 +387,7 @@ suite('CupsSavedPrintersTests', function() { ...@@ -420,7 +387,7 @@ suite('CupsSavedPrintersTests', function() {
return cupsPrintersBrowserProxy.whenCalled('reconfigureCupsPrinter'); return cupsPrintersBrowserProxy.whenCalled('reconfigureCupsPrinter');
}) })
.then(() => { .then(function() {
assertEquals(expectedName, editDialog.activePrinter.printerName); assertEquals(expectedName, editDialog.activePrinter.printerName);
assertEquals( assertEquals(
expectedAddress, editDialog.activePrinter.printerAddress); expectedAddress, editDialog.activePrinter.printerAddress);
...@@ -491,8 +458,6 @@ suite('CupsNearbyPrintersTests', function() { ...@@ -491,8 +458,6 @@ suite('CupsNearbyPrintersTests', function() {
setNetworksForTest(api_, activeNetworks_); setNetworksForTest(api_, activeNetworks_);
PolymerTest.clearBody(); PolymerTest.clearBody();
settings.navigateTo(settings.routes.CUPS_PRINTERS);
page = document.createElement('settings-cups-printers'); page = document.createElement('settings-cups-printers');
// Enable feature flag to show the new saved printers list. // Enable feature flag to show the new saved printers list.
// TODO(jimmyxgong): Remove this line when the feature flag is removed. // TODO(jimmyxgong): Remove this line when the feature flag is removed.
......
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