summaryrefslogtreecommitdiffstats
path: root/ui/aura/test/test_windows.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/aura/test/test_windows.cc')
-rw-r--r--ui/aura/test/test_windows.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/aura/test/test_windows.cc b/ui/aura/test/test_windows.cc
index 1c8a540..14fd638 100644
--- a/ui/aura/test/test_windows.cc
+++ b/ui/aura/test/test_windows.cc
@@ -54,5 +54,35 @@ Window* CreateTestWindowWithDelegateAndType(WindowDelegate* delegate,
return window;
}
+Window* CreateTransientChild(int id, Window* parent) {
+ Window* window = new Window(NULL);
+ window->set_id(id);
+ window->SetType(aura::client::WINDOW_TYPE_NORMAL);
+ window->Init(ui::Layer::LAYER_TEXTURED);
+ window->SetParent(NULL);
+ parent->AddTransientChild(window);
+ return window;
+}
+
+template <typename T>
+bool ObjectIsAbove(T* upper, T* lower) {
+ DCHECK_EQ(upper->parent(), lower->parent());
+ DCHECK_NE(upper, lower);
+ const std::vector<T*>& children = upper->parent()->children();
+ const size_t upper_i =
+ std::find(children.begin(), children.end(), upper) - children.begin();
+ const size_t lower_i =
+ std::find(children.begin(), children.end(), lower) - children.begin();
+ return upper_i > lower_i;
+}
+
+bool WindowIsAbove(Window* upper, Window* lower) {
+ return ObjectIsAbove<Window>(upper, lower);
+}
+
+bool LayerIsAbove(Window* upper, Window* lower) {
+ return ObjectIsAbove<ui::Layer>(upper->layer(), lower->layer());
+}
+
} // namespace test
} // namespace aura