| Index: printing/emf_win_unittest.cc
|
| diff --git a/printing/emf_win_unittest.cc b/printing/emf_win_unittest.cc
|
| index 9ae9323aa211f90beac68d070ed7f7fe2a04c341..ee439ce725c74f6d106bcae650948e3d02bdb722 100644
|
| --- a/printing/emf_win_unittest.cc
|
| +++ b/printing/emf_win_unittest.cc
|
| @@ -43,26 +43,26 @@ namespace printing {
|
|
|
| TEST(EmfTest, DC) {
|
| // Simplest use case.
|
| - printing::Emf emf;
|
| - RECT rect = {100, 100, 200, 200};
|
| - HDC hdc = CreateCompatibleDC(NULL);
|
| - EXPECT_TRUE(hdc != NULL);
|
| - EXPECT_TRUE(emf.CreateDc(hdc, &rect));
|
| - EXPECT_TRUE(emf.context() != NULL);
|
| - // In theory, you'd use the HDC with GDI functions here.
|
| - EXPECT_TRUE(emf.Close());
|
| - uint32 size = emf.GetDataSize();
|
| - EXPECT_EQ(size, EMF_HEADER_SIZE);
|
| + uint32 size;
|
| std::vector<BYTE> data;
|
| - EXPECT_TRUE(emf.GetData(&data));
|
| - EXPECT_EQ(data.size(), size);
|
| - emf.CloseEmf();
|
| - EXPECT_TRUE(DeleteDC(hdc));
|
| + {
|
| + printing::Emf emf;
|
| + EXPECT_TRUE(emf.Init());
|
| + EXPECT_TRUE(emf.context() != NULL);
|
| + // An empty EMF is invalid, so we put at least a rectangle in it.
|
| + ::Rectangle(emf.context(), 10, 10, 190, 190);
|
| + EXPECT_TRUE(emf.Close());
|
| + size = emf.GetDataSize();
|
| + EXPECT_GT(size, EMF_HEADER_SIZE);
|
| + EXPECT_TRUE(emf.GetData(&data));
|
| + EXPECT_EQ(data.size(), size);
|
| + }
|
|
|
| // Playback the data.
|
| - hdc = CreateCompatibleDC(NULL);
|
| - EXPECT_TRUE(hdc);
|
| + printing::Emf emf;
|
| EXPECT_TRUE(emf.Init(&data.front(), size));
|
| + HDC hdc = CreateCompatibleDC(NULL);
|
| + EXPECT_TRUE(hdc);
|
| RECT output_rect = {0, 0, 10, 10};
|
| EXPECT_TRUE(emf.Playback(hdc, &output_rect));
|
| EXPECT_TRUE(DeleteDC(hdc));
|
| @@ -126,28 +126,31 @@ TEST_F(EmfPrintingTest, PageBreak) {
|
| CreateDC(L"WINSPOOL", L"UnitTest Printer", NULL, NULL));
|
| if (!dc.Get())
|
| return;
|
| - printing::Emf emf;
|
| - EXPECT_TRUE(emf.CreateDc(dc.Get(), NULL));
|
| - EXPECT_TRUE(emf.context() != NULL);
|
| - int pages = 3;
|
| - while (pages) {
|
| - EXPECT_TRUE(emf.StartPage());
|
| - ::Rectangle(emf.context(), 10, 10, 190, 190);
|
| - EXPECT_TRUE(emf.FinishPage());
|
| - --pages;
|
| - }
|
| - EXPECT_TRUE(emf.Close());
|
| - uint32 size = emf.GetDataSize();
|
| + uint32 size;
|
| std::vector<BYTE> data;
|
| - EXPECT_TRUE(emf.GetData(&data));
|
| - EXPECT_EQ(data.size(), size);
|
| - emf.CloseEmf();
|
| + {
|
| + printing::Emf emf;
|
| + EXPECT_TRUE(emf.Init());
|
| + EXPECT_TRUE(emf.context() != NULL);
|
| + int pages = 3;
|
| + while (pages) {
|
| + EXPECT_TRUE(emf.StartPage());
|
| + ::Rectangle(emf.context(), 10, 10, 190, 190);
|
| + EXPECT_TRUE(emf.FinishPage());
|
| + --pages;
|
| + }
|
| + EXPECT_TRUE(emf.Close());
|
| + size = emf.GetDataSize();
|
| + EXPECT_TRUE(emf.GetData(&data));
|
| + EXPECT_EQ(data.size(), size);
|
| + }
|
|
|
| // Playback the data.
|
| DOCINFO di = {0};
|
| di.cbSize = sizeof(DOCINFO);
|
| di.lpszDocName = L"Test Job";
|
| int job_id = ::StartDoc(dc.Get(), &di);
|
| + printing::Emf emf;
|
| EXPECT_TRUE(emf.Init(&data.front(), size));
|
| EXPECT_TRUE(emf.SafePlayback(dc.Get()));
|
| ::EndDoc(dc.Get());
|
| @@ -160,41 +163,4 @@ TEST_F(EmfPrintingTest, PageBreak) {
|
| }
|
| }
|
|
|
| -TEST(EmfTest, FileBackedDC) {
|
| - // Simplest use case.
|
| - printing::Emf emf;
|
| - RECT rect = {100, 100, 200, 200};
|
| - HDC hdc = CreateCompatibleDC(NULL);
|
| - EXPECT_TRUE(hdc != NULL);
|
| - ScopedTempDir scratch_metafile_dir;
|
| - ASSERT_TRUE(scratch_metafile_dir.CreateUniqueTempDir());
|
| - FilePath metafile_path;
|
| - EXPECT_TRUE(file_util::CreateTemporaryFileInDir(scratch_metafile_dir.path(),
|
| - &metafile_path));
|
| - EXPECT_TRUE(emf.CreateFileBackedDc(hdc, &rect, metafile_path));
|
| - EXPECT_TRUE(emf.context() != NULL);
|
| - // In theory, you'd use the HDC with GDI functions here.
|
| - EXPECT_TRUE(emf.Close());
|
| -
|
| - uint32 size = emf.GetDataSize();
|
| - EXPECT_EQ(size, EMF_HEADER_SIZE);
|
| - std::vector<BYTE> data;
|
| - EXPECT_TRUE(emf.GetData(&data));
|
| - EXPECT_EQ(data.size(), size);
|
| - emf.CloseEmf();
|
| - int64 file_size = 0;
|
| - file_util::GetFileSize(metafile_path, &file_size);
|
| - EXPECT_EQ(size, file_size);
|
| - EXPECT_TRUE(DeleteDC(hdc));
|
| -
|
| - // Playback the data.
|
| - hdc = CreateCompatibleDC(NULL);
|
| - EXPECT_TRUE(hdc);
|
| - EXPECT_TRUE(emf.CreateFromFile(metafile_path));
|
| - RECT output_rect = {0, 0, 10, 10};
|
| - EXPECT_TRUE(emf.Playback(hdc, &output_rect));
|
| - EXPECT_TRUE(DeleteDC(hdc));
|
| - emf.CloseEmf();
|
| -}
|
| -
|
| } // namespace printing
|
|
|