blob: 105de289e500e14169409405728adc132f25df8a [file] [log] [blame]
// Copyright 2018 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 "components/exo/test/exo_test_base_views.h"
#include "base/callback_helpers.h"
#include "base/notreached.h"
#include "components/exo/vsync_timing_manager.h"
#include "components/exo/wm_helper.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "ui/aura/client/drag_drop_delegate.h"
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h"
#include "ui/base/ime/init/input_method_factory.h"
#include "ui/display/manager/managed_display_info.h"
#include "ui/wm/core/wm_core_switches.h"
namespace exo {
namespace test {
namespace {
class WMHelperTester : public WMHelper, public VSyncTimingManager::Delegate {
public:
WMHelperTester(aura::Window* root_window)
: root_window_(root_window), vsync_timing_manager_(this) {}
WMHelperTester(const WMHelperTester&) = delete;
WMHelperTester& operator=(const WMHelperTester&) = delete;
~WMHelperTester() override {}
// Overridden from WMHelper
void AddActivationObserver(wm::ActivationChangeObserver* observer) override {}
void RemoveActivationObserver(
wm::ActivationChangeObserver* observer) override {}
void AddFocusObserver(aura::client::FocusChangeObserver* observer) override {}
void RemoveFocusObserver(
aura::client::FocusChangeObserver* observer) override {}
void AddDragDropObserver(DragDropObserver* observer) override {}
void RemoveDragDropObserver(DragDropObserver* observer) override {}
void SetDragDropDelegate(aura::Window*) override {}
void ResetDragDropDelegate(aura::Window*) override {}
VSyncTimingManager& GetVSyncTimingManager() override {
return vsync_timing_manager_;
}
const display::ManagedDisplayInfo& GetDisplayInfo(
int64_t display_id) const override {
static display::ManagedDisplayInfo md;
return md;
}
const std::vector<uint8_t>& GetDisplayIdentificationData(
int64_t display_id) const override {
static std::vector<uint8_t> no_data;
return no_data;
}
bool GetActiveModeForDisplayId(
int64_t display_id,
display::ManagedDisplayMode* mode) const override {
return false;
}
aura::Window* GetPrimaryDisplayContainer(int container_id) override {
return root_window_;
}
aura::Window* GetActiveWindow() const override { return nullptr; }
aura::Window* GetFocusedWindow() const override { return nullptr; }
aura::Window* GetRootWindowForNewWindows() const override {
return root_window_;
}
aura::client::CursorClient* GetCursorClient() override { return nullptr; }
aura::client::DragDropClient* GetDragDropClient() override { return nullptr; }
void AddPreTargetHandler(ui::EventHandler* handler) override {}
void PrependPreTargetHandler(ui::EventHandler* handler) override {}
void RemovePreTargetHandler(ui::EventHandler* handler) override {}
void AddPostTargetHandler(ui::EventHandler* handler) override {}
void RemovePostTargetHandler(ui::EventHandler* handler) override {}
bool InTabletMode() const override { return false; }
double GetDefaultDeviceScaleFactor() const override { return 1.0; }
double GetDeviceScaleFactorForWindow(aura::Window* window) const override {
return 1.0;
}
void SetDefaultScaleCancellation(bool default_scale_cancellation) override {}
LifetimeManager* GetLifetimeManager() override { return &lifetime_manager_; }
aura::client::CaptureClient* GetCaptureClient() override { return nullptr; }
// Overridden from aura::client::DragDropDelegate:
void OnDragEntered(const ui::DropTargetEvent& event) override {}
aura::client::DragUpdateInfo OnDragUpdated(
const ui::DropTargetEvent& event) override {
return aura::client::DragUpdateInfo();
}
void OnDragExited() override {}
WMHelper::DropCallback GetDropCallback(
const ui::DropTargetEvent& event) override {
return base::DoNothing();
}
// Overridden from VSyncTimingManager::Delegate:
void AddVSyncParameterObserver(
mojo::PendingRemote<viz::mojom::VSyncParameterObserver> observer)
override {}
private:
aura::Window* root_window_;
LifetimeManager lifetime_manager_;
VSyncTimingManager vsync_timing_manager_;
};
} // namespace
ExoTestBaseViews::ExoTestBaseViews() {}
ExoTestBaseViews::~ExoTestBaseViews() {}
void ExoTestBaseViews::SetUp() {
views::ViewsTestBase::SetUp();
wm_helper_ = std::make_unique<WMHelperTester>(root_window());
}
void ExoTestBaseViews::TearDown() {
wm_helper_.reset();
views::ViewsTestBase::TearDown();
}
} // namespace test
} // namespace exo