Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
#include "gtest/gtest.h"
#include "mozilla/MouseEvents.h"
#include "mozilla/dom/MouseEventBinding.h"
#include "TestWidgetEventCtors.h"
namespace mozilla {
/**
* WidgetMouseEvent has custom copy constructor which do not copy some members
* intentionally. Therefore, its subclass uses it by default so that some
* members are not copied by the copy constructor even if the subclass defines a
* move constructor. On the other hand, the assignment operators are not
* defined. Therefore, assignment operators are the default one, which assigns
* everything.
*/
TEST(WidgetMouseEventCtorTests, WidgetMouseEvent)
{
WidgetMouseEvent origin(true, eMouseDown, nullptr);
// WidgetInputEvent
origin.mModifiers = Modifier::MODIFIER_NUMLOCK;
// WidgetMouseEventBase
origin.mPressure = 0.4f;
origin.mButton = MouseButton::eMiddle;
origin.mButtons = MouseButtonsFlag::eMiddleFlag;
origin.mInputSource = dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE;
// WidgetPointerHelper
origin.pointerId = 3;
origin.mTilt = Some(WidgetPointerHelper::Tilt{1, 2});
origin.twist = 5;
origin.mAngle = Some(WidgetPointerHelper::Angle{0.4, 0.8});
origin.tangentialPressure = 0.7;
origin.convertToPointer = false;
origin.convertToPointerRawUpdate = false;
// WidgetMouseEvent
origin.mReason = WidgetMouseEvent::eSynthesized;
origin.mContextMenuTrigger = WidgetMouseEvent::eContextMenuKey;
origin.mIgnoreRootScrollFrame = true;
origin.mIgnoreCapturingContent = true;
origin.mClickEventPrevented = true;
origin.mSynthesizeMoveAfterDispatch = true;
origin.mCallbackId = Some(256);
{
WidgetMouseEvent copy(origin);
EXPECT_EQ(copy.mMessage, origin.mMessage) << "CopyCtor: mMessage";
EXPECT_EQ(copy.mClass, origin.mClass) << "CopyCtor: mClass";
EXPECT_EQ(copy.mModifiers, origin.mModifiers) << "CopyCtor: mModifiers";
EXPECT_EQ(copy.mPressure, origin.mPressure) << "CopyCtor: mPressure";
EXPECT_EQ(copy.mButton, origin.mButton) << "CopyCtor: mButton";
EXPECT_EQ(copy.mButtons, origin.mButtons) << "CopyCtor: mButtons";
EXPECT_EQ(copy.mInputSource, origin.mInputSource)
<< "CopyCtor: mInputSource";
EXPECT_EQ(copy.pointerId, origin.pointerId) << "CopyCtor: pointerId";
EXPECT_EQ(copy.mTilt, origin.mTilt) << "CopyCtor: mTilt";
EXPECT_EQ(copy.twist, origin.twist) << "CopyCtor: twist";
EXPECT_EQ(copy.mAngle, origin.mAngle) << "CopyCtor: mAngle";
EXPECT_EQ(copy.tangentialPressure, origin.tangentialPressure)
<< "CopyCtor: tangentialPressure";
EXPECT_EQ(copy.convertToPointer, origin.convertToPointer)
<< "CopyCtor: convertToPointer";
EXPECT_EQ(copy.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "CopyCtor: convertToPointerRawUpdate";
EXPECT_EQ(copy.mReason, origin.mReason) << "CopyCtor: mReason";
EXPECT_EQ(copy.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "CopyCtor: mContextMenuTrigger";
EXPECT_EQ(copy.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "CopyCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(copy.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "CopyCtor: mIgnoreCapturingContent";
EXPECT_EQ(copy.mClickEventPrevented, origin.mClickEventPrevented)
<< "CopyCtor: mClickEventPrevented";
EXPECT_EQ(copy.mSynthesizeMoveAfterDispatch, false)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(copy.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(copy.mCallbackId, Nothing{}) << "CopyCtor: mCallbackId";
EXPECT_NE(copy.mCallbackId, origin.mCallbackId) << "CopyCtor: mCallbackId";
}
{
WidgetMouseEvent assigned(true, eMouseUp, nullptr);
assigned = origin;
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Copy): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Copy): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Copy): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Copy): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Copy): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Copy): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Copy): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Copy): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Copy): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Copy): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Copy): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Copy): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Copy): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Copy): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Copy): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Copy): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Copy): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Copy): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Copy): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Copy): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Copy): mCallbackId";
}
{
WidgetMouseEvent originToBeMoved(true, eMouseDown, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetMouseEvent move(std::move(originToBeMoved));
EXPECT_EQ(move.mMessage, origin.mMessage) << "MoveCtor: mMessage";
EXPECT_EQ(move.mClass, origin.mClass) << "MoveCtor: mClass";
EXPECT_EQ(move.mModifiers, origin.mModifiers) << "MoveCtor: mModifiers";
EXPECT_EQ(move.mPressure, origin.mPressure) << "MoveCtor: mPressure";
EXPECT_EQ(move.mButton, origin.mButton) << "MoveCtor: mButton";
EXPECT_EQ(move.mButtons, origin.mButtons) << "MoveCtor: mButtons";
EXPECT_EQ(move.mInputSource, origin.mInputSource)
<< "MoveCtor: mInputSource";
EXPECT_EQ(move.pointerId, origin.pointerId) << "MoveCtor: pointerId";
EXPECT_EQ(move.mTilt, origin.mTilt) << "MoveCtor: mTilt";
EXPECT_EQ(move.twist, origin.twist) << "MoveCtor: twist";
EXPECT_EQ(move.mAngle, origin.mAngle) << "MoveCtor: mAngle";
EXPECT_EQ(move.tangentialPressure, origin.tangentialPressure)
<< "MoveCtor: tangentialPressure";
EXPECT_EQ(move.convertToPointer, origin.convertToPointer)
<< "MoveCtor: convertToPointer";
EXPECT_EQ(move.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "MoveCtor: convertToPointerRawUpdate";
EXPECT_EQ(move.mReason, origin.mReason) << "MoveCtor: mReason";
EXPECT_EQ(move.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "MoveCtor: mContextMenuTrigger";
EXPECT_EQ(move.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "MoveCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(move.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "MoveCtor: mIgnoreCapturingContent";
EXPECT_EQ(move.mClickEventPrevented, origin.mClickEventPrevented)
<< "MoveCtor: mClickEventPrevented";
EXPECT_EQ(move.mSynthesizeMoveAfterDispatch, false)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(move.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(move.mCallbackId, Nothing{}) << "MoveCtor: mCallbackId";
EXPECT_NE(move.mCallbackId, origin.mCallbackId) << "MoveCtor: mCallbackId";
}
{
WidgetMouseEvent originToBeMoved(true, eMouseDown, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetMouseEvent assigned(true, eMouseUp, nullptr);
assigned = std::move(originToBeMoved);
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Move): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Move): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Move): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Move): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Move): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Move): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Move): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Move): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Move): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Move): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Move): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Move): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Move): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Move): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Move): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Move): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Move): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Move): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Move): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Move): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Move): mCallbackId";
}
}
TEST(WidgetMouseEventCtorTests, WidgetDragEvent)
{
WidgetDragEvent origin(true, eDragStart, nullptr);
// WidgetInputEvent
origin.mModifiers = Modifier::MODIFIER_NUMLOCK;
// WidgetMouseEventBase
origin.mPressure = 0.4f;
origin.mButton = MouseButton::eMiddle;
origin.mButtons = MouseButtonsFlag::eMiddleFlag;
origin.mInputSource = dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE;
// WidgetPointerHelper
origin.pointerId = 3;
origin.mTilt = Some(WidgetPointerHelper::Tilt{1, 2});
origin.twist = 5;
origin.mAngle = Some(WidgetPointerHelper::Angle{0.4, 0.8});
origin.tangentialPressure = 0.7;
origin.convertToPointer = false;
origin.convertToPointerRawUpdate = false;
// WidgetMouseEvent
origin.mReason = WidgetMouseEvent::eSynthesized;
origin.mContextMenuTrigger = WidgetMouseEvent::eContextMenuKey;
origin.mIgnoreRootScrollFrame = true;
origin.mIgnoreCapturingContent = true;
origin.mClickEventPrevented = true;
origin.mSynthesizeMoveAfterDispatch = true;
origin.mCallbackId = Some(256);
// WidgetDragEvent
origin.mUserCancelled = true;
origin.mDefaultPreventedOnContent = true;
origin.mInHTMLEditorEventListener = true;
{
WidgetDragEvent copy(origin);
EXPECT_EQ(copy.mMessage, origin.mMessage) << "CopyCtor: mMessage";
EXPECT_EQ(copy.mClass, origin.mClass) << "CopyCtor: mClass";
EXPECT_EQ(copy.mModifiers, origin.mModifiers) << "CopyCtor: mModifiers";
EXPECT_EQ(copy.mPressure, origin.mPressure) << "CopyCtor: mPressure";
EXPECT_EQ(copy.mButton, origin.mButton) << "CopyCtor: mButton";
EXPECT_EQ(copy.mButtons, origin.mButtons) << "CopyCtor: mButtons";
EXPECT_EQ(copy.mInputSource, origin.mInputSource)
<< "CopyCtor: mInputSource";
EXPECT_EQ(copy.pointerId, origin.pointerId) << "CopyCtor: pointerId";
EXPECT_EQ(copy.mTilt, origin.mTilt) << "CopyCtor: mTilt";
EXPECT_EQ(copy.twist, origin.twist) << "CopyCtor: twist";
EXPECT_EQ(copy.mAngle, origin.mAngle) << "CopyCtor: mAngle";
EXPECT_EQ(copy.tangentialPressure, origin.tangentialPressure)
<< "CopyCtor: tangentialPressure";
EXPECT_EQ(copy.convertToPointer, origin.convertToPointer)
<< "CopyCtor: convertToPointer";
EXPECT_EQ(copy.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "CopyCtor: convertToPointerRawUpdate";
EXPECT_EQ(copy.mReason, origin.mReason) << "CopyCtor: mReason";
EXPECT_EQ(copy.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "CopyCtor: mContextMenuTrigger";
EXPECT_EQ(copy.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "CopyCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(copy.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "CopyCtor: mIgnoreCapturingContent";
EXPECT_EQ(copy.mClickEventPrevented, origin.mClickEventPrevented)
<< "CopyCtor: mClickEventPrevented";
EXPECT_EQ(copy.mSynthesizeMoveAfterDispatch, false)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(copy.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(copy.mCallbackId, Nothing{}) << "CopyCtor: mCallbackId";
EXPECT_NE(copy.mCallbackId, origin.mCallbackId) << "CopyCtor: mCallbackId";
EXPECT_EQ(copy.mUserCancelled, origin.mUserCancelled)
<< "CopyCtor: mUserCancelled";
EXPECT_EQ(copy.mDefaultPreventedOnContent,
origin.mDefaultPreventedOnContent)
<< "CopyCtor: mDefaultPreventedOnContent";
EXPECT_EQ(copy.mInHTMLEditorEventListener,
origin.mInHTMLEditorEventListener)
<< "CopyCtor: mInHTMLEditorEventListener";
}
{
WidgetDragEvent assigned(true, eDragEnd, nullptr);
assigned = origin;
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Copy): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Copy): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Copy): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Copy): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Copy): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Copy): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Copy): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Copy): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Copy): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Copy): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Copy): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Copy): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Copy): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Copy): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Copy): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Copy): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Copy): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Copy): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Copy): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Copy): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Copy): mCallbackId";
EXPECT_EQ(assigned.mUserCancelled, origin.mUserCancelled)
<< "Assignment(Copy): mUserCancelled";
EXPECT_EQ(assigned.mDefaultPreventedOnContent,
origin.mDefaultPreventedOnContent)
<< "Assignment(Copy): mDefaultPreventedOnContent";
EXPECT_EQ(assigned.mInHTMLEditorEventListener,
origin.mInHTMLEditorEventListener)
<< "Assignment(Copy): mInHTMLEditorEventListener";
}
{
WidgetDragEvent originToBeMoved(true, eDragStart, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetDragEvent move(std::move(originToBeMoved));
EXPECT_EQ(move.mMessage, origin.mMessage) << "MoveCtor: mMessage";
EXPECT_EQ(move.mClass, origin.mClass) << "MoveCtor: mClass";
EXPECT_EQ(move.mModifiers, origin.mModifiers) << "MoveCtor: mModifiers";
EXPECT_EQ(move.mPressure, origin.mPressure) << "MoveCtor: mPressure";
EXPECT_EQ(move.mButton, origin.mButton) << "MoveCtor: mButton";
EXPECT_EQ(move.mButtons, origin.mButtons) << "MoveCtor: mButtons";
EXPECT_EQ(move.mInputSource, origin.mInputSource)
<< "MoveCtor: mInputSource";
EXPECT_EQ(move.pointerId, origin.pointerId) << "MoveCtor: pointerId";
EXPECT_EQ(move.mTilt, origin.mTilt) << "MoveCtor: mTilt";
EXPECT_EQ(move.twist, origin.twist) << "MoveCtor: twist";
EXPECT_EQ(move.mAngle, origin.mAngle) << "MoveCtor: mAngle";
EXPECT_EQ(move.tangentialPressure, origin.tangentialPressure)
<< "MoveCtor: tangentialPressure";
EXPECT_EQ(move.convertToPointer, origin.convertToPointer)
<< "MoveCtor: convertToPointer";
EXPECT_EQ(move.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "MoveCtor: convertToPointerRawUpdate";
EXPECT_EQ(move.mReason, origin.mReason) << "MoveCtor: mReason";
EXPECT_EQ(move.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "MoveCtor: mContextMenuTrigger";
EXPECT_EQ(move.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "MoveCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(move.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "MoveCtor: mIgnoreCapturingContent";
EXPECT_EQ(move.mClickEventPrevented, origin.mClickEventPrevented)
<< "MoveCtor: mClickEventPrevented";
EXPECT_EQ(move.mSynthesizeMoveAfterDispatch, false)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(move.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(move.mCallbackId, Nothing{}) << "MoveCtor: mCallbackId";
EXPECT_NE(move.mCallbackId, origin.mCallbackId) << "MoveCtor: mCallbackId";
EXPECT_EQ(move.mUserCancelled, origin.mUserCancelled)
<< "MoveCtor: mUserCancelled";
EXPECT_EQ(move.mDefaultPreventedOnContent,
origin.mDefaultPreventedOnContent)
<< "MoveCtor: mDefaultPreventedOnContent";
EXPECT_EQ(move.mInHTMLEditorEventListener,
origin.mInHTMLEditorEventListener)
<< "MoveCtor: mInHTMLEditorEventListener";
}
{
WidgetDragEvent originToBeMoved(true, eDragStart, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetDragEvent assigned(true, eDragEnd, nullptr);
assigned = std::move(originToBeMoved);
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Move): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Move): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Move): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Move): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Move): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Move): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Move): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Move): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Move): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Move): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Move): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Move): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Move): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Move): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Move): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Move): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Move): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Move): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Move): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Move): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Move): mCallbackId";
EXPECT_EQ(assigned.mUserCancelled, origin.mUserCancelled)
<< "Assignment(Move): mUserCancelled";
EXPECT_EQ(assigned.mDefaultPreventedOnContent,
origin.mDefaultPreventedOnContent)
<< "Assignment(Move): mDefaultPreventedOnContent";
EXPECT_EQ(assigned.mInHTMLEditorEventListener,
origin.mInHTMLEditorEventListener)
<< "Assignment(Move): mInHTMLEditorEventListener";
}
}
TEST(WidgetMouseEventCtorTests, WidgetPointerEvent)
{
WidgetPointerEvent origin(true, ePointerDown, nullptr);
// WidgetInputEvent
origin.mModifiers = Modifier::MODIFIER_NUMLOCK;
// WidgetMouseEventBase
origin.mPressure = 0.4f;
origin.mButton = MouseButton::eMiddle;
origin.mButtons = MouseButtonsFlag::eMiddleFlag;
origin.mInputSource = dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE;
// WidgetPointerHelper
origin.pointerId = 3;
origin.mTilt = Some(WidgetPointerHelper::Tilt{1, 2});
origin.twist = 5;
origin.mAngle = Some(WidgetPointerHelper::Angle{0.4, 0.8});
origin.tangentialPressure = 0.7;
origin.convertToPointer = false;
origin.convertToPointerRawUpdate = false;
// WidgetMouseEvent
origin.mReason = WidgetMouseEvent::eSynthesized;
origin.mContextMenuTrigger = WidgetMouseEvent::eContextMenuKey;
origin.mIgnoreRootScrollFrame = true;
origin.mIgnoreCapturingContent = true;
origin.mClickEventPrevented = true;
origin.mSynthesizeMoveAfterDispatch = true;
origin.mCallbackId = Some(256);
// WidgetPointerEvent
origin.mWidth = 1.5;
origin.mHeight = 1.6;
origin.mIsPrimary = false;
origin.mFromTouchEvent = true;
{
WidgetPointerEvent copy(origin);
EXPECT_EQ(copy.mMessage, origin.mMessage) << "CopyCtor: mMessage";
EXPECT_EQ(copy.mClass, origin.mClass) << "CopyCtor: mClass";
EXPECT_EQ(copy.mModifiers, origin.mModifiers) << "CopyCtor: mModifiers";
EXPECT_EQ(copy.mPressure, origin.mPressure) << "CopyCtor: mPressure";
EXPECT_EQ(copy.mButton, origin.mButton) << "CopyCtor: mButton";
EXPECT_EQ(copy.mButtons, origin.mButtons) << "CopyCtor: mButtons";
EXPECT_EQ(copy.mInputSource, origin.mInputSource)
<< "CopyCtor: mInputSource";
EXPECT_EQ(copy.pointerId, origin.pointerId) << "CopyCtor: pointerId";
EXPECT_EQ(copy.mTilt, origin.mTilt) << "CopyCtor: mTilt";
EXPECT_EQ(copy.twist, origin.twist) << "CopyCtor: twist";
EXPECT_EQ(copy.mAngle, origin.mAngle) << "CopyCtor: mAngle";
EXPECT_EQ(copy.tangentialPressure, origin.tangentialPressure)
<< "CopyCtor: tangentialPressure";
EXPECT_EQ(copy.convertToPointer, origin.convertToPointer)
<< "CopyCtor: convertToPointer";
EXPECT_EQ(copy.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "CopyCtor: convertToPointerRawUpdate";
EXPECT_EQ(copy.mReason, origin.mReason) << "CopyCtor: mReason";
EXPECT_EQ(copy.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "CopyCtor: mContextMenuTrigger";
EXPECT_EQ(copy.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "CopyCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(copy.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "CopyCtor: mIgnoreCapturingContent";
EXPECT_EQ(copy.mClickEventPrevented, origin.mClickEventPrevented)
<< "CopyCtor: mClickEventPrevented";
EXPECT_EQ(copy.mSynthesizeMoveAfterDispatch, false)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(copy.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "CopyCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(copy.mCallbackId, Nothing{}) << "CopyCtor: mCallbackId";
EXPECT_NE(copy.mCallbackId, origin.mCallbackId) << "CopyCtor: mCallbackId";
EXPECT_EQ(copy.mWidth, origin.mWidth) << "CopyCtor: mWidth";
EXPECT_EQ(copy.mHeight, origin.mHeight) << "CopyCtor: mHeight";
EXPECT_EQ(copy.mIsPrimary, origin.mIsPrimary) << "CopyCtor: mIsPrimary";
EXPECT_EQ(copy.mFromTouchEvent, origin.mFromTouchEvent)
<< "CopyCtor: mFromTouchEvent";
}
{
WidgetPointerEvent assigned(true, ePointerUp, nullptr);
assigned = origin;
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Copy): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Copy): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Copy): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Copy): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Copy): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Copy): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Copy): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Copy): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Copy): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Copy): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Copy): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Copy): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Copy): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Copy): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Copy): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Copy): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Copy): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Copy): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Copy): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Copy): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Copy): mCallbackId";
EXPECT_EQ(assigned.mWidth, origin.mWidth) << "Assignment(Copy): mWidth";
EXPECT_EQ(assigned.mHeight, origin.mHeight) << "Assignment(Copy): mHeight";
EXPECT_EQ(assigned.mIsPrimary, origin.mIsPrimary)
<< "Assignment(Copy): mIsPrimary";
EXPECT_EQ(assigned.mFromTouchEvent, origin.mFromTouchEvent)
<< "Assignment(Copy): mFromTouchEvent";
}
{
WidgetPointerEvent originToBeMoved(true, ePointerDown, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetPointerEvent move(std::move(originToBeMoved));
EXPECT_EQ(move.mMessage, origin.mMessage) << "MoveCtor: mMessage";
EXPECT_EQ(move.mClass, origin.mClass) << "MoveCtor: mClass";
EXPECT_EQ(move.mModifiers, origin.mModifiers) << "MoveCtor: mModifiers";
EXPECT_EQ(move.mPressure, origin.mPressure) << "MoveCtor: mPressure";
EXPECT_EQ(move.mButton, origin.mButton) << "MoveCtor: mButton";
EXPECT_EQ(move.mButtons, origin.mButtons) << "MoveCtor: mButtons";
EXPECT_EQ(move.mInputSource, origin.mInputSource)
<< "MoveCtor: mInputSource";
EXPECT_EQ(move.pointerId, origin.pointerId) << "MoveCtor: pointerId";
EXPECT_EQ(move.mTilt, origin.mTilt) << "MoveCtor: mTilt";
EXPECT_EQ(move.twist, origin.twist) << "MoveCtor: twist";
EXPECT_EQ(move.mAngle, origin.mAngle) << "MoveCtor: mAngle";
EXPECT_EQ(move.tangentialPressure, origin.tangentialPressure)
<< "MoveCtor: tangentialPressure";
EXPECT_EQ(move.convertToPointer, origin.convertToPointer)
<< "MoveCtor: convertToPointer";
EXPECT_EQ(move.convertToPointerRawUpdate, origin.convertToPointerRawUpdate)
<< "MoveCtor: convertToPointerRawUpdate";
EXPECT_EQ(move.mReason, origin.mReason) << "MoveCtor: mReason";
EXPECT_EQ(move.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "MoveCtor: mContextMenuTrigger";
EXPECT_EQ(move.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "MoveCtor: mIgnoreRootScrollFrame";
EXPECT_EQ(move.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "MoveCtor: mIgnoreCapturingContent";
EXPECT_EQ(move.mClickEventPrevented, origin.mClickEventPrevented)
<< "MoveCtor: mClickEventPrevented";
EXPECT_EQ(move.mSynthesizeMoveAfterDispatch, false)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_NE(move.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "MoveCtor: mSynthesizeMoveAfterDispatch";
EXPECT_EQ(move.mCallbackId, Nothing{}) << "MoveCtor: mCallbackId";
EXPECT_NE(move.mCallbackId, origin.mCallbackId) << "MoveCtor: mCallbackId";
EXPECT_EQ(move.mWidth, origin.mWidth) << "MoveCtor: mWidth";
EXPECT_EQ(move.mHeight, origin.mHeight) << "MoveCtor: mHeight";
EXPECT_EQ(move.mIsPrimary, origin.mIsPrimary) << "MoveCtor: mIsPrimary";
EXPECT_EQ(move.mFromTouchEvent, origin.mFromTouchEvent)
<< "MoveCtor: mFromTouchEvent";
}
{
WidgetPointerEvent originToBeMoved(true, ePointerDown, nullptr);
CompletelyCopy(origin, originToBeMoved);
WidgetPointerEvent assigned(true, ePointerUp, nullptr);
assigned = std::move(originToBeMoved);
EXPECT_EQ(assigned.mMessage, origin.mMessage)
<< "Assignment(Move): mMessage";
EXPECT_EQ(assigned.mClass, origin.mClass) << "Assignment(Move): mClass";
EXPECT_EQ(assigned.mModifiers, origin.mModifiers)
<< "Assignment(Move): mModifiers";
EXPECT_EQ(assigned.mPressure, origin.mPressure)
<< "Assignment(Move): mPressure";
EXPECT_EQ(assigned.mButton, origin.mButton) << "Assignment(Move): mButton";
EXPECT_EQ(assigned.mButtons, origin.mButtons)
<< "Assignment(Move): mButtons";
EXPECT_EQ(assigned.mInputSource, origin.mInputSource)
<< "Assignment(Move): mInputSource";
EXPECT_EQ(assigned.pointerId, origin.pointerId)
<< "Assignment(Move): pointerId";
EXPECT_EQ(assigned.mTilt, origin.mTilt) << "Assignment(Move): mTilt";
EXPECT_EQ(assigned.twist, origin.twist) << "Assignment(Move): twist";
EXPECT_EQ(assigned.mAngle, origin.mAngle) << "Assignment(Move): mAngle";
EXPECT_EQ(assigned.tangentialPressure, origin.tangentialPressure)
<< "Assignment(Move): tangentialPressure";
EXPECT_EQ(assigned.convertToPointer, origin.convertToPointer)
<< "Assignment(Move): convertToPointer";
EXPECT_EQ(assigned.convertToPointerRawUpdate,
origin.convertToPointerRawUpdate)
<< "Assignment(Move): convertToPointerRawUpdate";
EXPECT_EQ(assigned.mReason, origin.mReason) << "Assignment(Move): mReason";
EXPECT_EQ(assigned.mContextMenuTrigger, origin.mContextMenuTrigger)
<< "Assignment(Move): mContextMenuTrigger";
EXPECT_EQ(assigned.mIgnoreRootScrollFrame, origin.mIgnoreRootScrollFrame)
<< "Assignment(Move): mIgnoreRootScrollFrame";
EXPECT_EQ(assigned.mIgnoreCapturingContent, origin.mIgnoreCapturingContent)
<< "Assignment(Move): mIgnoreCapturingContent";
EXPECT_EQ(assigned.mClickEventPrevented, origin.mClickEventPrevented)
<< "Assignment(Move): mClickEventPrevented";
EXPECT_EQ(assigned.mSynthesizeMoveAfterDispatch,
origin.mSynthesizeMoveAfterDispatch)
<< "Assignment(Move): mSynthesizeMoveAfterDispatch";
EXPECT_EQ(assigned.mCallbackId, origin.mCallbackId)
<< "Assignment(Move): mCallbackId";
EXPECT_EQ(assigned.mWidth, origin.mWidth) << "Assignment(Move): mWidth";
EXPECT_EQ(assigned.mHeight, origin.mHeight) << "Assignment(Move): mHeight";
EXPECT_EQ(assigned.mIsPrimary, origin.mIsPrimary)
<< "Assignment(Move): mIsPrimary";
EXPECT_EQ(assigned.mFromTouchEvent, origin.mFromTouchEvent)
<< "Assignment(Move): mFromTouchEvent";
}
}
TEST(WidgetMouseEventCtorTests, UpgradeWidgetMouseEventToWidgetPointerEvent)
{
WidgetPointerEvent mouse(true, eMouseDown, nullptr);
// WidgetInputEvent
mouse.mModifiers = Modifier::MODIFIER_NUMLOCK;
// WidgetMouseEventBase
mouse.mPressure = 0.4f;
mouse.mButton = MouseButton::eMiddle;
mouse.mButtons = MouseButtonsFlag::eMiddleFlag;
mouse.mInputSource = dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE;
// WidgetPointerHelper
mouse.pointerId = 3;
mouse.mTilt = Some(WidgetPointerHelper::Tilt{1, 2});
mouse.twist = 5;
mouse.mAngle = Some(WidgetPointerHelper::Angle{0.4, 0.8});
mouse.tangentialPressure = 0.7;
mouse.convertToPointer = false;
mouse.convertToPointerRawUpdate = false;
// WidgetMouseEvent
mouse.mReason = WidgetMouseEvent::eSynthesized;
mouse.mContextMenuTrigger = WidgetMouseEvent::eContextMenuKey;
mouse.mIgnoreRootScrollFrame = true;
mouse.mIgnoreCapturingContent = true;
mouse.mClickEventPrevented = true;
mouse.mSynthesizeMoveAfterDispatch = true;
mouse.mCallbackId = Some(256);
WidgetPointerEvent pointer(mouse);
EXPECT_EQ(pointer.mMessage, mouse.mMessage) << "mMessage";
EXPECT_EQ(pointer.mClass, ePointerEventClass) << "mClass";
EXPECT_EQ(pointer.mModifiers, mouse.mModifiers) << "mModifiers";
EXPECT_EQ(pointer.mPressure, mouse.mPressure) << "mPressure";
EXPECT_EQ(pointer.mButton, mouse.mButton) << "mButton";
EXPECT_EQ(pointer.mButtons, mouse.mButtons) << "mButtons";
EXPECT_EQ(pointer.mInputSource, mouse.mInputSource) << "mInputSource";
EXPECT_EQ(pointer.pointerId, mouse.pointerId) << "pointerId";
EXPECT_EQ(pointer.mTilt, mouse.mTilt) << "mTilt";
EXPECT_EQ(pointer.twist, mouse.twist) << "twist";
EXPECT_EQ(pointer.mAngle, mouse.mAngle) << "mAngle";
EXPECT_EQ(pointer.tangentialPressure, mouse.tangentialPressure)
<< " tangentialPressure";
EXPECT_EQ(pointer.convertToPointer, mouse.convertToPointer)
<< "convertToPointer";
EXPECT_EQ(pointer.convertToPointerRawUpdate, mouse.convertToPointerRawUpdate)
<< "convertToPointerRawUpdate";
EXPECT_EQ(pointer.mReason, mouse.mReason) << "mReason";
EXPECT_EQ(pointer.mContextMenuTrigger, mouse.mContextMenuTrigger)
<< "mContextMenuTrigger";
EXPECT_EQ(pointer.mIgnoreRootScrollFrame, mouse.mIgnoreRootScrollFrame)
<< "mIgnoreRootScrollFrame";
EXPECT_EQ(pointer.mIgnoreCapturingContent, mouse.mIgnoreCapturingContent)
<< "mIgnoreCapturingContent";
EXPECT_EQ(pointer.mClickEventPrevented, mouse.mClickEventPrevented)
<< "mClickEventPrevented";
EXPECT_EQ(pointer.mSynthesizeMoveAfterDispatch, false)
<< "mSynthesizeMoveAfterDispatch";
EXPECT_NE(pointer.mSynthesizeMoveAfterDispatch,
mouse.mSynthesizeMoveAfterDispatch)
<< "mSynthesizeMoveAfterDispatch";
EXPECT_EQ(pointer.mCallbackId, Nothing{}) << "mCallbackId";
EXPECT_NE(pointer.mCallbackId, mouse.mCallbackId) << "mCallbackId";
EXPECT_EQ(pointer.mWidth, 1.0) << "mWidth";
EXPECT_EQ(pointer.mHeight, 1.0) << "mHeight";
EXPECT_EQ(pointer.mIsPrimary, true) << "mIsPrimary";
EXPECT_EQ(pointer.mFromTouchEvent, false) << "mFromTouchEvent";
}
} // namespace mozilla