| Index: ui/aura/test/aura_test_helper.cc
|
| diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc
|
| index da6b69b1ed00f75ccf4d28de75de6daae83c7f51..bbf733e8db0f1a002103f30d25fb3124b5fb5da4 100644
|
| --- a/ui/aura/test/aura_test_helper.cc
|
| +++ b/ui/aura/test/aura_test_helper.cc
|
| @@ -22,6 +22,7 @@
|
| #include "ui/aura/test/test_window_parenting_client.h"
|
| #include "ui/aura/window.h"
|
| #include "ui/aura/window_event_dispatcher.h"
|
| +#include "ui/aura/window_port_local.h"
|
| #include "ui/base/ime/input_method_factory.h"
|
| #include "ui/base/ime/input_method_initializer.h"
|
| #include "ui/compositor/compositor.h"
|
| @@ -39,10 +40,8 @@ namespace aura {
|
| namespace test {
|
|
|
| AuraTestHelper::AuraTestHelper(base::MessageLoopForUI* message_loop)
|
| - : setup_called_(false),
|
| - teardown_called_(false) {
|
| + : setup_called_(false), teardown_called_(false) {
|
| DCHECK(message_loop);
|
| - message_loop_ = message_loop;
|
| // Disable animations during tests.
|
| zero_duration_mode_.reset(new ui::ScopedAnimationDurationScaleMode(
|
| ui::ScopedAnimationDurationScaleMode::ZERO_DURATION));
|
| @@ -59,27 +58,42 @@ AuraTestHelper::~AuraTestHelper() {
|
| << "AuraTestHelper::TearDown() never called.";
|
| }
|
|
|
| -void AuraTestHelper::EnableMus(WindowTreeClientDelegate* window_tree_delegate,
|
| - WindowManagerDelegate* window_manager_delegate) {
|
| +void AuraTestHelper::EnableMusWithTestWindowTree(
|
| + WindowTreeClientDelegate* window_tree_delegate,
|
| + WindowManagerDelegate* window_manager_delegate) {
|
| DCHECK(!setup_called_);
|
| - use_mus_ = true;
|
| + DCHECK_EQ(Mode::LOCAL, mode_);
|
| + mode_ = Mode::MUS_CREATE_WINDOW_TREE_CLIENT;
|
| window_tree_delegate_ = window_tree_delegate;
|
| window_manager_delegate_ = window_manager_delegate;
|
| }
|
|
|
| +void AuraTestHelper::EnableMusWithWindowTreeClient(
|
| + WindowTreeClient* window_tree_client) {
|
| + DCHECK(!setup_called_);
|
| + DCHECK_EQ(Mode::LOCAL, mode_);
|
| + mode_ = Mode::MUS;
|
| + window_tree_client_ = window_tree_client;
|
| +}
|
| +
|
| void AuraTestHelper::SetUp(ui::ContextFactory* context_factory) {
|
| setup_called_ = true;
|
|
|
| - wm_state_ = base::MakeUnique<wm::WMState>();
|
| + if (mode_ != Mode::MUS) {
|
| + // Assume if an explicit WindowTreeClient was created then a WmState was
|
| + // already created.
|
| + wm_state_ = base::MakeUnique<wm::WMState>();
|
| + }
|
| // Needs to be before creating WindowTreeClient.
|
| focus_client_ = base::MakeUnique<TestFocusClient>();
|
| capture_client_ = base::MakeUnique<client::DefaultCaptureClient>();
|
| - Env::WindowPortFactory window_impl_factory;
|
| - if (use_mus_)
|
| - window_impl_factory = InitMus();
|
| + Env::WindowPortFactory window_impl_factory =
|
| + base::Bind(&AuraTestHelper::CreateWindowPort, base::Unretained(this));
|
| + if (mode_ == Mode::MUS_CREATE_WINDOW_TREE_CLIENT)
|
| + InitWindowTreeClient();
|
| if (!Env::GetInstanceDontCreate())
|
| - env_ = aura::Env::CreateInstance(window_impl_factory);
|
| - else if (use_mus_)
|
| + env_ = Env::CreateInstance(window_impl_factory);
|
| + else
|
| EnvTestHelper(Env::GetInstance()).SetWindowPortFactory(window_impl_factory);
|
| Env::GetInstance()->set_context_factory(context_factory);
|
| // Unit tests generally don't want to query the system, rather use the state
|
| @@ -107,7 +121,7 @@ void AuraTestHelper::SetUp(ui::ContextFactory* context_factory) {
|
| // Ensure width != height so tests won't confuse them.
|
| host()->SetBounds(gfx::Rect(host_size));
|
|
|
| - if (use_mus_)
|
| + if (mode_ == Mode::MUS_CREATE_WINDOW_TREE_CLIENT)
|
| window_tree()->AckAllChanges();
|
| }
|
|
|
| @@ -134,7 +148,7 @@ void AuraTestHelper::TearDown() {
|
|
|
| if (env_) {
|
| env_.reset();
|
| - } else if (use_mus_) {
|
| + } else {
|
| EnvTestHelper(Env::GetInstance())
|
| .SetWindowPortFactory(Env::WindowPortFactory());
|
| }
|
| @@ -153,25 +167,29 @@ TestWindowTree* AuraTestHelper::window_tree() {
|
| }
|
|
|
| WindowTreeClient* AuraTestHelper::window_tree_client() {
|
| - return window_tree_client_setup_->window_tree_client();
|
| + return window_tree_client_;
|
| }
|
|
|
| client::CaptureClient* AuraTestHelper::capture_client() {
|
| return capture_client_.get();
|
| }
|
|
|
| -Env::WindowPortFactory AuraTestHelper::InitMus() {
|
| +void AuraTestHelper::InitWindowTreeClient() {
|
| window_tree_client_setup_ = base::MakeUnique<TestWindowTreeClientSetup>();
|
| window_tree_client_setup_->InitForWindowManager(window_tree_delegate_,
|
| window_manager_delegate_);
|
| - return base::Bind(&AuraTestHelper::CreateWindowPortMus,
|
| - base::Unretained(this));
|
| + window_tree_client_ = window_tree_client_setup_->window_tree_client();
|
| }
|
|
|
| -std::unique_ptr<WindowPort> AuraTestHelper::CreateWindowPortMus(
|
| - Window* window) {
|
| - return base::MakeUnique<WindowPortMus>(window_tree_client(),
|
| - WindowMusType::LOCAL);
|
| +std::unique_ptr<WindowPort> AuraTestHelper::CreateWindowPort(Window* window) {
|
| + if (mode_ == Mode::LOCAL) {
|
| + std::unique_ptr<WindowPortLocal> window_port =
|
| + base::MakeUnique<WindowPortLocal>(window);
|
| + return std::move(window_port);
|
| + }
|
| + std::unique_ptr<WindowPortMus> window_port = base::MakeUnique<WindowPortMus>(
|
| + window_tree_client_, WindowMusType::LOCAL);
|
| + return std::move(window_port);
|
| }
|
|
|
| } // namespace test
|
|
|