blob: 91f9cef2c1eef375be6ca219671a383109a21b43 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/renderer_host/input/mock_input_router_client.h"
#include "content/browser/renderer_host/input/input_router.h"
#include "content/common/input/input_event.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::TimeDelta;
using blink::WebGestureEvent;
using blink::WebInputEvent;
using blink::WebMouseEvent;
using blink::WebMouseWheelEvent;
using blink::WebTouchEvent;
using blink::WebTouchPoint;
namespace content {
MockInputRouterClient::MockInputRouterClient()
: input_router_(nullptr),
in_flight_event_count_(0),
filter_state_(INPUT_EVENT_ACK_STATE_NOT_CONSUMED),
filter_input_event_called_(false),
white_listed_touch_action_(cc::kTouchActionAuto) {}
MockInputRouterClient::~MockInputRouterClient() {}
InputEventAckState MockInputRouterClient::FilterInputEvent(
const WebInputEvent& input_event,
const ui::LatencyInfo& latency_info) {
filter_input_event_called_ = true;
last_filter_event_.reset(new InputEvent(input_event, latency_info));
return filter_state_;
}
void MockInputRouterClient::IncrementInFlightEventCount() {
++in_flight_event_count_;
}
void MockInputRouterClient::DecrementInFlightEventCount(
InputEventAckSource ack_source) {
--in_flight_event_count_;
}
void MockInputRouterClient::DidOverscroll(
const ui::DidOverscrollParams& params) {
overscroll_ = params;
}
void MockInputRouterClient::OnSetWhiteListedTouchAction(
cc::TouchAction white_listed_touch_action) {
white_listed_touch_action_ = white_listed_touch_action;
}
void MockInputRouterClient::DidStartScrollingViewport() {}
void MockInputRouterClient::ForwardGestureEventWithLatencyInfo(
const blink::WebGestureEvent& gesture_event,
const ui::LatencyInfo& latency_info) {
if (input_router_)
input_router_->SendGestureEvent(
GestureEventWithLatencyInfo(gesture_event, latency_info));
if (gesture_event.SourceDevice() != blink::WebGestureDevice::kTouchpad)
return;
if (gesture_event.GetType() == WebInputEvent::kGestureScrollBegin) {
is_wheel_scroll_in_progress_ = true;
} else if (gesture_event.GetType() == WebInputEvent::kGestureScrollEnd) {
is_wheel_scroll_in_progress_ = false;
}
}
void MockInputRouterClient::ForwardWheelEventWithLatencyInfo(
const blink::WebMouseWheelEvent& wheel_event,
const ui::LatencyInfo& latency_info) {
if (input_router_) {
input_router_->SendWheelEvent(
MouseWheelEventWithLatencyInfo(wheel_event, latency_info));
}
}
bool MockInputRouterClient::IsWheelScrollInProgress() {
return is_wheel_scroll_in_progress_;
}
bool MockInputRouterClient::IsAutoscrollInProgress() {
return false;
}
bool MockInputRouterClient::GetAndResetFilterEventCalled() {
bool filter_input_event_called = filter_input_event_called_;
filter_input_event_called_ = false;
return filter_input_event_called;
}
ui::DidOverscrollParams MockInputRouterClient::GetAndResetOverscroll() {
ui::DidOverscrollParams overscroll;
std::swap(overscroll_, overscroll);
return overscroll;
}
cc::TouchAction MockInputRouterClient::GetAndResetWhiteListedTouchAction() {
cc::TouchAction white_listed_touch_action = white_listed_touch_action_;
white_listed_touch_action_ = cc::kTouchActionAuto;
return white_listed_touch_action;
}
bool MockInputRouterClient::NeedsBeginFrameForFlingProgress() {
return false;
}
} // namespace content