Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2274)

Unified Diff: ui/aura/test/aura_test_helper.cc

Issue 2471033005: Adds DesktopWindowTreeHostMus (Closed)
Patch Set: fix Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « ui/aura/test/aura_test_helper.h ('k') | ui/views/BUILD.gn » ('j') | ui/views/mus/aura_init.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698