From 72eb1cf61830bb0a12d62de656632aae3a94a88f Mon Sep 17 00:00:00 2001 From: "ben@chromium.org" Date: Tue, 31 Jan 2012 23:31:11 +0000 Subject: Revert 119976 - Adds two new observer methods to allow code to be notified when a Window is added/removed from a RootWindow. This allows hierarchy-specific cleanup code to execute when a Window is removed rather than when it is destroyed, necessary for multiple root windows. http://crbug.com/112131 TEST=see unittests Review URL: https://chromiumcodereview.appspot.com/9315015 TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/9315017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119986 0039d316-1c4b-4281-b951-d872f2087c98 --- ui/aura/window_unittest.cc | 93 ---------------------------------------------- 1 file changed, 93 deletions(-) (limited to 'ui/aura/window_unittest.cc') diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc index b8d6121..6c53e6b 100644 --- a/ui/aura/window_unittest.cc +++ b/ui/aura/window_unittest.cc @@ -1462,98 +1462,5 @@ TEST_F(WindowTest, StackingMadrigal) { EXPECT_TRUE(LayerIsAbove(window12.get(), window1.get())); } -class RootWindowAttachmentObserver : public WindowObserver { - public: - RootWindowAttachmentObserver() : added_count_(0), removed_count_(0) {} - virtual ~RootWindowAttachmentObserver() {} - - int added_count() const { return added_count_; } - int removed_count() const { return removed_count_; } - - void Clear() { - added_count_ = 0; - removed_count_ = 0; - } - - // Overridden from WindowObserver: - virtual void OnWindowAddedToRootWindow(Window* window) OVERRIDE { - ++added_count_; - } - virtual void OnWindowRemovingFromRootWindow(Window* window) OVERRIDE { - ++removed_count_; - } - - private: - int added_count_; - int removed_count_; - - DISALLOW_COPY_AND_ASSIGN(RootWindowAttachmentObserver); -}; - -TEST_F(WindowTest, RootWindowAttachment) { - RootWindowAttachmentObserver observer; - - // Test a direct add/remove from the RootWindow. - scoped_ptr w1(new Window(NULL)); - w1->Init(ui::Layer::LAYER_NOT_DRAWN); - w1->AddObserver(&observer); - - w1->SetParent(NULL); - EXPECT_EQ(1, observer.added_count()); - EXPECT_EQ(0, observer.removed_count()); - - w1.reset(); - EXPECT_EQ(1, observer.added_count()); - EXPECT_EQ(1, observer.removed_count()); - - observer.Clear(); - - // Test an indirect add/remove from the RootWindow. - w1.reset(new Window(NULL)); - w1->Init(ui::Layer::LAYER_NOT_DRAWN); - Window* w11 = new Window(NULL); - w11->Init(ui::Layer::LAYER_NOT_DRAWN); - w11->AddObserver(&observer); - w11->SetParent(w1.get()); - EXPECT_EQ(0, observer.added_count()); - EXPECT_EQ(0, observer.removed_count()); - - w1->SetParent(NULL); - EXPECT_EQ(1, observer.added_count()); - EXPECT_EQ(0, observer.removed_count()); - - w1.reset(); // Deletes w11. - w11 = NULL; - EXPECT_EQ(1, observer.added_count()); - EXPECT_EQ(1, observer.removed_count()); - - observer.Clear(); - - // Test an indirect add/remove with nested observers. - w1.reset(new Window(NULL)); - w1->Init(ui::Layer::LAYER_NOT_DRAWN); - w11 = new Window(NULL); - w11->Init(ui::Layer::LAYER_NOT_DRAWN); - w11->AddObserver(&observer); - w11->SetParent(w1.get()); - Window* w111 = new Window(NULL); - w111->Init(ui::Layer::LAYER_NOT_DRAWN); - w111->AddObserver(&observer); - w111->SetParent(w11); - - EXPECT_EQ(0, observer.added_count()); - EXPECT_EQ(0, observer.removed_count()); - - w1->SetParent(NULL); - EXPECT_EQ(2, observer.added_count()); - EXPECT_EQ(0, observer.removed_count()); - - w1.reset(); // Deletes w11 and w111. - w11 = NULL; - w111 = NULL; - EXPECT_EQ(2, observer.added_count()); - EXPECT_EQ(2, observer.removed_count()); -} - } // namespace test } // namespace aura -- cgit v1.1