Index: ui/aura/test/mus/test_window_tree.cc |
diff --git a/services/ui/public/cpp/tests/test_window_tree.cc b/ui/aura/test/mus/test_window_tree.cc |
similarity index 57% |
copy from services/ui/public/cpp/tests/test_window_tree.cc |
copy to ui/aura/test/mus/test_window_tree.cc |
index f344aec9d1207846a2093e3d0250f5198b24cd19..0a4a32414bfccb3478f2f2206b112fe70ae1c521 100644 |
--- a/services/ui/public/cpp/tests/test_window_tree.cc |
+++ b/ui/aura/test/mus/test_window_tree.cc |
@@ -2,52 +2,119 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "services/ui/public/cpp/tests/test_window_tree.h" |
+#include "ui/aura/test/mus/test_window_tree.h" |
#include "testing/gtest/include/gtest/gtest.h" |
-namespace ui { |
+namespace aura { |
-TestWindowTree::TestWindowTree() |
- : got_change_(false), change_id_(0), window_id_(0u) {} |
+TestWindowTree::TestWindowTree() {} |
TestWindowTree::~TestWindowTree() {} |
-bool TestWindowTree::GetAndClearChangeId(uint32_t* change_id) { |
- if (!got_change_) |
+bool TestWindowTree::WasEventAcked(uint32_t event_id) const { |
+ return acked_events_.count(event_id); |
+} |
+ |
+mojo::Array<uint8_t> TestWindowTree::GetLastPropertyValue() { |
+ return std::move(last_property_value_); |
+} |
+ |
+mojo::Map<mojo::String, mojo::Array<uint8_t>> |
+TestWindowTree::GetLastNewWindowProperties() { |
+ return std::move(last_new_window_properties_); |
+} |
+ |
+void TestWindowTree::AckAllChanges() { |
+ while (!changes_.empty()) { |
+ client_->OnChangeCompleted(changes_[0].id, true); |
+ changes_.erase(changes_.begin()); |
+ } |
+} |
+ |
+bool TestWindowTree::AckSingleChangeOfType(WindowTreeChangeType type, |
+ bool result) { |
+ auto match = changes_.end(); |
+ for (auto iter = changes_.begin(); iter != changes_.end(); ++iter) { |
+ if (iter->type == type) { |
+ if (match == changes_.end()) |
+ match = iter; |
+ else |
+ return false; |
+ } |
+ } |
+ if (match == changes_.end()) |
return false; |
+ const uint32_t change_id = match->id; |
+ changes_.erase(match); |
+ client_->OnChangeCompleted(change_id, result); |
+ return true; |
+} |
- if (change_id) |
- *change_id = change_id_; |
- got_change_ = false; |
+bool TestWindowTree::AckFirstChangeOfType(WindowTreeChangeType type, |
+ bool result) { |
+ uint32_t change_id; |
+ if (!GetAndRemoveFirstChangeOfType(type, &change_id)) |
+ return false; |
+ client_->OnChangeCompleted(change_id, result); |
return true; |
} |
-bool TestWindowTree::WasEventAcked(uint32_t event_id) const { |
- return acked_events_.count(event_id); |
+void TestWindowTree::AckAllChangesOfType(WindowTreeChangeType type, |
+ bool result) { |
+ for (size_t i = 0; i < changes_.size();) { |
+ if (changes_[i].type != type) { |
+ ++i; |
+ continue; |
+ } |
+ const uint32_t change_id = changes_[i].id; |
+ changes_.erase(changes_.begin() + i); |
+ client_->OnChangeCompleted(change_id, result); |
+ } |
+} |
+ |
+bool TestWindowTree::GetAndRemoveFirstChangeOfType(WindowTreeChangeType type, |
+ uint32_t* change_id) { |
+ for (auto iter = changes_.begin(); iter != changes_.end(); ++iter) { |
+ if (iter->type != type) |
+ continue; |
+ *change_id = iter->id; |
+ changes_.erase(iter); |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+void TestWindowTree::OnChangeReceived(uint32_t change_id, |
+ WindowTreeChangeType type) { |
+ changes_.push_back({type, change_id}); |
} |
void TestWindowTree::NewWindow( |
uint32_t change_id, |
uint32_t window_id, |
- mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) {} |
+ mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) { |
+ last_new_window_properties_ = std::move(properties); |
+ OnChangeReceived(change_id, WindowTreeChangeType::NEW_WINDOW); |
+} |
void TestWindowTree::NewTopLevelWindow( |
uint32_t change_id, |
uint32_t window_id, |
mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ last_new_window_properties_ = std::move(properties); |
window_id_ = window_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::NEW_TOP_LEVEL); |
} |
-void TestWindowTree::DeleteWindow(uint32_t change_id, uint32_t window_id) {} |
+void TestWindowTree::DeleteWindow(uint32_t change_id, uint32_t window_id) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::SetWindowBounds(uint32_t change_id, |
uint32_t window_id, |
const gfx::Rect& bounds) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::BOUNDS); |
} |
void TestWindowTree::SetClientArea( |
@@ -64,67 +131,76 @@ void TestWindowTree::SetCanAcceptDrops(uint32_t window_id, bool accepts_drops) { |
void TestWindowTree::SetWindowVisibility(uint32_t change_id, |
uint32_t window_id, |
bool visible) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::VISIBLE); |
} |
void TestWindowTree::SetWindowProperty(uint32_t change_id, |
uint32_t window_id, |
const mojo::String& name, |
mojo::Array<uint8_t> value) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ last_property_value_ = std::move(value); |
+ OnChangeReceived(change_id, WindowTreeChangeType::PROPERTY); |
} |
void TestWindowTree::SetWindowOpacity(uint32_t change_id, |
uint32_t window_id, |
float opacity) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id); |
} |
void TestWindowTree::AttachCompositorFrameSink( |
uint32_t window_id, |
- mojom::CompositorFrameSinkType type, |
+ ui::mojom::CompositorFrameSinkType type, |
mojo::InterfaceRequest<cc::mojom::MojoCompositorFrameSink> surface, |
cc::mojom::MojoCompositorFrameSinkClientPtr client) {} |
+void TestWindowTree::OnWindowSurfaceDetached( |
+ uint32_t window_id, |
+ const cc::SurfaceSequence& sequence) {} |
+ |
void TestWindowTree::AddWindow(uint32_t change_id, |
uint32_t parent, |
- uint32_t child) {} |
+ uint32_t child) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::RemoveWindowFromParent(uint32_t change_id, |
- uint32_t window_id) {} |
+ uint32_t window_id) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::AddTransientWindow(uint32_t change_id, |
uint32_t window_id, |
- uint32_t transient_window_id) {} |
+ uint32_t transient_window_id) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::RemoveTransientWindowFromParent( |
uint32_t change_id, |
- uint32_t transient_window_id) {} |
+ uint32_t transient_window_id) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::SetModal(uint32_t change_id, uint32_t window_id) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id); |
} |
void TestWindowTree::ReorderWindow(uint32_t change_id, |
uint32_t window_id, |
uint32_t relative_window_id, |
- mojom::OrderDirection direction) {} |
+ ui::mojom::OrderDirection direction) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::GetWindowTree(uint32_t window_id, |
const GetWindowTreeCallback& callback) {} |
void TestWindowTree::SetCapture(uint32_t change_id, uint32_t window_id) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::CAPTURE); |
} |
void TestWindowTree::ReleaseCapture(uint32_t change_id, uint32_t window_id) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::CAPTURE); |
} |
void TestWindowTree::StartPointerWatcher(bool want_moves) {} |
@@ -132,13 +208,12 @@ void TestWindowTree::StartPointerWatcher(bool want_moves) {} |
void TestWindowTree::StopPointerWatcher() {} |
void TestWindowTree::Embed(uint32_t window_id, |
- mojom::WindowTreeClientPtr client, |
+ ui::mojom::WindowTreeClientPtr client, |
uint32_t flags, |
const EmbedCallback& callback) {} |
void TestWindowTree::SetFocus(uint32_t change_id, uint32_t window_id) { |
- got_change_ = true; |
- change_id_ = change_id; |
+ OnChangeReceived(change_id, WindowTreeChangeType::FOCUS); |
} |
void TestWindowTree::SetCanFocus(uint32_t window_id, bool can_focus) {} |
@@ -148,7 +223,9 @@ void TestWindowTree::SetCanAcceptEvents(uint32_t window_id, |
void TestWindowTree::SetPredefinedCursor(uint32_t change_id, |
uint32_t window_id, |
- ui::mojom::Cursor cursor_id) {} |
+ ui::mojom::Cursor cursor_id) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::SetWindowTextInputState(uint32_t window_id, |
mojo::TextInputStatePtr state) {} |
@@ -164,7 +241,8 @@ void TestWindowTree::OnWindowInputEventAck(uint32_t event_id, |
} |
void TestWindowTree::GetWindowManagerClient( |
- mojo::AssociatedInterfaceRequest<mojom::WindowManagerClient> internal) {} |
+ mojo::AssociatedInterfaceRequest<ui::mojom::WindowManagerClient> internal) { |
+} |
void TestWindowTree::GetCursorLocationMemory( |
const GetCursorLocationMemoryCallback& callback) { |
@@ -175,19 +253,19 @@ void TestWindowTree::PerformDragDrop( |
uint32_t change_id, |
uint32_t source_window_id, |
mojo::Map<mojo::String, mojo::Array<uint8_t>> drag_data, |
- uint32_t drag_operation) {} |
+ uint32_t drag_operation) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::CancelDragDrop(uint32_t window_id) {} |
void TestWindowTree::PerformWindowMove(uint32_t change_id, |
uint32_t window_id, |
- mojom::MoveLoopSource source, |
- const gfx::Point& cursor_location) {} |
+ ui::mojom::MoveLoopSource source, |
+ const gfx::Point& cursor_location) { |
+ OnChangeReceived(change_id); |
+} |
void TestWindowTree::CancelWindowMove(uint32_t window_id) {} |
-void TestWindowTree::OnWindowSurfaceDetached( |
- uint32_t window_id, |
- const cc::SurfaceSequence& sequence) {} |
- |
-} // namespace ui |
+} // namespace aura |