mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
Bug 1053766 - Gtests for state change notifications. r=botond
This commit is contained in:
parent
c5a974fa18
commit
e1347f588f
@ -66,6 +66,7 @@ public:
|
||||
MOCK_METHOD3(HandleLongTapUp, void(const CSSPoint&, int32_t, const ScrollableLayerGuid&));
|
||||
MOCK_METHOD3(SendAsyncScrollDOMEvent, void(bool aIsRoot, const CSSRect &aContentRect, const CSSSize &aScrollableSize));
|
||||
MOCK_METHOD2(PostDelayedTask, void(Task* aTask, int aDelayMs));
|
||||
MOCK_METHOD3(NotifyAPZStateChange, void(const ScrollableLayerGuid& aGuid, APZStateChange aChange, int aArg));
|
||||
};
|
||||
|
||||
class MockContentControllerDelayed : public MockContentController {
|
||||
@ -934,6 +935,45 @@ TEST_F(APZCBasicTester, FlingIntoOverscroll) {
|
||||
EXPECT_TRUE(recoveredFromOverscroll);
|
||||
}
|
||||
|
||||
TEST_F(APZCBasicTester, PanningTransformNotifications) {
|
||||
SCOPED_GFX_PREF(APZOverscrollEnabled, bool, true);
|
||||
|
||||
// Scroll down by 25 px. Ensure we only get one set of
|
||||
// state change notifications.
|
||||
//
|
||||
// Then, scroll back up by 20px, this time flinging after.
|
||||
// The fling should cover the remaining 5 px of room to scroll, then
|
||||
// go into overscroll, and finally snap-back to recover from overscroll.
|
||||
// Again, ensure we only get one set of state change notifications for
|
||||
// this entire procedure.
|
||||
|
||||
MockFunction<void(std::string checkPointName)> check;
|
||||
{
|
||||
InSequence s;
|
||||
EXPECT_CALL(check, Call("Simple pan"));
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::StartTouch,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::TransformBegin,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::StartPanning,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::EndTouch,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::TransformEnd,_)).Times(1);
|
||||
EXPECT_CALL(check, Call("Complex pan"));
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::StartTouch,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::TransformBegin,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::StartPanning,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::EndTouch,_)).Times(1);
|
||||
EXPECT_CALL(*mcc, NotifyAPZStateChange(_,GeckoContentController::APZStateChange::TransformEnd,_)).Times(1);
|
||||
EXPECT_CALL(check, Call("Done"));
|
||||
}
|
||||
|
||||
int time = 0;
|
||||
check.Call("Simple pan");
|
||||
ApzcPanNoFling(apzc, time, 50, 25);
|
||||
check.Call("Complex pan");
|
||||
ApzcPan(apzc, time, 25, 45);
|
||||
apzc->AdvanceAnimationsUntilEnd(testStartTime);
|
||||
check.Call("Done");
|
||||
}
|
||||
|
||||
TEST_F(APZCBasicTester, OverScrollPanning) {
|
||||
SCOPED_GFX_PREF(APZOverscrollEnabled, bool, true);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user