1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/ui/frame/immersive/immersive_fullscreen_controller_test_api.h"
#include "chromeos/ui/frame/immersive/immersive_fullscreen_controller.h"
#include "chromeos/ui/frame/immersive/immersive_fullscreen_controller_delegate.h"
#include "ui/aura/env.h"
#include "ui/gfx/geometry/rect.h"
namespace chromeos {
ImmersiveFullscreenControllerTestApi::ImmersiveFullscreenControllerTestApi(
ImmersiveFullscreenController* controller)
: immersive_fullscreen_controller_(controller) {}
ImmersiveFullscreenControllerTestApi::~ImmersiveFullscreenControllerTestApi() =
default;
void ImmersiveFullscreenControllerTestApi::SetupForTest() {
immersive_fullscreen_controller_->animations_disabled_for_test_ = true;
// Move the mouse off of the top-of-window views so that it does not keep the
// top-of-window views revealed.
std::vector<gfx::Rect> bounds_in_screen(
immersive_fullscreen_controller_->delegate_->GetVisibleBoundsInScreen());
DCHECK(!bounds_in_screen.empty());
int bottommost_in_screen = bounds_in_screen[0].bottom();
for (size_t i = 1; i < bounds_in_screen.size(); ++i) {
if (bounds_in_screen[i].bottom() > bottommost_in_screen)
bottommost_in_screen = bounds_in_screen[i].bottom();
}
gfx::Point cursor_pos(0, bottommost_in_screen + 10);
aura::Env::GetInstance()->SetLastMouseLocation(cursor_pos);
immersive_fullscreen_controller_->UpdateLocatedEventRevealedLock();
}
bool ImmersiveFullscreenControllerTestApi::IsTopEdgeHoverTimerRunning() const {
return immersive_fullscreen_controller_->top_edge_hover_timer_.IsRunning();
}
void ImmersiveFullscreenControllerTestApi::EndAnimation() {
immersive_fullscreen_controller_->animation_->End();
}
ImmersiveFullscreenControllerTestApi::GlobalAnimationDisabler::
GlobalAnimationDisabler() {
// Nesting isn't supported.
DCHECK(
!ImmersiveFullscreenController::value_for_animations_disabled_for_test_);
ImmersiveFullscreenController::value_for_animations_disabled_for_test_ = true;
}
ImmersiveFullscreenControllerTestApi::GlobalAnimationDisabler::
~GlobalAnimationDisabler() {
ImmersiveFullscreenController::value_for_animations_disabled_for_test_ =
false;
}
} // namespace chromeos
|