| Index: chrome/renderer/render_view_unittest.cc
|
| ===================================================================
|
| --- chrome/renderer/render_view_unittest.cc (revision 20864)
|
| +++ chrome/renderer/render_view_unittest.cc (working copy)
|
| @@ -3,10 +3,13 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/file_util.h"
|
| +#include "base/shared_memory.h"
|
| #include "chrome/common/native_web_keyboard_event.h"
|
| #include "chrome/common/render_messages.h"
|
| #include "chrome/test/render_view_test.h"
|
| #include "net/base/net_errors.h"
|
| +#include "printing/image.h"
|
| +#include "printing/native_metafile.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "webkit/api/public/WebURLError.h"
|
|
|
| @@ -363,6 +366,45 @@
|
| #endif
|
| }
|
|
|
| +TEST_F(RenderViewTest, PrintWithIframe) {
|
| +#if defined(OS_WIN)
|
| + // Document that populates an iframe..
|
| + const char html[] =
|
| + "<html><body>Lorem Ipsum:"
|
| + "<iframe name=\"sub1\" id=\"sub1\"></iframe><script>"
|
| + " document.write(frames['sub1'].name);"
|
| + " frames['sub1'].document.write("
|
| + " '<p>Cras tempus ante eu felis semper luctus!</p>');"
|
| + "</script></body></html>";
|
| +
|
| + LoadHTML(html);
|
| +
|
| + // Find the frame and set it as the focused one. This should mean that that
|
| + // the printout should only contain the contents of that frame.
|
| + WebFrame* sub1_frame = view_->webview()->GetFrameWithName(L"sub1");
|
| + ASSERT_TRUE(sub1_frame);
|
| + view_->webview()->SetFocusedFrame(sub1_frame);
|
| + ASSERT_NE(view_->webview()->GetFocusedFrame(),
|
| + view_->webview()->GetMainFrame());
|
| +
|
| + // Initiate printing.
|
| + view_->OnPrintPages();
|
| +
|
| + // Verify output through MockPrinter.
|
| + const MockPrinter* printer(render_thread_.printer());
|
| + ASSERT_EQ(1, printer->GetPrintedPages());
|
| + const printing::Image& image1(printer->GetPrintedPage(0)->image());
|
| +
|
| + // TODO(sverrir): Figure out a way to improve this test to actually print
|
| + // only the content of the iframe. Currently image1 will contain the full
|
| + // page.
|
| + EXPECT_NE(0, image1.size().width());
|
| + EXPECT_NE(0, image1.size().height());
|
| +#else
|
| + NOTIMPLEMENTED();
|
| +#endif
|
| +}
|
| +
|
| // Tests if we can print a page and verify its results.
|
| // This test prints HTML pages into a pseudo printer and check their outputs,
|
| // i.e. a simplified version of the PrintingLayoutTextTest UI test.
|
| @@ -431,14 +473,6 @@
|
| if (kTestPages[i].checksum)
|
| EXPECT_EQ(kTestPages[i].checksum, bitmap_actual);
|
|
|
| - // Retrieve the bitmap data from the pseudo printer.
|
| - // TODO(hbono): implement a function which retrieves an expected result
|
| - // from a file and compares it with this bitmap data.
|
| - const void* bitmap_data;
|
| - size_t bitmap_size;
|
| - EXPECT_TRUE(render_thread_.printer()->GetBitmap(0, &bitmap_data,
|
| - &bitmap_size));
|
| -
|
| if (baseline) {
|
| // Save the source data and the bitmap data into temporary files to
|
| // create base-line results.
|
|
|