Chromium Code Reviews| Index: printing/emf_win_unittest.cc |
| diff --git a/printing/emf_win_unittest.cc b/printing/emf_win_unittest.cc |
| index 4312b2ca7c389549ab40b3626f1e2a6eff086edd..7aa8faa00f49afaebfd669bd4ba6fdc4d72d9b7c 100644 |
| --- a/printing/emf_win_unittest.cc |
| +++ b/printing/emf_win_unittest.cc |
| @@ -15,6 +15,7 @@ |
| #include "base/scoped_ptr.h" |
| #include "base/scoped_temp_dir.h" |
| #include "base/win/scoped_hdc.h" |
| +#include "printing/metafile_factory.h" |
| #include "printing/printing_context.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -195,3 +196,31 @@ TEST(EmfTest, FileBackedDC) { |
| emf.CloseEmf(); |
| } |
| +TEST(EmfTest, DCFactory) { |
|
vandebo (ex-Chrome)
2011/02/22 22:18:16
Maybe put this next to DC. You could pull out the
dpapad
2011/02/23 00:44:39
The unit test is basically identical, only the ini
|
| + // Simplest use case. |
| + scoped_ptr<printing::NativeMetafile> emf( |
| + printing::MetafileFactory::GetMetafile()); |
| + RECT rect = {100, 100, 200, 200}; |
| + HDC hdc = CreateCompatibleDC(NULL); |
| + EXPECT_TRUE(hdc != NULL); |
| + EXPECT_TRUE(emf->CreateDc(hdc, &rect)); |
| + EXPECT_TRUE(emf->hdc() != NULL); |
| + // In theory, you'd use the HDC with GDI functions here. |
| + EXPECT_TRUE(emf->CloseDc()); |
| + 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(); |
| + EXPECT_TRUE(DeleteDC(hdc)); |
| + |
| + // Playback the data. |
| + hdc = CreateCompatibleDC(NULL); |
| + EXPECT_TRUE(hdc); |
| + EXPECT_TRUE(emf>Init(&data.front(), size)); |
| + RECT output_rect = {0, 0, 10, 10}; |
| + EXPECT_TRUE(emf->Playback(hdc, &output_rect)); |
| + EXPECT_TRUE(DeleteDC(hdc)); |
| +} |
| + |