OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include <ocidl.h> |
| 6 #include <commdlg.h> |
| 7 |
| 8 #include <string> |
| 9 |
| 10 #include "base/scoped_ptr.h" |
| 11 #include "printing/printing_test.h" |
5 #include "printing/printing_context.h" | 12 #include "printing/printing_context.h" |
6 | 13 #include "printing/printing_context_win.h" |
7 #include "printing/printing_test.h" | |
8 #include "printing/print_settings.h" | 14 #include "printing/print_settings.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
10 | 16 |
11 // This test is automatically disabled if no printer is available. | 17 // This test is automatically disabled if no printer is available. |
12 class PrintingContextTest : public PrintingTest<testing::Test> { | 18 class PrintingContextTest : public PrintingTest<testing::Test> { |
13 public: | 19 public: |
14 void PrintSettingsCallback(printing::PrintingContext::Result result) { | 20 void PrintSettingsCallback(printing::PrintingContext::Result result) { |
15 result_ = result; | 21 result_ = result; |
16 } | 22 } |
17 | 23 |
(...skipping 21 matching lines...) Expand all Loading... |
39 // Painful paperwork. | 45 // Painful paperwork. |
40 std::wstring printer_name = PrintingContextTest::GetDefaultPrinter(); | 46 std::wstring printer_name = PrintingContextTest::GetDefaultPrinter(); |
41 HANDLE printer; | 47 HANDLE printer; |
42 if (!OpenPrinter(const_cast<wchar_t*>(printer_name.c_str()), &printer, NULL)) | 48 if (!OpenPrinter(const_cast<wchar_t*>(printer_name.c_str()), &printer, NULL)) |
43 return E_FAIL; | 49 return E_FAIL; |
44 | 50 |
45 scoped_array<uint8> buffer; | 51 scoped_array<uint8> buffer; |
46 DEVMODE* dev_mode = NULL; | 52 DEVMODE* dev_mode = NULL; |
47 PRINTER_INFO_2* info_2 = NULL; | 53 PRINTER_INFO_2* info_2 = NULL; |
48 | 54 |
49 printing::PrintingContext::GetPrinterHelper(printer, 2, &buffer); | 55 printing::PrintingContextWin::GetPrinterHelper(printer, 2, &buffer); |
50 if (buffer.get()) { | 56 if (buffer.get()) { |
51 info_2 = reinterpret_cast<PRINTER_INFO_2*>(buffer.get()); | 57 info_2 = reinterpret_cast<PRINTER_INFO_2*>(buffer.get()); |
52 if (info_2->pDevMode != NULL) | 58 if (info_2->pDevMode != NULL) |
53 dev_mode = info_2->pDevMode; | 59 dev_mode = info_2->pDevMode; |
54 } | 60 } |
55 if (!dev_mode) | 61 if (!dev_mode) |
56 return E_FAIL; | 62 return E_FAIL; |
57 | 63 |
58 if (!printing::PrintingContext::AllocateContext(printer_name, dev_mode, | 64 if (!printing::PrintingContextWin::AllocateContext(printer_name, dev_mode, |
59 &lppd->hDC)) { | 65 &lppd->hDC)) { |
60 return E_FAIL; | 66 return E_FAIL; |
61 } | 67 } |
62 | 68 |
63 size_t dev_mode_size = dev_mode->dmSize + dev_mode->dmDriverExtra; | 69 size_t dev_mode_size = dev_mode->dmSize + dev_mode->dmDriverExtra; |
64 lppd->hDevMode = GlobalAlloc(GMEM_MOVEABLE, dev_mode_size); | 70 lppd->hDevMode = GlobalAlloc(GMEM_MOVEABLE, dev_mode_size); |
65 if (!lppd->hDevMode) | 71 if (!lppd->hDevMode) |
66 return E_FAIL; | 72 return E_FAIL; |
67 void* dev_mode_ptr = GlobalLock(lppd->hDevMode); | 73 void* dev_mode_ptr = GlobalLock(lppd->hDevMode); |
68 if (!dev_mode_ptr) | 74 if (!dev_mode_ptr) |
(...skipping 26 matching lines...) Expand all Loading... |
95 GlobalUnlock(lppd->hDevNames); | 101 GlobalUnlock(lppd->hDevNames); |
96 | 102 |
97 return S_OK; | 103 return S_OK; |
98 } | 104 } |
99 | 105 |
100 TEST_F(PrintingContextTest, Base) { | 106 TEST_F(PrintingContextTest, Base) { |
101 printing::PrintSettings settings; | 107 printing::PrintSettings settings; |
102 | 108 |
103 settings.set_device_name(GetDefaultPrinter()); | 109 settings.set_device_name(GetDefaultPrinter()); |
104 // Initialize it. | 110 // Initialize it. |
105 printing::PrintingContext context; | 111 scoped_ptr<printing::PrintingContext> context( |
106 EXPECT_EQ(printing::PrintingContext::OK, context.InitWithSettings(settings)); | 112 printing::PrintingContext::Create()); |
| 113 EXPECT_EQ(printing::PrintingContext::OK, context->InitWithSettings(settings)); |
107 | 114 |
108 // The print may lie to use and may not support world transformation. | 115 // The print may lie to use and may not support world transformation. |
109 // Verify right now. | 116 // Verify right now. |
110 XFORM random_matrix = { 1, 0.1f, 0, 1.5f, 0, 1 }; | 117 XFORM random_matrix = { 1, 0.1f, 0, 1.5f, 0, 1 }; |
111 EXPECT_TRUE(SetWorldTransform(context.context(), &random_matrix)); | 118 EXPECT_TRUE(SetWorldTransform(context->context(), &random_matrix)); |
112 EXPECT_TRUE(ModifyWorldTransform(context.context(), NULL, MWT_IDENTITY)); | 119 EXPECT_TRUE(ModifyWorldTransform(context->context(), NULL, MWT_IDENTITY)); |
113 } | 120 } |
114 | 121 |
115 TEST_F(PrintingContextTest, PrintAll) { | 122 TEST_F(PrintingContextTest, PrintAll) { |
116 printing::PrintingContext context; | 123 printing::PrintingContextWin context; |
117 context.SetPrintDialog(&PrintDlgExMock); | 124 context.SetPrintDialog(&PrintDlgExMock); |
118 context.AskUserForSettings( | 125 context.AskUserForSettings( |
119 NULL, | 126 NULL, |
120 123, | 127 123, |
121 false, | 128 false, |
122 NewCallback(static_cast<PrintingContextTest*>(this), | 129 NewCallback(static_cast<PrintingContextTest*>(this), |
123 &PrintingContextTest::PrintSettingsCallback)); | 130 &PrintingContextTest::PrintSettingsCallback)); |
124 ASSERT_EQ(printing::PrintingContext::OK, result()); | 131 ASSERT_EQ(printing::PrintingContext::OK, result()); |
125 printing::PrintSettings settings = context.settings(); | 132 printing::PrintSettings settings = context.settings(); |
126 EXPECT_EQ(settings.ranges.size(), 0); | 133 EXPECT_EQ(settings.ranges.size(), 0); |
127 } | 134 } |
OLD | NEW |