blob: 9f34812c87c0c6932a92c80b77fa9a53a03b90a2 [file] [log] [blame]
Kevin McNee80e0a452017-08-09 14:42:181// Copyright (c) 2017 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "content/test/mock_overscroll_controller_delegate_aura.h"
6
7#include "content/browser/renderer_host/render_widget_host_view_aura.h"
8#include "content/public/test/test_utils.h"
9#include "ui/display/screen.h"
10
11namespace content {
12
13MockOverscrollControllerDelegateAura::MockOverscrollControllerDelegateAura(
14 RenderWidgetHostViewAura* rwhva)
15 : rwhva_(rwhva),
16 update_message_loop_runner_(new MessageLoopRunner),
17 end_message_loop_runner_(new MessageLoopRunner),
18 seen_update_(false),
19 overscroll_ended_(false) {}
20
21MockOverscrollControllerDelegateAura::~MockOverscrollControllerDelegateAura() {}
22
23gfx::Size MockOverscrollControllerDelegateAura::GetDisplaySize() const {
24 return display::Screen::GetScreen()
25 ->GetDisplayNearestView(rwhva_->GetNativeView())
26 .size();
27}
28
29base::Optional<float>
30MockOverscrollControllerDelegateAura::GetMaxOverscrollDelta() const {
31 return base::nullopt;
32}
33
34bool MockOverscrollControllerDelegateAura::OnOverscrollUpdate(float, float) {
35 seen_update_ = true;
36 if (update_message_loop_runner_->loop_running())
37 update_message_loop_runner_->Quit();
38 return true;
39}
40
41void MockOverscrollControllerDelegateAura::OnOverscrollComplete(
42 OverscrollMode) {
43 OnOverscrollEnd();
44}
45
46void MockOverscrollControllerDelegateAura::OnOverscrollModeChange(
47 OverscrollMode old_mode,
48 OverscrollMode new_mode,
Mohsen Izadi80189412018-03-22 17:10:1849 OverscrollSource source,
50 cc::OverscrollBehavior behavior) {
Kevin McNee80e0a452017-08-09 14:42:1851 if (new_mode == OVERSCROLL_NONE)
52 OnOverscrollEnd();
53}
54
55void MockOverscrollControllerDelegateAura::WaitForUpdate() {
56 if (!seen_update_)
57 update_message_loop_runner_->Run();
58}
59
60void MockOverscrollControllerDelegateAura::WaitForEnd() {
61 if (!overscroll_ended_)
62 end_message_loop_runner_->Run();
63}
64
65void MockOverscrollControllerDelegateAura::Reset() {
66 update_message_loop_runner_ = new MessageLoopRunner;
67 end_message_loop_runner_ = new MessageLoopRunner;
68 seen_update_ = false;
69 overscroll_ended_ = false;
70}
71
72void MockOverscrollControllerDelegateAura::OnOverscrollEnd() {
73 overscroll_ended_ = true;
74 if (end_message_loop_runner_->loop_running())
75 end_message_loop_runner_->Quit();
76}
77
78} // namespace content