| Index: Source/web/tests/WebFrameTest.cpp
|
| diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp
|
| index aea50cc6e42b7ef5c439679e625a94f4f36614c0..ed11fc78f0b8e24011ba46f929469af072f9df80 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"
|
| @@ -5395,4 +5396,42 @@ TEST_F(WebFrameTest, NotifyManifestChange)
|
| EXPECT_EQ(14, webFrameClient.manifestChangeCount());
|
| }
|
|
|
| +TEST_F(WebFrameTest, DragDropTest)
|
| +{
|
| + UseMockScrollbarSettings mockScrollbarSettings;
|
| + registerMockedHttpURLLoad("drag-drop.html");
|
| +
|
| + FixedLayoutTestWebViewClient client;
|
| + client.m_screenInfo.deviceScaleFactor = 1;
|
| + int viewportWidth = 200;
|
| + int viewportHeight = 200;
|
| +
|
| + FrameTestHelpers::WebViewHelper webViewHelper;
|
| + webViewHelper.initializeAndLoad(m_baseURL + "drag-drop.html", true, 0, &client);
|
| + // FIXME: This test breaks if the viewport is enabled before loading the page due to the paint
|
| + // calls below not working on composited layers. For some reason, enabling the viewport here
|
| + // doesn't cause compositing
|
| + webViewHelper.webView()->settings()->setViewportEnabled(true);
|
| + webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
|
| + webViewHelper.webView()->layout();
|
| +
|
| + SkBitmap bitmap;
|
| + ASSERT_TRUE(bitmap.allocN32Pixels(80, 80));
|
| + SkCanvas canvas(bitmap);
|
| + canvas.drawColor(SK_ColorGREEN);
|
| +
|
| + RefPtr<WebCore::LocalFrame> frame = webViewHelper.webViewImpl()->page()->mainFrame();
|
| + WebCore::Element* element = frame->document()->getElementById("drag");
|
| + OwnPtr<WebCore::DragImage> dragImage = frame->nodeImage(*element);
|
| + EXPECT_TRUE(dragImage);
|
| + EXPECT_EQ(80, dragImage->size().width());
|
| + EXPECT_EQ(80, dragImage->size().height());
|
| + const SkBitmap& dragBitmap = dragImage->bitmap();
|
| + ASSERT_EQ(bitmap.bytesPerPixel(), dragBitmap.bytesPerPixel());
|
| + SkAutoLockPixels lockPixel(dragBitmap);
|
| + ASSERT_TRUE(bitmap.getPixels());
|
| + EXPECT_FALSE(dragBitmap.drawsNothing());
|
| + EXPECT_EQ(0, memcmp(bitmap.getPixels(), dragBitmap.getPixels(), bitmap.rowBytes() * 80));
|
| +}
|
| +
|
| } // namespace
|
|
|