diff options
author | sanjeevr@chromium.org <sanjeevr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 21:39:45 +0000 |
---|---|---|
committer | sanjeevr@chromium.org <sanjeevr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 21:39:45 +0000 |
commit | e6cddc57b52f1d9fc848d76f7b2825add49f62bd (patch) | |
tree | c430ba0ee3cfb943efc3d293ee91ca3353d1ff2e /printing/emf_win_unittest.cc | |
parent | 1c608a40c01d1529840126b0af6cdcea286949b1 (diff) | |
download | chromium_src-e6cddc57b52f1d9fc848d76f7b2825add49f62bd.zip chromium_src-e6cddc57b52f1d9fc848d76f7b2825add49f62bd.tar.gz chromium_src-e6cddc57b52f1d9fc848d76f7b2825add49f62bd.tar.bz2 |
Added methods to create and read from file-backed metafiles to the Windows Emf class.
BUG=None
TEST=Unittests
Review URL: http://codereview.chromium.org/3538003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60994 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/emf_win_unittest.cc')
-rw-r--r-- | printing/emf_win_unittest.cc | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/printing/emf_win_unittest.cc b/printing/emf_win_unittest.cc index 3b4c473..4c1247b 100644 --- a/printing/emf_win_unittest.cc +++ b/printing/emf_win_unittest.cc @@ -33,11 +33,11 @@ class EmfPrintingTest : public testing::Test { } }; +const uint32 EMF_HEADER_SIZE = 128; + } // namespace TEST(EmfTest, DC) { - static const uint32 EMF_HEADER_SIZE = 128; - // Simplest use case. printing::Emf emf; RECT rect = {100, 100, 200, 200}; @@ -154,3 +154,36 @@ 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); + FilePath metafile_path; + EXPECT_TRUE(file_util::CreateTemporaryFile(&metafile_path)); + EXPECT_TRUE(emf.CreateFileBackedDc(hdc, &rect, metafile_path)); + 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(); + 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)); +} + |