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

Side by Side Diff: chrome/test/data/webui/print_preview.js

Issue 2833993004: Print Preview: Make generate draft mode work again. (Closed)
Patch Set: Check NativeLayerStub 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/webui/print_preview/print_preview_handler.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 GEN('#include "base/feature_list.h"'); 5 GEN('#include "base/feature_list.h"');
6 GEN('#include "chrome/common/chrome_features.h"'); 6 GEN('#include "chrome/common/chrome_features.h"');
7 7
8 /** 8 /**
9 * Test fixture for print preview WebUI testing. 9 * Test fixture for print preview WebUI testing.
10 * @constructor 10 * @constructor
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 * Stub out low-level functionality like the NativeLayer and 77 * Stub out low-level functionality like the NativeLayer and
78 * CloudPrintInterface. 78 * CloudPrintInterface.
79 * @this {PrintPreviewWebUITest} 79 * @this {PrintPreviewWebUITest}
80 * @override 80 * @override
81 */ 81 */
82 preLoad: function() { 82 preLoad: function() {
83 window.addEventListener('DOMContentLoaded', function() { 83 window.addEventListener('DOMContentLoaded', function() {
84 function NativeLayerStub() { 84 function NativeLayerStub() {
85 cr.EventTarget.call(this); 85 cr.EventTarget.call(this);
86 this.printStarted_ = false; 86 this.printStarted_ = false;
87 this.generateDraft_ = false;
87 } 88 }
88 NativeLayerStub.prototype = { 89 NativeLayerStub.prototype = {
89 __proto__: cr.EventTarget.prototype, 90 __proto__: cr.EventTarget.prototype,
90 isPrintStarted: function() { return this.printStarted_; }, 91 isPrintStarted: function() { return this.printStarted_; },
92 generateDraft: function() { return this.generateDraft_; },
91 previewReadyForTest: function() {}, 93 previewReadyForTest: function() {},
92 startGetInitialSettings: function() {}, 94 startGetInitialSettings: function() {},
93 startGetLocalDestinations: function() {}, 95 startGetLocalDestinations: function() {},
94 startGetPrivetDestinations: function() {}, 96 startGetPrivetDestinations: function() {},
95 startGetExtensionDestinations: function() {}, 97 startGetExtensionDestinations: function() {},
96 startGetLocalDestinationCapabilities: function(destinationId) {}, 98 startGetLocalDestinationCapabilities: function(destinationId) {},
97 startGetPreview: function() {}, 99 startGetPreview: function(destination, printTicketStore, documentInfo,
100 generateDraft, requestId) {
101 this.generateDraft_ = generateDraft;
102 },
98 startHideDialog: function () {}, 103 startHideDialog: function () {},
99 startPrint: function () { this.printStarted_ = true; } 104 startPrint: function () { this.printStarted_ = true; }
100 }; 105 };
101 var oldNativeLayerEventType = print_preview.NativeLayer.EventType; 106 var oldNativeLayerEventType = print_preview.NativeLayer.EventType;
102 var oldDuplexMode = print_preview.NativeLayer.DuplexMode; 107 var oldDuplexMode = print_preview.NativeLayer.DuplexMode;
103 print_preview.NativeLayer = NativeLayerStub; 108 print_preview.NativeLayer = NativeLayerStub;
104 print_preview.NativeLayer.EventType = oldNativeLayerEventType; 109 print_preview.NativeLayer.EventType = oldNativeLayerEventType;
105 print_preview.NativeLayer.DuplexMode = oldDuplexMode; 110 print_preview.NativeLayer.DuplexMode = oldDuplexMode;
106 111
107 function CloudPrintInterfaceStub() { 112 function CloudPrintInterfaceStub() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 * Dispatch the SETTINGS_INVALID event. This call is NOT async and will 175 * Dispatch the SETTINGS_INVALID event. This call is NOT async and will
171 * happen in the same thread. 176 * happen in the same thread.
172 */ 177 */
173 dispatchInvalidSettings: function() { 178 dispatchInvalidSettings: function() {
174 var invalidSettingsEvent = 179 var invalidSettingsEvent =
175 new Event(print_preview.NativeLayer.EventType.SETTINGS_INVALID); 180 new Event(print_preview.NativeLayer.EventType.SETTINGS_INVALID);
176 this.nativeLayer_.dispatchEvent(invalidSettingsEvent); 181 this.nativeLayer_.dispatchEvent(invalidSettingsEvent);
177 }, 182 },
178 183
179 /** 184 /**
180 * @return {boolean} Whether the UI has/has not "printed" (called startPrint 185 * @return {boolean} Whether the UI has "printed" or not. (called startPrint
181 * on the native layer). 186 * on the native layer)
182 */ 187 */
183 hasPrinted: function() { 188 hasPrinted: function() {
184 return this.nativeLayer_.isPrintStarted(); 189 return this.nativeLayer_.isPrintStarted();
185 }, 190 },
186 191
187 /** 192 /**
193 * @return {boolean} Whether the UI is "generating draft" in the most recent
194 * preview. (checking the result of the startGetPreview call in the native
195 * layer)
196 */
197 generateDraft: function() {
198 return this.nativeLayer_.generateDraft();
199 },
200
201 /**
188 * Even though animation duration and delay is set to zero, it is necessary to 202 * Even though animation duration and delay is set to zero, it is necessary to
189 * wait until the animation has finished. 203 * wait until the animation has finished.
190 */ 204 */
191 waitForAnimationToEnd: function(elementId) { 205 waitForAnimationToEnd: function(elementId) {
192 // add a listener for the animation end event 206 // add a listener for the animation end event
193 document.addEventListener('animationend', function f(e) { 207 document.addEventListener('animationend', function f(e) {
194 if (e.target.id == elementId) { 208 if (e.target.id == elementId) {
195 document.removeEventListener(f, 'animationend'); 209 document.removeEventListener(f, 'animationend');
196 testDone(); 210 testDone();
197 } 211 }
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1442 this.dispatchPreviewDone(); 1456 this.dispatchPreviewDone();
1443 1457
1444 // Has active print button and successfully "prints", indicating recovery 1458 // Has active print button and successfully "prints", indicating recovery
1445 // from error state. 1459 // from error state.
1446 expectFalse(printButton.disabled); 1460 expectFalse(printButton.disabled);
1447 expectFalse(this.hasPrinted()); 1461 expectFalse(this.hasPrinted());
1448 printButton.click(); 1462 printButton.click();
1449 expectTrue(this.hasPrinted()); 1463 expectTrue(this.hasPrinted());
1450 testDone(); 1464 testDone();
1451 }); 1465 });
1466
1467 // Test the preview generator to make sure the generate draft parameter is set
1468 // correctly. It should be false if the only change is the page range.
1469 TEST_F('PrintPreviewWebUITest', 'TestGenerateDraft', function() {
1470 // Use a real preview generator.
1471 printPreview.previewArea_.previewGenerator_ =
1472 new print_preview.PreviewGenerator(printPreview.destinationStore_,
1473 printPreview.printTicketStore_, this.nativeLayer_,
1474 printPreview.documentInfo_);
1475
1476 this.setInitialSettings();
1477 this.setLocalDestinations();
1478 this.setCapabilities(getCddTemplate("FooDevice"));
1479
1480 // The first request should generate draft because there was no previous print
1481 // preview draft.
1482 expectTrue(this.generateDraft());
1483
1484 // Change the page range - no new draft needed.
1485 printPreview.printTicketStore_.pageRange.updateValue("2");
1486 expectFalse(this.generateDraft());
dpapad 2017/05/05 18:28:49 Thanks. This looks good for now. Eventually when w
1487
1488 // Change the margin type - need to regenerate again.
1489 printPreview.printTicketStore_.marginsType.updateValue(
1490 print_preview.ticket_items.MarginsTypeValue.NO_MARGINS);
1491 expectTrue(this.generateDraft());
1492
1493 testDone();
1494 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/print_preview/print_preview_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698