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

Unified Diff: chrome/test/data/webui/print_preview_destination_search_test.js

Issue 2893003003: Print Preview: Merge NativeLayerStubs for tests (Closed)
Patch Set: Remove extra variable Created 3 years, 7 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
Index: chrome/test/data/webui/print_preview_destination_search_test.js
diff --git a/chrome/test/data/webui/print_preview_destination_search_test.js b/chrome/test/data/webui/print_preview_destination_search_test.js
deleted file mode 100644
index 3c4274af7e53347587ad1051da489e3faf05b6d8..0000000000000000000000000000000000000000
--- a/chrome/test/data/webui/print_preview_destination_search_test.js
+++ /dev/null
@@ -1,315 +0,0 @@
-// 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.
-
-var ROOT_PATH = '../../../../';
-
-GEN_INCLUDE(
- [ROOT_PATH + 'chrome/test/data/webui/polymer_browser_test_base.js']);
-
-/**
- * Test fixture for DestinationSearch of Print Preview.
- * @constructor
- * @extends {PolymerTest}
- */
-function PrintPreviewDestinationSearchTest() {}
-
-PrintPreviewDestinationSearchTest.prototype = {
- __proto__: PolymerTest.prototype,
-
- /** @override */
- browsePreload: 'chrome://print',
-
- /** @override */
- runAccessibilityChecks: false,
-
- /** @override */
- extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([
- ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js',
- ]),
-
-};
-
-TEST_F('PrintPreviewDestinationSearchTest', 'Select', function() {
- var self = this;
-
- suite('DestinationSearchTest', function() {
- var root_;
-
- var destinationSearch_;
- var nativeLayer_;
- var invitationStore_;
- var destinationStore_;
- var userInfo_;
-
- /**
- * Test version of the native layer.
- * TODO (rbpotter): Merge this with NativeLayerStub() from print_preview.js
- * and put into a separate file.
- * @constructor
- * @extends {settings.TestBrowserProxy}
- */
- function NativeLayerStub() {
- settings.TestBrowserProxy.call(this, [ 'setupPrinter' ]);
- this.destinationToWatch_ = '';
- this.eventTarget_ = mock(cr.EventTarget);
- this.getLocalDestinationCapabilitiesCallCount_ = 0;
- this.setupPrinterResponse_ = null;
- this.shouldReject_ = false;
- }
-
- NativeLayerStub.prototype = {
- __proto__: settings.TestBrowserProxy.prototype,
- didGetCapabilitiesOnce: function(destinationId) {
- return (destinationId == this.destinationToWatch_ &&
- this.getLocalDestinationCapabilitiesCallCount_ == 1);
- },
- getEventTarget: function() { return this.eventTarget_; },
- setDestinationToWatch: function(destinationId) {
- this.destinationToWatch_ = destinationId;
- this.getLocalDestinationCapabilitiesCallCount_ = 0;
- },
- setSetupPrinterResponse: function(reject, response) {
- this.shouldReject_ = reject;
- this.setupPrinterResponse_ = response;
- },
- setupPrinter: function(printerId) {
- this.methodCalled('setupPrinter', printerId);
- return this.shouldReject_ ?
- Promise.reject(this.setupPrinterResponse_) :
- Promise.resolve(this.setupPrinterResponse_);
- },
- startGetLocalDestinationCapabilities: function(destinationId) {
- if (destinationId == this.destinationToWatch_)
- this.getLocalDestinationCapabilitiesCallCount_++;
- },
- };
- NativeLayerStub.EventType = print_preview.NativeLayer.EventType;
-
- function getCaps() {
- return {
- 'printer': {
- 'color': {
- 'option': [{
- 'is_default': true,
- 'type': 'STANDARD_MONOCHROME',
- 'vendor_id': '13'
- }]
- },
- 'copies': {},
- 'duplex': {
- 'option': [
- {'type': 'NO_DUPLEX'}, {'is_default': true, 'type': 'LONG_EDGE'},
- {'type': 'SHORT_EDGE'}
- ]
- },
- 'media_size': {
- 'option': [
- {
- 'custom_display_name': 'na letter',
- 'height_microns': 279400,
- 'is_default': true,
- 'name': 'NA_LETTER',
- 'vendor_id': 'na_letter_8.5x11in',
- 'width_microns': 215900
- },
- {
- 'custom_display_name': 'na legal',
- 'height_microns': 355600,
- 'name': 'NA_LEGAL',
- 'vendor_id': 'na_legal_8.5x14in',
- 'width_microns': 215900
- }
- ]
- },
- 'page_orientation': {
- 'option': [
- {'is_default': true, 'type': 'PORTRAIT'}, {'type': 'LANDSCAPE'},
- {'type': 'AUTO'}
- ]
- },
- 'supported_content_type': [{'content_type': 'application/pdf'}]
- },
- 'version': '1.0'
- };
- };
-
- function waitForEvent(element, eventName) {
- return new Promise(function(resolve) {
- var listener = function(e) {
- resolve();
- element.removeEventListener(eventName, listener);
- };
-
- element.addEventListener(eventName, listener);
- });
- };
-
- function mockSetupCall(destId, nativeLayerMock) {
- assert (!cr.isChromeOS);
- nativeLayerMock.setDestinationToWatch(destId);
- var resolver = new PromiseResolver();
-
- resolver.promise.then(
- function(result) {
- // Simulate the native layer dispatching capabilities.
- var capsSetEvent =
- new Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
- capsSetEvent.settingsInfo = result;
- destinationStore_.onLocalDestinationCapabilitiesSet_(capsSetEvent);
- expectTrue(nativeLayerMock.didGetCapabilitiesOnce(destId));
- }.bind(this),
- function() {
- var failEvent = new Event(
- print_preview.NativeLayer.EventType.GET_CAPABILITIES_FAIL);
- failEvent.destinationId = destId;
- destinationStore_.onGetCapabilitiesFail_(failEvent);
- expectTrue(nativeLayerMock.didGetCapabilitiesOnce(destId));
- }.bind(this));
-
- return resolver;
- };
-
- function requestSetup(destId, destinationSearch) {
- var origin = cr.isChromeOS ? print_preview.DestinationOrigin.CROS :
- print_preview.DestinationOrigin.LOCAL;
-
- var dest = new print_preview.Destination(destId,
- print_preview.DestinationType.LOCAL,
- origin,
- "displayName",
- print_preview.DestinationConnectionStatus.ONLINE);
-
- // Add the destination to the list.
- destinationSearch.localList_.updateDestinations([dest]);
-
- // Select destination.
- if (cr.isChromeOS) {
- destinationSearch.handleConfigureDestination_(dest);
- } else {
- destinationSearch.handleOnDestinationSelect_(dest);
- }
- };
-
- setup(function() {
- Mock4JS.clearMocksToVerify();
- nativeLayer_ = new NativeLayerStub();
- var nativeLayerEventTarget = nativeLayer_.getEventTarget();
- nativeLayerEventTarget.expects(atLeastOnce())
- .addEventListener(ANYTHING, ANYTHING, ANYTHING);
-
- invitationStore_ = new print_preview.InvitationStore();
- var nativeLayerProxy = nativeLayer_;
- nativeLayerProxy.eventTarget_ = nativeLayerEventTarget.proxy();
- destinationStore_ = new print_preview.DestinationStore(
- nativeLayerProxy, new print_preview.UserInfo(),
- new print_preview.AppState());
- userInfo_ = new print_preview.UserInfo();
-
- destinationSearch_ = new print_preview.DestinationSearch(
- destinationStore_, invitationStore_, userInfo_);
- destinationSearch_.decorate($('destination-search'));
- });
-
- teardown(function() {
- Mock4JS.verifyAllMocks();
- });
-
- test('ResolutionFails', function() {
- var destId = "001122DEADBEEF";
- if (cr.isChromeOS) {
- nativeLayer_.setSetupPrinterResponse(true, { printerId: destId,
- success: false,});
- requestSetup(destId, destinationSearch_);
- return nativeLayer_.whenCalled('setupPrinter').then(
- function(actualDestId) {
- assertEquals(destId, actualDestId);
- });
- } else {
- var resolver = mockSetupCall(destId, nativeLayer_);
- requestSetup(destId, destinationSearch_);
- resolver.reject(destId);
- }
- });
-
- test('ReceiveSuccessfulSetup', function() {
- var destId = "00112233DEADBEEF";
- var response = {
- printerId: destId,
- capabilities: getCaps(),
- success: true,
- };
- if (cr.isChromeOS)
- nativeLayer_.setSetupPrinterResponse(false, response);
-
- var waiter = waitForEvent(
- destinationStore_,
- print_preview.DestinationStore.EventType.DESTINATION_SELECT);
- if (cr.isChromeOS) {
- requestSetup(destId, destinationSearch_);
- return Promise.all([
- nativeLayer_.whenCalled('setupPrinter'), waiter
- ]).then(function(results) {
- assertEquals(destId, results[0]);
-
- // after setup succeeds and event arrives, the destination should
- // be selected.
- assertNotEquals(null, destinationStore_.selectedDestination);
- assertEquals(destId, destinationStore_.selectedDestination.id);
- });
- } else { //!cr.isChromeOS
- var resolver = mockSetupCall(destId, nativeLayer_);
- requestSetup(destId, destinationSearch_);
- resolver.resolve(response);
- return waiter.then(function() {
- // after setup succeeds, the destination should be selected.
- assertNotEquals(null, destinationStore_.selectedDestination);
- assertEquals(destId, destinationStore_.selectedDestination.id);
- });
- }
- });
-
- if (cr.isChromeOS) {
- // The 'ResolutionFails' test covers this case for non-CrOS.
- test('ReceiveFailedSetup', function() {
- var destId = '00112233DEADBEEF';
- var response = {
- printerId: destId,
- capabilities: getCaps(),
- success: false,
- };
- nativeLayer_.setSetupPrinterResponse(false, response);
- requestSetup(destId, destinationSearch_);
- return nativeLayer_.whenCalled('setupPrinter').then(
- function (actualDestId) {
- // Selection should not change on ChromeOS.
- assertEquals(destId, actualDestId);
- assertEquals(null, destinationStore_.selectedDestination);
- });
- });
- }
-
- test('CloudKioskPrinter', function() {
- var printerId = 'cloud-printer-id';
-
- // Create cloud destination.
- var cloudDest = new print_preview.Destination(printerId,
- print_preview.DestinationType.GOOGLE,
- print_preview.DestinationOrigin.DEVICE,
- "displayName",
- print_preview.DestinationConnectionStatus.ONLINE);
- cloudDest.capabilities = getCaps();
-
- // Place destination in the local list as happens for Kiosk printers.
- destinationSearch_.localList_.updateDestinations([cloudDest]);
- var dest = destinationSearch_.localList_.getDestinationItem(printerId);
- // Simulate a click.
- dest.onActivate_();
-
- // Verify that the destination has been selected.
- assertEquals(printerId, destinationStore_.selectedDestination.id);
- });
- });
-
- mocha.run();
-});

Powered by Google App Engine
This is Rietveld 408576698