| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 /** | 5 /** |
| 6 * Test fixture for print preview WebUI testing. | 6 * Test fixture for print preview WebUI testing. |
| 7 * @extends {testing.Test} | 7 * @extends {testing.Test} |
| 8 * @constructor | 8 * @constructor |
| 9 */ | 9 */ |
| 10 function PrintPreviewWebUITest() {} | 10 function PrintPreviewWebUITest() {} |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 /** | 22 /** |
| 23 * Register a mock handler to ensure expectations are met and print preview | 23 * Register a mock handler to ensure expectations are met and print preview |
| 24 * behaves correctly. | 24 * behaves correctly. |
| 25 * @type {Function} | 25 * @type {Function} |
| 26 * @override | 26 * @override |
| 27 */ | 27 */ |
| 28 preLoad: function() { | 28 preLoad: function() { |
| 29 // TODO(scr) remove this after tests pass consistently. | 29 // TODO(scr) remove this after tests pass consistently. |
| 30 console.info('preLoad'); | 30 console.info('preLoad'); |
| 31 | 31 |
| 32 /** | 32 this.makeAndRegisterMockHandler(['getDefaultPrinter', |
| 33 * Create a handler class with empty methods to allow mocking to register | 33 'getPrinters', |
| 34 * expectations and for registration of handlers with chrome.send. | 34 'getPreview', |
| 35 * @constructor | 35 'print', |
| 36 */ | 36 'getPrinterCapabilities', |
| 37 function MockPrintPreviewHandler() {} | 37 'showSystemDialog', |
| 38 'morePrinters', |
| 39 'signIn', |
| 40 'addCloudPrinter', |
| 41 'manageCloudPrinters', |
| 42 'manageLocalPrinters', |
| 43 'closePrintPreviewTab', |
| 44 'hidePreview', |
| 45 'cancelPendingPrintRequest', |
| 46 'saveLastPrinter', |
| 47 ]); |
| 38 | 48 |
| 39 MockPrintPreviewHandler.prototype = { | 49 // Register stubs for methods expected to be called before tests |
| 40 getDefaultPrinter: function() {}, | 50 // run. Specific expectations can be made in the tests themselves. |
| 41 getPrinters: function() {}, | 51 var mockHandler = this.mockHandler; |
| 42 getPreview: function(settings, draft_page_count, modifiable) {}, | |
| 43 print: function(settings) {}, | |
| 44 getPrinterCapabilities: function(printerName) {}, | |
| 45 showSystemDialog: function() {}, | |
| 46 morePrinters: function() {}, | |
| 47 signIn: function() {}, | |
| 48 addCloudPrinter: function() {}, | |
| 49 manageCloudPrinters: function() {}, | |
| 50 manageLocalPrinters: function() {}, | |
| 51 closePrintPreviewTab: function() {}, | |
| 52 hidePreview: function() {}, | |
| 53 cancelPendingPrintRequest: function() {}, | |
| 54 saveLastPrinter: function(name, cloud_print_data) {}, | |
| 55 }; | |
| 56 | |
| 57 // Create the actual mock and register stubs for methods expected to be | |
| 58 // called before tests run. Specific expectations can be made in the | |
| 59 // tests themselves. | |
| 60 var mockHandler = this.mockHandler = mock(MockPrintPreviewHandler); | |
| 61 mockHandler.stubs().getDefaultPrinter(). | 52 mockHandler.stubs().getDefaultPrinter(). |
| 62 will(callFunction(function() { | 53 will(callFunction(function() { |
| 63 setDefaultPrinter('FooDevice'); | 54 setDefaultPrinter('FooDevice'); |
| 64 })); | 55 })); |
| 65 mockHandler.stubs().getPrinterCapabilities(NOT_NULL). | 56 mockHandler.stubs().getPrinterCapabilities(NOT_NULL). |
| 66 will(callFunction(function() { | 57 will(callFunction(function() { |
| 67 updateWithPrinterCapabilities({ | 58 updateWithPrinterCapabilities({ |
| 68 disableColorOption: true, | 59 disableColorOption: true, |
| 69 setColorAsDefault: true, | 60 setColorAsDefault: true, |
| 70 disableCopiesOption: true, | 61 disableCopiesOption: true, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 82 setPrinters([{ | 73 setPrinters([{ |
| 83 printerName: 'FooName', | 74 printerName: 'FooName', |
| 84 deviceName: 'FooDevice', | 75 deviceName: 'FooDevice', |
| 85 }, { | 76 }, { |
| 86 printerName: 'BarName', | 77 printerName: 'BarName', |
| 87 deviceName: 'BarDevice', | 78 deviceName: 'BarDevice', |
| 88 }, | 79 }, |
| 89 ]); | 80 ]); |
| 90 })); | 81 })); |
| 91 | 82 |
| 92 // Register mock as a handler of the chrome.send messages. | 83 this.makeAndRegisterMockGlobals(['updateWithPrinterCapabilities']); |
| 93 registerMockMessageCallbacks(mockHandler, MockPrintPreviewHandler); | 84 var mockGlobals = this.mockGlobals; |
| 94 | |
| 95 /** | |
| 96 * Create a class to hold global functions to watch for. | |
| 97 * @constructor | |
| 98 */ | |
| 99 function MockGlobals() {} | |
| 100 | |
| 101 MockGlobals.prototype = { | |
| 102 updateWithPrinterCapabilities: function(settingInfo) {}, | |
| 103 }; | |
| 104 | |
| 105 var mockGlobals = this.mockGlobals = mock(MockGlobals); | |
| 106 mockGlobals.stubs().updateWithPrinterCapabilities( | 85 mockGlobals.stubs().updateWithPrinterCapabilities( |
| 107 savedArgs.match(ANYTHING)). | 86 savedArgs.match(ANYTHING)). |
| 108 will(callGlobalWithSavedArgs( | 87 will(callGlobalWithSavedArgs( |
| 109 savedArgs, 'updateWithPrinterCapabilities')); | 88 savedArgs, 'updateWithPrinterCapabilities')); |
| 110 | 89 |
| 111 // Register globals to mock out for us. | |
| 112 registerMockGlobals(mockGlobals, MockGlobals); | |
| 113 | |
| 114 // Override checkCompatiblePluginExists to return a value consistent with | 90 // Override checkCompatiblePluginExists to return a value consistent with |
| 115 // the state being tested and stub out the pdf viewer if it doesn't exist, | 91 // the state being tested and stub out the pdf viewer if it doesn't exist, |
| 116 // such as on non-official builds. When the plugin exists, use the real | 92 // such as on non-official builds. When the plugin exists, use the real |
| 117 // thing. | 93 // thing. |
| 118 var self = this; | 94 var self = this; |
| 119 window.addEventListener('DOMContentLoaded', function() { | 95 window.addEventListener('DOMContentLoaded', function() { |
| 120 if (!this.checkCompatiblePluginExists()) { | 96 if (!this.checkCompatiblePluginExists()) { |
| 121 // TODO(scr) remove this after tests pass consistently. | 97 // TODO(scr) remove this after tests pass consistently. |
| 122 console.info('no PDF Plugin; providing fake methods.'); | 98 console.info('no PDF Plugin; providing fake methods.'); |
| 123 this.createPDFPlugin = self.createPDFPlugin; | 99 this.createPDFPlugin = self.createPDFPlugin; |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 | 418 |
| 443 // Test that error message is displayed when plugin doesn't exist. | 419 // Test that error message is displayed when plugin doesn't exist. |
| 444 TEST_F('PrintPreviewNoPDFWebUITest', 'TestErrorMessage', function() { | 420 TEST_F('PrintPreviewNoPDFWebUITest', 'TestErrorMessage', function() { |
| 445 var errorButton = $('error-button'); | 421 var errorButton = $('error-button'); |
| 446 assertNotEquals(null, errorButton); | 422 assertNotEquals(null, errorButton); |
| 447 expectFalse(errorButton.disabled); | 423 expectFalse(errorButton.disabled); |
| 448 var errorText = $('custom-message'); | 424 var errorText = $('custom-message'); |
| 449 assertNotEquals(null, errorText); | 425 assertNotEquals(null, errorText); |
| 450 expectFalse(errorText.hidden); | 426 expectFalse(errorText.hidden); |
| 451 }); | 427 }); |
| OLD | NEW |