| Index: ui/aura/window_unittest.cc
|
| diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc
|
| index 60b113556035ef5ee3cd6ba4b7c4e1cff499ba61..9929192f2ec0946eae6e6d713e09c888f0d4a9cb 100644
|
| --- a/ui/aura/window_unittest.cc
|
| +++ b/ui/aura/window_unittest.cc
|
| @@ -291,11 +291,11 @@ TEST_F(WindowTest, GetChildById) {
|
| // and not containing NULL or parents.
|
| TEST_F(WindowTest, Contains) {
|
| Window parent(NULL);
|
| - parent.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent.Init(ui::LAYER_NOT_DRAWN);
|
| Window child1(NULL);
|
| - child1.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child1.Init(ui::LAYER_NOT_DRAWN);
|
| Window child2(NULL);
|
| - child2.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child2.Init(ui::LAYER_NOT_DRAWN);
|
|
|
| parent.AddChild(&child1);
|
| child1.AddChild(&child2);
|
| @@ -621,7 +621,7 @@ TEST_F(WindowTest, WindowAddedToRootWindowShouldNotifyChildAndNotParent) {
|
| AddedToRootWindowObserver child_observer;
|
| scoped_ptr<Window> parent_window(CreateTestWindowWithId(1, root_window()));
|
| scoped_ptr<Window> child_window(new Window(NULL));
|
| - child_window->Init(aura::WINDOW_LAYER_TEXTURED);
|
| + child_window->Init(ui::LAYER_TEXTURED);
|
| child_window->Show();
|
|
|
| parent_window->AddObserver(&parent_observer);
|
| @@ -670,11 +670,11 @@ TEST_F(WindowTest, OrphanedBeforeOnDestroyed) {
|
| // Make sure StackChildAtTop moves both the window and layer to the front.
|
| TEST_F(WindowTest, StackChildAtTop) {
|
| Window parent(NULL);
|
| - parent.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent.Init(ui::LAYER_NOT_DRAWN);
|
| Window child1(NULL);
|
| - child1.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child1.Init(ui::LAYER_NOT_DRAWN);
|
| Window child2(NULL);
|
| - child2.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child2.Init(ui::LAYER_NOT_DRAWN);
|
|
|
| parent.AddChild(&child1);
|
| parent.AddChild(&child2);
|
| @@ -697,15 +697,15 @@ TEST_F(WindowTest, StackChildAtTop) {
|
| // Make sure StackChildBelow works.
|
| TEST_F(WindowTest, StackChildBelow) {
|
| Window parent(NULL);
|
| - parent.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent.Init(ui::LAYER_NOT_DRAWN);
|
| Window child1(NULL);
|
| - child1.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child1.Init(ui::LAYER_NOT_DRAWN);
|
| child1.set_id(1);
|
| Window child2(NULL);
|
| - child2.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child2.Init(ui::LAYER_NOT_DRAWN);
|
| child2.set_id(2);
|
| Window child3(NULL);
|
| - child3.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child3.Init(ui::LAYER_NOT_DRAWN);
|
| child3.set_id(3);
|
|
|
| parent.AddChild(&child1);
|
| @@ -729,13 +729,13 @@ TEST_F(WindowTest, StackChildBelow) {
|
| // Various assertions for StackChildAbove.
|
| TEST_F(WindowTest, StackChildAbove) {
|
| Window parent(NULL);
|
| - parent.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent.Init(ui::LAYER_NOT_DRAWN);
|
| Window child1(NULL);
|
| - child1.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child1.Init(ui::LAYER_NOT_DRAWN);
|
| Window child2(NULL);
|
| - child2.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child2.Init(ui::LAYER_NOT_DRAWN);
|
| Window child3(NULL);
|
| - child3.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child3.Init(ui::LAYER_NOT_DRAWN);
|
|
|
| parent.AddChild(&child1);
|
| parent.AddChild(&child2);
|
| @@ -2037,7 +2037,7 @@ TEST_F(WindowTest, RecreateLayer) {
|
| // Set properties to non default values.
|
| Window w(new ColorTestWindowDelegate(SK_ColorWHITE));
|
| w.set_id(1);
|
| - w.Init(aura::WINDOW_LAYER_SOLID_COLOR);
|
| + w.Init(ui::LAYER_SOLID_COLOR);
|
| w.SetBounds(gfx::Rect(0, 0, 100, 100));
|
|
|
| ui::Layer* layer = w.layer();
|
| @@ -2302,7 +2302,7 @@ TEST_F(WindowTest, RootWindowAttachment) {
|
|
|
| // Test a direct add/remove from the RootWindow.
|
| scoped_ptr<Window> w1(new Window(NULL));
|
| - w1->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w1->Init(ui::LAYER_NOT_DRAWN);
|
| w1->AddObserver(&observer);
|
|
|
| ParentWindow(w1.get());
|
| @@ -2317,9 +2317,9 @@ TEST_F(WindowTest, RootWindowAttachment) {
|
|
|
| // Test an indirect add/remove from the RootWindow.
|
| w1.reset(new Window(NULL));
|
| - w1->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w1->Init(ui::LAYER_NOT_DRAWN);
|
| Window* w11 = new Window(NULL);
|
| - w11->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w11->Init(ui::LAYER_NOT_DRAWN);
|
| w11->AddObserver(&observer);
|
| w1->AddChild(w11);
|
| EXPECT_EQ(0, observer.added_count());
|
| @@ -2338,13 +2338,13 @@ TEST_F(WindowTest, RootWindowAttachment) {
|
|
|
| // Test an indirect add/remove with nested observers.
|
| w1.reset(new Window(NULL));
|
| - w1->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w1->Init(ui::LAYER_NOT_DRAWN);
|
| w11 = new Window(NULL);
|
| - w11->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w11->Init(ui::LAYER_NOT_DRAWN);
|
| w11->AddObserver(&observer);
|
| w1->AddChild(w11);
|
| Window* w111 = new Window(NULL);
|
| - w111->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w111->Init(ui::LAYER_NOT_DRAWN);
|
| w111->AddObserver(&observer);
|
| w11->AddChild(w111);
|
|
|
| @@ -2382,9 +2382,9 @@ class BoundsChangedWindowObserver : public WindowObserver {
|
|
|
| TEST_F(WindowTest, RootWindowSetWhenReparenting) {
|
| Window parent1(NULL);
|
| - parent1.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent1.Init(ui::LAYER_NOT_DRAWN);
|
| Window parent2(NULL);
|
| - parent2.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent2.Init(ui::LAYER_NOT_DRAWN);
|
| ParentWindow(&parent1);
|
| ParentWindow(&parent2);
|
| parent1.SetBounds(gfx::Rect(10, 10, 300, 300));
|
| @@ -2392,7 +2392,7 @@ TEST_F(WindowTest, RootWindowSetWhenReparenting) {
|
|
|
| BoundsChangedWindowObserver observer;
|
| Window child(NULL);
|
| - child.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + child.Init(ui::LAYER_NOT_DRAWN);
|
| child.SetBounds(gfx::Rect(5, 5, 100, 100));
|
| parent1.AddChild(&child);
|
|
|
| @@ -2423,10 +2423,10 @@ TEST_F(WindowTest, OwnedByParentFalse) {
|
| // window will not be destroyed when its parent is.
|
|
|
| scoped_ptr<Window> w1(new Window(NULL));
|
| - w1->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w1->Init(ui::LAYER_NOT_DRAWN);
|
| scoped_ptr<Window> w2(new Window(NULL));
|
| w2->set_owned_by_parent(false);
|
| - w2->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + w2->Init(ui::LAYER_NOT_DRAWN);
|
| w1->AddChild(w2.get());
|
|
|
| w1.reset();
|
| @@ -2464,13 +2464,13 @@ class OwningWindowDelegate : public TestWindowDelegate {
|
| // bubble.
|
| TEST_F(WindowTest, DeleteWindowFromOnWindowDestroyed) {
|
| scoped_ptr<Window> parent(new Window(NULL));
|
| - parent->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + parent->Init(ui::LAYER_NOT_DRAWN);
|
| OwningWindowDelegate delegate;
|
| Window* c1 = new Window(&delegate);
|
| - c1->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + c1->Init(ui::LAYER_NOT_DRAWN);
|
| parent->AddChild(c1);
|
| Window* c2 = new Window(NULL);
|
| - c2->Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| + c2->Init(ui::LAYER_NOT_DRAWN);
|
| parent->AddChild(c2);
|
| delegate.SetOwnedWindow(c2);
|
| parent.reset();
|
| @@ -2838,191 +2838,6 @@ TEST_F(WindowTest, OnWindowHierarchyChange) {
|
|
|
| }
|
|
|
| -// Verifies SchedulePaint() on a layerless window results in damaging the right
|
| -// thing.
|
| -TEST_F(WindowTest, LayerlessWindowSchedulePaint) {
|
| - Window root(NULL);
|
| - root.Init(aura::WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| -
|
| - Window* layerless_window = new Window(NULL); // Owned by |root|.
|
| - layerless_window->Init(WINDOW_LAYER_NONE);
|
| - layerless_window->SetBounds(gfx::Rect(10, 11, 12, 13));
|
| - root.AddChild(layerless_window);
|
| -
|
| - root.layer()->SendDamagedRects();
|
| - layerless_window->SchedulePaintInRect(gfx::Rect(1, 2, 100, 4));
|
| - // Note the the region is clipped by the parent hence 100 going to 11.
|
| - EXPECT_EQ("11,13 11x4",
|
| - gfx::SkIRectToRect(root.layer()->damaged_region().getBounds()).
|
| - ToString());
|
| -
|
| - Window* layerless_window2 = new Window(NULL); // Owned by |layerless_window|.
|
| - layerless_window2->Init(WINDOW_LAYER_NONE);
|
| - layerless_window2->SetBounds(gfx::Rect(1, 2, 3, 4));
|
| - layerless_window->AddChild(layerless_window2);
|
| -
|
| - root.layer()->SendDamagedRects();
|
| - layerless_window2->SchedulePaintInRect(gfx::Rect(1, 2, 100, 4));
|
| - // Note the the region is clipped by the |layerless_window| hence 100 going to
|
| - // 2.
|
| - EXPECT_EQ("12,15 2x2",
|
| - gfx::SkIRectToRect(root.layer()->damaged_region().getBounds()).
|
| - ToString());
|
| -}
|
| -
|
| -// Verifies bounds of layerless windows are correctly updated when adding
|
| -// removing.
|
| -TEST_F(WindowTest, NestedLayerlessWindowsBoundsOnAddRemove) {
|
| - // Creates the following structure (all children owned by root):
|
| - // root
|
| - // w1ll 1,2
|
| - // w11ll 3,4
|
| - // w111 5,6
|
| - // w12 7,8
|
| - // w121 9,10
|
| - //
|
| - // ll: layer less, eg no layer
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| -
|
| - Window* w1ll = new Window(NULL);
|
| - w1ll->Init(WINDOW_LAYER_NONE);
|
| - w1ll->SetBounds(gfx::Rect(1, 2, 100, 100));
|
| -
|
| - Window* w11ll = new Window(NULL);
|
| - w11ll->Init(WINDOW_LAYER_NONE);
|
| - w11ll->SetBounds(gfx::Rect(3, 4, 100, 100));
|
| - w1ll->AddChild(w11ll);
|
| -
|
| - Window* w111 = new Window(NULL);
|
| - w111->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w111->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - w11ll->AddChild(w111);
|
| -
|
| - Window* w12 = new Window(NULL);
|
| - w12->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w12->SetBounds(gfx::Rect(7, 8, 100, 100));
|
| - w1ll->AddChild(w12);
|
| -
|
| - Window* w121 = new Window(NULL);
|
| - w121->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w121->SetBounds(gfx::Rect(9, 10, 100, 100));
|
| - w12->AddChild(w121);
|
| -
|
| - root.AddChild(w1ll);
|
| -
|
| - // All layers should be parented to the root.
|
| - EXPECT_EQ(root.layer(), w111->layer()->parent());
|
| - EXPECT_EQ(root.layer(), w12->layer()->parent());
|
| - EXPECT_EQ(w12->layer(), w121->layer()->parent());
|
| -
|
| - // Ensure bounds are what we expect.
|
| - EXPECT_EQ("1,2 100x100", w1ll->bounds().ToString());
|
| - EXPECT_EQ("3,4 100x100", w11ll->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->bounds().ToString());
|
| - EXPECT_EQ("7,8 100x100", w12->bounds().ToString());
|
| - EXPECT_EQ("9,10 100x100", w121->bounds().ToString());
|
| -
|
| - // Bounds of layers are relative to the nearest ancestor with a layer.
|
| - EXPECT_EQ("8,10 100x100", w12->layer()->bounds().ToString());
|
| - EXPECT_EQ("9,12 100x100", w111->layer()->bounds().ToString());
|
| - EXPECT_EQ("9,10 100x100", w121->layer()->bounds().ToString());
|
| -
|
| - // Remove and repeat.
|
| - root.RemoveChild(w1ll);
|
| -
|
| - EXPECT_TRUE(w111->layer()->parent() == NULL);
|
| - EXPECT_TRUE(w12->layer()->parent() == NULL);
|
| -
|
| - // Verify bounds haven't changed again.
|
| - EXPECT_EQ("1,2 100x100", w1ll->bounds().ToString());
|
| - EXPECT_EQ("3,4 100x100", w11ll->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->bounds().ToString());
|
| - EXPECT_EQ("7,8 100x100", w12->bounds().ToString());
|
| - EXPECT_EQ("9,10 100x100", w121->bounds().ToString());
|
| -
|
| - // Bounds of layers should now match that of windows.
|
| - EXPECT_EQ("7,8 100x100", w12->layer()->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->layer()->bounds().ToString());
|
| - EXPECT_EQ("9,10 100x100", w121->layer()->bounds().ToString());
|
| -
|
| - delete w1ll;
|
| -}
|
| -
|
| -// Verifies bounds of layerless windows are correctly updated when bounds
|
| -// of ancestor changes.
|
| -TEST_F(WindowTest, NestedLayerlessWindowsBoundsOnSetBounds) {
|
| - // Creates the following structure (all children owned by root):
|
| - // root
|
| - // w1ll 1,2
|
| - // w11ll 3,4
|
| - // w111 5,6
|
| - // w12 7,8
|
| - // w121 9,10
|
| - //
|
| - // ll: layer less, eg no layer
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| -
|
| - Window* w1ll = new Window(NULL);
|
| - w1ll->Init(WINDOW_LAYER_NONE);
|
| - w1ll->SetBounds(gfx::Rect(1, 2, 100, 100));
|
| -
|
| - Window* w11ll = new Window(NULL);
|
| - w11ll->Init(WINDOW_LAYER_NONE);
|
| - w11ll->SetBounds(gfx::Rect(3, 4, 100, 100));
|
| - w1ll->AddChild(w11ll);
|
| -
|
| - Window* w111 = new Window(NULL);
|
| - w111->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w111->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - w11ll->AddChild(w111);
|
| -
|
| - Window* w12 = new Window(NULL);
|
| - w12->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w12->SetBounds(gfx::Rect(7, 8, 100, 100));
|
| - w1ll->AddChild(w12);
|
| -
|
| - Window* w121 = new Window(NULL);
|
| - w121->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w121->SetBounds(gfx::Rect(9, 10, 100, 100));
|
| - w12->AddChild(w121);
|
| -
|
| - root.AddChild(w1ll);
|
| -
|
| - w111->SetBounds(gfx::Rect(7, 8, 11, 12));
|
| - EXPECT_EQ("7,8 11x12", w111->bounds().ToString());
|
| - EXPECT_EQ("7,8 11x12", w111->GetTargetBounds().ToString());
|
| - EXPECT_EQ("11,14 11x12", w111->layer()->bounds().ToString());
|
| -
|
| - // Set back.
|
| - w111->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - EXPECT_EQ("5,6 100x100", w111->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->GetTargetBounds().ToString());
|
| - EXPECT_EQ("9,12 100x100", w111->layer()->bounds().ToString());
|
| -
|
| - // Setting the bounds of a layerless window needs to adjust the bounds of
|
| - // layered children.
|
| - w11ll->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - EXPECT_EQ("5,6 100x100", w11ll->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w11ll->GetTargetBounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->bounds().ToString());
|
| - EXPECT_EQ("5,6 100x100", w111->GetTargetBounds().ToString());
|
| - EXPECT_EQ("11,14 100x100", w111->layer()->bounds().ToString());
|
| -
|
| - root.RemoveChild(w1ll);
|
| -
|
| - w111->SetBounds(gfx::Rect(7, 8, 11, 12));
|
| - EXPECT_EQ("7,8 11x12", w111->bounds().ToString());
|
| - EXPECT_EQ("7,8 11x12", w111->GetTargetBounds().ToString());
|
| - EXPECT_EQ("7,8 11x12", w111->layer()->bounds().ToString());
|
| -
|
| - delete w1ll;
|
| -}
|
| -
|
| namespace {
|
|
|
| // Tracks the number of times paint is invoked along with what the clip and
|
| @@ -3063,443 +2878,6 @@ class PaintWindowDelegate : public TestWindowDelegate {
|
|
|
| } // namespace
|
|
|
| -// Assertions around layerless children being painted when non-layerless window
|
| -// is painted.
|
| -TEST_F(WindowTest, PaintLayerless) {
|
| - // Creates the following structure (all children owned by root):
|
| - // root
|
| - // w1ll 1,2 40x50
|
| - // w11ll 3,4 11x12
|
| - // w111 5,6
|
| - //
|
| - // ll: layer less, eg no layer
|
| - PaintWindowDelegate w1ll_delegate;
|
| - PaintWindowDelegate w11ll_delegate;
|
| - PaintWindowDelegate w111_delegate;
|
| -
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| -
|
| - Window* w1ll = new Window(&w1ll_delegate);
|
| - w1ll->Init(WINDOW_LAYER_NONE);
|
| - w1ll->SetBounds(gfx::Rect(1, 2, 40, 50));
|
| - w1ll->Show();
|
| - root.AddChild(w1ll);
|
| -
|
| - Window* w11ll = new Window(&w11ll_delegate);
|
| - w11ll->Init(WINDOW_LAYER_NONE);
|
| - w11ll->SetBounds(gfx::Rect(3, 4, 11, 12));
|
| - w11ll->Show();
|
| - w1ll->AddChild(w11ll);
|
| -
|
| - Window* w111 = new Window(&w111_delegate);
|
| - w111->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w111->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - w111->Show();
|
| - w11ll->AddChild(w111);
|
| -
|
| - EXPECT_EQ(0, w1ll_delegate.paint_count());
|
| - EXPECT_EQ(0, w11ll_delegate.paint_count());
|
| - EXPECT_EQ(0, w111_delegate.paint_count());
|
| -
|
| - // Paint the root, this should trigger painting of the two layerless
|
| - // descendants but not the layered descendant.
|
| - gfx::Canvas canvas(gfx::Size(200, 200), 1.0f, true);
|
| - static_cast<ui::LayerDelegate&>(root).OnPaintLayer(&canvas);
|
| -
|
| - // NOTE: SkCanvas::getClipBounds() extends the clip 1 pixel to the left and up
|
| - // and 2 pixels down and to the right.
|
| - EXPECT_EQ(1, w1ll_delegate.paint_count());
|
| - EXPECT_EQ("-1,-1 42x52",
|
| - w1ll_delegate.most_recent_paint_clip_bounds().ToString());
|
| - EXPECT_EQ("[1 2]",
|
| - w1ll_delegate.most_recent_paint_matrix_offset().ToString());
|
| - EXPECT_EQ(1, w11ll_delegate.paint_count());
|
| - EXPECT_EQ("-1,-1 13x14",
|
| - w11ll_delegate.most_recent_paint_clip_bounds().ToString());
|
| - EXPECT_EQ("[4 6]",
|
| - w11ll_delegate.most_recent_paint_matrix_offset().ToString());
|
| - EXPECT_EQ(0, w111_delegate.paint_count());
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -std::string ConvertPointToTargetString(const Window* source,
|
| - const Window* target) {
|
| - gfx::Point location;
|
| - Window::ConvertPointToTarget(source, target, &location);
|
| - return location.ToString();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// Assertions around Window::ConvertPointToTarget() with layerless windows.
|
| -TEST_F(WindowTest, ConvertPointToTargetLayerless) {
|
| - // Creates the following structure (all children owned by root):
|
| - // root
|
| - // w1ll 1,2
|
| - // w11ll 3,4
|
| - // w111 5,6
|
| - // w12 7,8
|
| - // w121 9,10
|
| - //
|
| - // ll: layer less, eg no layer
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| -
|
| - Window* w1ll = new Window(NULL);
|
| - w1ll->Init(WINDOW_LAYER_NONE);
|
| - w1ll->SetBounds(gfx::Rect(1, 2, 100, 100));
|
| -
|
| - Window* w11ll = new Window(NULL);
|
| - w11ll->Init(WINDOW_LAYER_NONE);
|
| - w11ll->SetBounds(gfx::Rect(3, 4, 100, 100));
|
| - w1ll->AddChild(w11ll);
|
| -
|
| - Window* w111 = new Window(NULL);
|
| - w111->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w111->SetBounds(gfx::Rect(5, 6, 100, 100));
|
| - w11ll->AddChild(w111);
|
| -
|
| - Window* w12 = new Window(NULL);
|
| - w12->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w12->SetBounds(gfx::Rect(7, 8, 100, 100));
|
| - w1ll->AddChild(w12);
|
| -
|
| - Window* w121 = new Window(NULL);
|
| - w121->Init(WINDOW_LAYER_NOT_DRAWN);
|
| - w121->SetBounds(gfx::Rect(9, 10, 100, 100));
|
| - w12->AddChild(w121);
|
| -
|
| - root.AddChild(w1ll);
|
| -
|
| - // w111->w11ll
|
| - EXPECT_EQ("5,6", ConvertPointToTargetString(w111, w11ll));
|
| -
|
| - // w111->w1ll
|
| - EXPECT_EQ("8,10", ConvertPointToTargetString(w111, w1ll));
|
| -
|
| - // w111->root
|
| - EXPECT_EQ("9,12", ConvertPointToTargetString(w111, &root));
|
| -
|
| - // w111->w12
|
| - EXPECT_EQ("1,2", ConvertPointToTargetString(w111, w12));
|
| -
|
| - // w111->w121
|
| - EXPECT_EQ("-8,-8", ConvertPointToTargetString(w111, w121));
|
| -
|
| - // w11ll->w111
|
| - EXPECT_EQ("-5,-6", ConvertPointToTargetString(w11ll, w111));
|
| -
|
| - // w11ll->w11ll
|
| - EXPECT_EQ("3,4", ConvertPointToTargetString(w11ll, w1ll));
|
| -
|
| - // w11ll->root
|
| - EXPECT_EQ("4,6", ConvertPointToTargetString(w11ll, &root));
|
| -
|
| - // w11ll->w12
|
| - EXPECT_EQ("-4,-4", ConvertPointToTargetString(w11ll, w12));
|
| -}
|
| -
|
| -#if !defined(NDEBUG)
|
| -// Verifies PrintWindowHierarchy() doesn't crash with a layerless window.
|
| -TEST_F(WindowTest, PrintWindowHierarchyNotCrashLayerless) {
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NONE);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| - root.PrintWindowHierarchy(0);
|
| -}
|
| -#endif
|
| -
|
| -namespace {
|
| -
|
| -// See AddWindowsFromString() for details.
|
| -aura::Window* CreateWindowFromDescription(const std::string& description,
|
| - WindowDelegate* delegate) {
|
| - WindowLayerType window_type = WINDOW_LAYER_NOT_DRAWN;
|
| - std::vector<std::string> tokens;
|
| - Tokenize(description, ":", &tokens);
|
| - DCHECK(!tokens.empty());
|
| - std::string name(tokens[0]);
|
| - tokens.erase(tokens.begin());
|
| - if (!tokens.empty()) {
|
| - if (tokens[0] == "ll") {
|
| - window_type = WINDOW_LAYER_NONE;
|
| - tokens.erase(tokens.begin());
|
| - }
|
| - DCHECK(tokens.empty()) << "unknown tokens for creating window "
|
| - << description;
|
| - }
|
| - Window* window = new Window(delegate);
|
| - window->Init(window_type);
|
| - window->SetName(name);
|
| - // Window name is only propagated to layer in debug builds.
|
| - if (window->layer())
|
| - window->layer()->set_name(name);
|
| - return window;
|
| -}
|
| -
|
| -// Creates and adds a tree of windows to |parent|. |description| consists
|
| -// of the following pieces:
|
| -// X: Identifies a new window. Consists of a name and optionally ":ll" to
|
| -// specify WINDOW_LAYER_NONE, eg "w1:ll".
|
| -// []: optionally used to specify the children of the window. Contains any
|
| -// number of window identifiers and their corresponding children.
|
| -// For example: "[ a [ a1 a2:ll ] b c [ c1 ] ]" creates the tree:
|
| -// a
|
| -// a1
|
| -// a2 -> WINDOW_LAYER_NONE.
|
| -// b
|
| -// c
|
| -// c1
|
| -// NOTE: you must have a space after every token.
|
| -std::string::size_type AddWindowsFromString(aura::Window* parent,
|
| - const std::string& description,
|
| - std::string::size_type start_pos,
|
| - WindowDelegate* delegate) {
|
| - DCHECK(parent);
|
| - std::string::size_type end_pos = description.find(' ', start_pos);
|
| - while (end_pos != std::string::npos) {
|
| - const std::string::size_type part_length = end_pos - start_pos;
|
| - const std::string window_description =
|
| - description.substr(start_pos, part_length);
|
| - if (window_description == "[") {
|
| - start_pos = AddWindowsFromString(parent->children().back(),
|
| - description,
|
| - end_pos + 1,
|
| - delegate);
|
| - end_pos = description.find(' ', start_pos);
|
| - if (end_pos == std::string::npos && start_pos != end_pos)
|
| - end_pos = description.length();
|
| - } else if (window_description == "]") {
|
| - ++end_pos;
|
| - break;
|
| - } else {
|
| - Window* window =
|
| - CreateWindowFromDescription(window_description, delegate);
|
| - parent->AddChild(window);
|
| - start_pos = ++end_pos;
|
| - end_pos = description.find(' ', start_pos);
|
| - }
|
| - }
|
| - return end_pos;
|
| -}
|
| -
|
| -// Used by BuildRootWindowTreeDescription().
|
| -std::string BuildWindowTreeDescription(const aura::Window& window) {
|
| - std::string result;
|
| - result += window.name();
|
| - if (window.children().empty())
|
| - return result;
|
| -
|
| - result += " [ ";
|
| - for (size_t i = 0; i < window.children().size(); ++i) {
|
| - if (i != 0)
|
| - result += " ";
|
| - result += BuildWindowTreeDescription(*(window.children()[i]));
|
| - }
|
| - result += " ]";
|
| - return result;
|
| -}
|
| -
|
| -// Creates a string from |window|. See AddWindowsFromString() for details of the
|
| -// returned string. This does *not* include the layer type in the description,
|
| -// on the name.
|
| -std::string BuildRootWindowTreeDescription(const aura::Window& window) {
|
| - std::string result;
|
| - for (size_t i = 0; i < window.children().size(); ++i) {
|
| - if (i != 0)
|
| - result += " ";
|
| - result += BuildWindowTreeDescription(*(window.children()[i]));
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -// Used by BuildRootWindowTreeDescription().
|
| -std::string BuildLayerTreeDescription(const ui::Layer& layer) {
|
| - std::string result;
|
| - result += layer.name();
|
| - if (layer.children().empty())
|
| - return result;
|
| -
|
| - result += " [ ";
|
| - for (size_t i = 0; i < layer.children().size(); ++i) {
|
| - if (i != 0)
|
| - result += " ";
|
| - result += BuildLayerTreeDescription(*(layer.children()[i]));
|
| - }
|
| - result += " ]";
|
| - return result;
|
| -}
|
| -
|
| -// Builds a string for all the children of |layer|. The returned string is in
|
| -// the same format as AddWindowsFromString() but only includes the name of the
|
| -// layers.
|
| -std::string BuildRootLayerTreeDescription(const ui::Layer& layer) {
|
| - std::string result;
|
| - for (size_t i = 0; i < layer.children().size(); ++i) {
|
| - if (i != 0)
|
| - result += " ";
|
| - result += BuildLayerTreeDescription(*(layer.children()[i]));
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -// Returns the first window whose name matches |name| in |parent|.
|
| -aura::Window* FindWindowByName(aura::Window* parent,
|
| - const std::string& name) {
|
| - if (parent->name() == name)
|
| - return parent;
|
| - for (size_t i = 0; i < parent->children().size(); ++i) {
|
| - aura::Window* child = FindWindowByName(parent->children()[i], name);
|
| - if (child)
|
| - return child;
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// Direction to stack.
|
| -enum StackType {
|
| - STACK_ABOVE,
|
| - STACK_BELOW,
|
| - STACK_AT_BOTTOM,
|
| - STACK_AT_TOP,
|
| -};
|
| -
|
| -// Permutations of StackChildAt with various data.
|
| -TEST_F(WindowTest, StackChildAtLayerless) {
|
| - struct TestData {
|
| - // Describes the window tree to create. See AddWindowsFromString() for
|
| - // details.
|
| - const std::string initial_description;
|
| -
|
| - // Identifies the window to move.
|
| - const std::string source_window;
|
| -
|
| - // Window to move |source_window| relative to. Not used for STACK_AT_BOTTOM
|
| - // or STACK_AT_TOP.
|
| - const std::string target_window;
|
| -
|
| - StackType stack_type;
|
| -
|
| - // Expected window and layer results.
|
| - const std::string expected_description;
|
| - const std::string expected_layer_description;
|
| - } data[] = {
|
| - // 1 at top.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ]",
|
| - "1",
|
| - "",
|
| - STACK_AT_TOP,
|
| - "2 [ 21 ] 1 [ 11 12 ]",
|
| - "21 11 12",
|
| - },
|
| -
|
| - // 1 at bottom.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ]",
|
| - "1",
|
| - "",
|
| - STACK_AT_BOTTOM,
|
| - "1 [ 11 12 ] 2 [ 21 ]",
|
| - "11 12 21",
|
| - },
|
| -
|
| - // 2 at bottom.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ]",
|
| - "2",
|
| - "",
|
| - STACK_AT_BOTTOM,
|
| - "2 [ 21 ] 1 [ 11 12 ]",
|
| - "21 11 12",
|
| - },
|
| -
|
| - // 3 below 2.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ] 3:ll",
|
| - "3",
|
| - "2",
|
| - STACK_BELOW,
|
| - "1 [ 11 12 ] 3 2 [ 21 ]",
|
| - "11 12 21",
|
| - },
|
| -
|
| - // 2 below 1.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ]",
|
| - "2",
|
| - "1",
|
| - STACK_BELOW,
|
| - "2 [ 21 ] 1 [ 11 12 ]",
|
| - "21 11 12",
|
| - },
|
| -
|
| - // 1 above 3.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ] 3:ll",
|
| - "1",
|
| - "3",
|
| - STACK_ABOVE,
|
| - "2 [ 21 ] 3 1 [ 11 12 ]",
|
| - "21 11 12",
|
| - },
|
| -
|
| - // 1 above 2.
|
| - {
|
| - "1:ll [ 11 12 ] 2:ll [ 21 ]",
|
| - "1",
|
| - "2",
|
| - STACK_ABOVE,
|
| - "2 [ 21 ] 1 [ 11 12 ]",
|
| - "21 11 12",
|
| - },
|
| - };
|
| - for (size_t i = 0; i < arraysize(data); ++i) {
|
| - test::TestWindowDelegate delegate;
|
| - Window root(NULL);
|
| - root.Init(WINDOW_LAYER_NOT_DRAWN);
|
| - root.SetBounds(gfx::Rect(0, 0, 100, 100));
|
| - AddWindowsFromString(
|
| - &root,
|
| - data[i].initial_description,
|
| - static_cast<std::string::size_type>(0), &delegate);
|
| - aura::Window* source = FindWindowByName(&root, data[i].source_window);
|
| - ASSERT_TRUE(source != NULL) << "unable to find source window "
|
| - << data[i].source_window << " at " << i;
|
| - aura::Window* target = FindWindowByName(&root, data[i].target_window);
|
| - switch (data[i].stack_type) {
|
| - case STACK_ABOVE:
|
| - ASSERT_TRUE(target != NULL) << "unable to find target window "
|
| - << data[i].target_window << " at " << i;
|
| - source->parent()->StackChildAbove(source, target);
|
| - break;
|
| - case STACK_BELOW:
|
| - ASSERT_TRUE(target != NULL) << "unable to find target window "
|
| - << data[i].target_window << " at " << i;
|
| - source->parent()->StackChildBelow(source, target);
|
| - break;
|
| - case STACK_AT_BOTTOM:
|
| - source->parent()->StackChildAtBottom(source);
|
| - break;
|
| - case STACK_AT_TOP:
|
| - source->parent()->StackChildAtTop(source);
|
| - break;
|
| - }
|
| - EXPECT_EQ(data[i].expected_layer_description,
|
| - BuildRootLayerTreeDescription(*root.layer()))
|
| - << "layer tree doesn't match at " << i;
|
| - EXPECT_EQ(data[i].expected_description,
|
| - BuildRootWindowTreeDescription(root))
|
| - << "window tree doesn't match at " << i;
|
| - }
|
| -}
|
| -
|
| namespace {
|
|
|
| class TestLayerAnimationObserver : public ui::LayerAnimationObserver {
|
|
|