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

Side by Side Diff: printing/emf_win_unittest.cc

Issue 568633002: Extracted MetafilePlayer interface from printing::MetafilePlayer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_expose
Patch Set: Thu Sep 11 22:54:16 PDT 2014 Created 6 years, 3 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 | « printing/emf_win.cc ('k') | printing/metafile.h » ('j') | 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 #include "printing/emf_win.h" 5 #include "printing/emf_win.h"
6 6
7 // For quick access. 7 // For quick access.
8 #include <wingdi.h> 8 #include <wingdi.h>
9 #include <winspool.h> 9 #include <winspool.h>
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 virtual std::string GetAppLocale() OVERRIDE { return std::string(); } 45 virtual std::string GetAppLocale() OVERRIDE { return std::string(); }
46 }; 46 };
47 47
48 const uint32 EMF_HEADER_SIZE = 128; 48 const uint32 EMF_HEADER_SIZE = 128;
49 49
50 } // namespace 50 } // namespace
51 51
52 TEST(EmfTest, DC) { 52 TEST(EmfTest, DC) {
53 // Simplest use case. 53 // Simplest use case.
54 uint32 size; 54 uint32 size;
55 std::vector<BYTE> data; 55 std::vector<char> data;
56 { 56 {
57 Emf emf; 57 Emf emf;
58 EXPECT_TRUE(emf.Init()); 58 EXPECT_TRUE(emf.Init());
59 EXPECT_TRUE(emf.context() != NULL); 59 EXPECT_TRUE(emf.context() != NULL);
60 // An empty EMF is invalid, so we put at least a rectangle in it. 60 // An empty EMF is invalid, so we put at least a rectangle in it.
61 ::Rectangle(emf.context(), 10, 10, 190, 190); 61 ::Rectangle(emf.context(), 10, 10, 190, 190);
62 EXPECT_TRUE(emf.FinishDocument()); 62 EXPECT_TRUE(emf.FinishDocument());
63 size = emf.GetDataSize(); 63 size = emf.GetDataSize();
64 EXPECT_GT(size, EMF_HEADER_SIZE); 64 EXPECT_GT(size, EMF_HEADER_SIZE);
65 EXPECT_TRUE(emf.GetDataAsVector(&data)); 65 EXPECT_TRUE(emf.GetDataAsVector(&data));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 context->DocumentDone(); 127 context->DocumentDone();
128 } 128 }
129 129
130 // Disabled if no "UnitTest printer" exists. 130 // Disabled if no "UnitTest printer" exists.
131 TEST_F(EmfPrintingTest, PageBreak) { 131 TEST_F(EmfPrintingTest, PageBreak) {
132 base::win::ScopedCreateDC dc( 132 base::win::ScopedCreateDC dc(
133 CreateDC(L"WINSPOOL", L"UnitTest Printer", NULL, NULL)); 133 CreateDC(L"WINSPOOL", L"UnitTest Printer", NULL, NULL));
134 if (!dc.Get()) 134 if (!dc.Get())
135 return; 135 return;
136 uint32 size; 136 uint32 size;
137 std::vector<BYTE> data; 137 std::vector<char> data;
138 { 138 {
139 Emf emf; 139 Emf emf;
140 EXPECT_TRUE(emf.Init()); 140 EXPECT_TRUE(emf.Init());
141 EXPECT_TRUE(emf.context() != NULL); 141 EXPECT_TRUE(emf.context() != NULL);
142 int pages = 3; 142 int pages = 3;
143 while (pages) { 143 while (pages) {
144 EXPECT_TRUE(emf.StartPage(gfx::Size(), gfx::Rect(), 1)); 144 EXPECT_TRUE(emf.StartPage(gfx::Size(), gfx::Rect(), 1));
145 ::Rectangle(emf.context(), 10, 10, 190, 190); 145 ::Rectangle(emf.context(), 10, 10, 190, 190);
146 EXPECT_TRUE(emf.FinishPage()); 146 EXPECT_TRUE(emf.FinishPage());
147 --pages; 147 --pages;
(...skipping 24 matching lines...) Expand all
172 } 172 }
173 173
174 TEST(EmfTest, FileBackedEmf) { 174 TEST(EmfTest, FileBackedEmf) {
175 // Simplest use case. 175 // Simplest use case.
176 base::ScopedTempDir scratch_metafile_dir; 176 base::ScopedTempDir scratch_metafile_dir;
177 ASSERT_TRUE(scratch_metafile_dir.CreateUniqueTempDir()); 177 ASSERT_TRUE(scratch_metafile_dir.CreateUniqueTempDir());
178 base::FilePath metafile_path; 178 base::FilePath metafile_path;
179 EXPECT_TRUE(base::CreateTemporaryFileInDir(scratch_metafile_dir.path(), 179 EXPECT_TRUE(base::CreateTemporaryFileInDir(scratch_metafile_dir.path(),
180 &metafile_path)); 180 &metafile_path));
181 uint32 size; 181 uint32 size;
182 std::vector<BYTE> data; 182 std::vector<char> data;
183 { 183 {
184 Emf emf; 184 Emf emf;
185 EXPECT_TRUE(emf.InitToFile(metafile_path)); 185 EXPECT_TRUE(emf.InitToFile(metafile_path));
186 EXPECT_TRUE(emf.context() != NULL); 186 EXPECT_TRUE(emf.context() != NULL);
187 // An empty EMF is invalid, so we put at least a rectangle in it. 187 // An empty EMF is invalid, so we put at least a rectangle in it.
188 ::Rectangle(emf.context(), 10, 10, 190, 190); 188 ::Rectangle(emf.context(), 10, 10, 190, 190);
189 EXPECT_TRUE(emf.FinishDocument()); 189 EXPECT_TRUE(emf.FinishDocument());
190 size = emf.GetDataSize(); 190 size = emf.GetDataSize();
191 EXPECT_GT(size, EMF_HEADER_SIZE); 191 EXPECT_GT(size, EMF_HEADER_SIZE);
192 EXPECT_TRUE(emf.GetDataAsVector(&data)); 192 EXPECT_TRUE(emf.GetDataAsVector(&data));
(...skipping 21 matching lines...) Expand all
214 for (int i = 0; i < 4; ++i) { 214 for (int i = 0; i < 4; ++i) {
215 RECT rect = { 5 + i, 5 + i, 5 + i + 1, 5 + i + 2}; 215 RECT rect = { 5 + i, 5 + i, 5 + i + 1, 5 + i + 2};
216 FillRect(emf.context(), &rect, brush); 216 FillRect(emf.context(), &rect, brush);
217 } 217 }
218 EXPECT_TRUE(emf.FinishDocument()); 218 EXPECT_TRUE(emf.FinishDocument());
219 219
220 scoped_ptr<Emf> raster(emf.RasterizeMetafile(1)); 220 scoped_ptr<Emf> raster(emf.RasterizeMetafile(1));
221 // Just 1px bitmap but should be stretched to the same bounds. 221 // Just 1px bitmap but should be stretched to the same bounds.
222 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1)); 222 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1));
223 223
224 raster.reset(emf.RasterizeMetafile(20)); 224 raster = emf.RasterizeMetafile(20);
225 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1)); 225 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1));
226 226
227 raster.reset(emf.RasterizeMetafile(16*1024*1024)); 227 raster = emf.RasterizeMetafile(16 * 1024 * 1024);
228 // Expected size about 64MB. 228 // Expected size about 64MB.
229 EXPECT_LE(abs(int(raster->GetDataSize()) - 64*1024*1024), 1024*1024); 229 EXPECT_LE(abs(int(raster->GetDataSize()) - 64 * 1024 * 1024), 1024 * 1024);
230 // Bounds should still be the same. 230 // Bounds should still be the same.
231 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1)); 231 EXPECT_EQ(emf.GetPageBounds(1), raster->GetPageBounds(1));
232 } 232 }
233 233
234 } // namespace printing 234 } // namespace printing
OLDNEW
« no previous file with comments | « printing/emf_win.cc ('k') | printing/metafile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698