Chromium Code Reviews| Index: Source/web/tests/WebFrameTest.cpp |
| diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp |
| index 890bb5b1ca09794147879f80db02198e4e1c44e2..50be111779fa3078fb25ccbac4d19dec67c7c3e6 100644 |
| --- a/Source/web/tests/WebFrameTest.cpp |
| +++ b/Source/web/tests/WebFrameTest.cpp |
| @@ -57,6 +57,7 @@ |
| #include "core/rendering/RenderView.h" |
| #include "core/rendering/TextAutosizer.h" |
| #include "core/rendering/compositing/RenderLayerCompositor.h" |
| +#include "platform/DragImage.h" |
| #include "platform/UserGestureIndicator.h" |
| #include "platform/geometry/FloatRect.h" |
| #include "platform/network/ResourceError.h" |
| @@ -5449,4 +5450,57 @@ TEST_F(WebFrameTest, NotifyManifestChange) |
| EXPECT_EQ(14, webFrameClient.manifestChangeCount()); |
| } |
| +TEST_F(WebFrameTest, NodeImageTest) |
| +{ |
| + registerMockedHttpURLLoad("nodeimage.html"); |
| + |
| + FixedLayoutTestWebViewClient client; |
| + client.m_screenInfo.deviceScaleFactor = 1; |
| + int viewportWidth = 100; |
| + int viewportHeight = 100; |
| + |
| + FrameTestHelpers::WebViewHelper webViewHelper; |
| + webViewHelper.initializeAndLoad(m_baseURL + "nodeimage.html", true, 0, &client); |
| + webViewHelper.webView()->settings()->setViewportEnabled(true); |
| + webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| + webViewHelper.webView()->layout(); |
| + |
| + |
| + RefPtr<WebCore::LocalFrame> frame = webViewHelper.webViewImpl()->page()->mainFrame(); |
| + |
| + // Sub Test 1 |
| + { |
|
esprehn
2014/06/04 18:13:45
I think it's preferable to split the test into two
spartha
2014/06/05 07:48:55
Done.
|
| + SkBitmap bitmap; |
| + ASSERT_TRUE(bitmap.allocN32Pixels(40, 40)); |
| + SkCanvas canvas(bitmap); |
| + canvas.drawColor(SK_ColorGREEN); |
| + WebCore::Element* element = frame->document()->getElementById("case-css-transform"); |
| + OwnPtr<WebCore::DragImage> dragImage = frame->nodeImage(*element); |
| + EXPECT_TRUE(dragImage); |
| + EXPECT_EQ(40, dragImage->size().width()); |
| + EXPECT_EQ(40, dragImage->size().height()); |
| + const SkBitmap& dragBitmap = dragImage->bitmap(); |
| + SkAutoLockPixels lockPixel(dragBitmap); |
| + EXPECT_EQ(0, memcmp(bitmap.getPixels(), dragBitmap.getPixels(), bitmap.getSize())); |
| + } |
| + |
| + // Sub Test 2 |
| + { |
| + SkBitmap bitmap; |
| + SkPaint paint; |
| + ASSERT_TRUE(bitmap.allocN32Pixels(20, 40)); |
| + SkCanvas canvas(bitmap); |
| + canvas.drawColor(SK_ColorGREEN); |
| + WebCore::Element* element = frame->document()->getElementById("case-css-3dtransform"); |
| + OwnPtr<WebCore::DragImage> dragImage = frame->nodeImage(*element); |
| + EXPECT_TRUE(dragImage); |
| + EXPECT_EQ(20, dragImage->size().width()); |
| + EXPECT_EQ(40, dragImage->size().height()); |
| + const SkBitmap& dragBitmap = dragImage->bitmap(); |
| + SkAutoLockPixels lockPixel(dragBitmap); |
| + EXPECT_EQ(0, memcmp(bitmap.getPixels(), dragBitmap.getPixels(), bitmap.getSize())); |
| + } |
| + |
| +} |
| + |
| } // namespace |