Index: Source/web/tests/WebFrameTest.cpp |
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp |
index 61f5e826a1e251ed92d4b2fe13f6a26e11150824..a2261fc7dd95e4811121d378c6d09d5f940b2aeb 100644 |
--- a/Source/web/tests/WebFrameTest.cpp |
+++ b/Source/web/tests/WebFrameTest.cpp |
@@ -101,6 +101,7 @@ |
#include "public/web/WebFindOptions.h" |
#include "public/web/WebFormElement.h" |
#include "public/web/WebFrameClient.h" |
+#include "public/web/WebFrameWidget.h" |
#include "public/web/WebHistoryItem.h" |
#include "public/web/WebPrintParams.h" |
#include "public/web/WebRange.h" |
@@ -7591,6 +7592,40 @@ TEST_P(ParameterizedWebFrameTest, RemoteFrameInitialCommitType) |
view->close(); |
} |
+class GestureEventTestWebViewClient : public FrameTestHelpers::TestWebViewClient { |
+public: |
+ GestureEventTestWebViewClient() : m_didHandleGestureEvent(false) { } |
+ void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled) override { m_didHandleGestureEvent = true; } |
+ bool didHandleGestureEvent() const { return m_didHandleGestureEvent; } |
+ |
+private: |
+ bool m_didHandleGestureEvent; |
+}; |
+ |
+TEST_P(ParameterizedWebFrameTest, FrameWidgetTest) |
+{ |
+ FrameTestHelpers::TestWebViewClient viewClient; |
+ WebView* view = WebView::create(&viewClient); |
+ |
+ FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
+ view->setMainFrame(remoteClient.frame()); |
+ |
+ FrameTestHelpers::TestWebFrameClient childFrameClient; |
+ WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLocalChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient, nullptr); |
+ |
+ GestureEventTestWebViewClient childViewClient; |
+ WebFrameWidget* widget = WebFrameWidget::create(&childViewClient, childFrame); |
+ |
+ view->resize(WebSize(1000, 1000)); |
+ view->layout(); |
+ |
+ widget->handleInputEvent(fatTap(20, 20)); |
+ EXPECT_TRUE(childViewClient.didHandleGestureEvent()); |
+ |
+ widget->close(); |
+ view->close(); |
+} |
+ |
class MockDocumentThreadableLoaderClient : public DocumentThreadableLoaderClient { |
public: |
MockDocumentThreadableLoaderClient() : m_failed(false) { } |