Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/view.h" | 5 #include "ui/views/view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 3317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3328 EXPECT_TRUE(v4->has_remove_details()); | 3328 EXPECT_TRUE(v4->has_remove_details()); |
| 3329 EXPECT_TRUE(v4->has_add_details()); | 3329 EXPECT_TRUE(v4->has_add_details()); |
| 3330 EXPECT_EQ(v2.get(), v4->remove_details().parent); | 3330 EXPECT_EQ(v2.get(), v4->remove_details().parent); |
| 3331 EXPECT_EQ(&v1, v4->add_details().parent); | 3331 EXPECT_EQ(&v1, v4->add_details().parent); |
| 3332 EXPECT_EQ(v4, v4->add_details().child); | 3332 EXPECT_EQ(v4, v4->add_details().child); |
| 3333 EXPECT_EQ(v4, v4->remove_details().child); | 3333 EXPECT_EQ(v4, v4->remove_details().child); |
| 3334 EXPECT_EQ(&v1, v4->remove_details().move_view); | 3334 EXPECT_EQ(&v1, v4->remove_details().move_view); |
| 3335 EXPECT_EQ(v2.get(), v4->add_details().move_view); | 3335 EXPECT_EQ(v2.get(), v4->add_details().move_view); |
| 3336 } | 3336 } |
| 3337 | 3337 |
| 3338 class WidgetObserverView : public View { | |
| 3339 public: | |
| 3340 WidgetObserverView(); | |
| 3341 ~WidgetObserverView() override; | |
| 3342 | |
| 3343 void ResetTestState(); | |
| 3344 | |
| 3345 bool was_added_to_widget() { return was_added_to_widget_; } | |
| 3346 bool was_removed_from_widget() { return was_removed_from_widget_; } | |
| 3347 | |
| 3348 private: | |
| 3349 void AddedToWidget() override; | |
| 3350 void RemovedFromWidget() override; | |
| 3351 | |
| 3352 bool was_added_to_widget_; | |
|
sky
2017/02/22 17:21:33
Make these counts, so you know if called more ofte
| |
| 3353 bool was_removed_from_widget_; | |
| 3354 }; | |
|
sky
2017/02/22 17:21:33
DISALLOW...
| |
| 3355 | |
| 3356 WidgetObserverView::WidgetObserverView() { | |
| 3357 ResetTestState(); | |
| 3358 } | |
| 3359 | |
| 3360 WidgetObserverView::~WidgetObserverView() {} | |
| 3361 | |
| 3362 void WidgetObserverView::ResetTestState() { | |
| 3363 was_added_to_widget_ = false; | |
| 3364 was_removed_from_widget_ = false; | |
| 3365 } | |
| 3366 | |
| 3367 void WidgetObserverView::AddedToWidget() { | |
| 3368 was_added_to_widget_ = true; | |
| 3369 } | |
| 3370 | |
| 3371 void WidgetObserverView::RemovedFromWidget() { | |
| 3372 was_removed_from_widget_ = true; | |
| 3373 } | |
| 3374 | |
| 3375 // Verifies that AddedToWidget and RemovedFromWidget are called for a view when | |
| 3376 // it is added to hierarchy. | |
| 3377 // The tree looks like this: | |
| 3378 // widget | |
| 3379 // +-- root | |
| 3380 // | |
| 3381 // then v1 is added to root: | |
| 3382 // | |
| 3383 // v1 | |
| 3384 // +-- v2 | |
| 3385 // | |
| 3386 // finally v1 is removed from root. | |
| 3387 TEST_F(ViewTest, AddedToRemovedFromWidget) { | |
| 3388 std::unique_ptr<Widget> widget(new Widget); | |
|
sky
2017/02/22 17:21:33
No need for a unique_ptr here, create on stack.
| |
| 3389 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | |
| 3390 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | |
| 3391 params.bounds = gfx::Rect(50, 50, 650, 650); | |
| 3392 widget->Init(params); | |
| 3393 | |
| 3394 View* root = widget->GetRootView(); | |
| 3395 | |
| 3396 WidgetObserverView v1; | |
| 3397 WidgetObserverView v2; | |
| 3398 v1.set_owned_by_client(); | |
| 3399 v2.set_owned_by_client(); | |
| 3400 | |
| 3401 v1.AddChildView(&v2); | |
| 3402 EXPECT_FALSE(v2.was_added_to_widget()); | |
| 3403 EXPECT_FALSE(v2.was_removed_from_widget()); | |
| 3404 | |
| 3405 root->AddChildView(&v1); | |
| 3406 EXPECT_TRUE(v1.was_added_to_widget()); | |
| 3407 EXPECT_FALSE(v1.was_removed_from_widget()); | |
| 3408 EXPECT_TRUE(v2.was_added_to_widget()); | |
| 3409 EXPECT_FALSE(v2.was_removed_from_widget()); | |
| 3410 | |
| 3411 v1.ResetTestState(); | |
| 3412 v2.ResetTestState(); | |
| 3413 | |
| 3414 root->RemoveChildView(&v1); | |
| 3415 EXPECT_FALSE(v1.was_added_to_widget()); | |
| 3416 EXPECT_TRUE(v1.was_removed_from_widget()); | |
| 3417 EXPECT_FALSE(v2.was_added_to_widget()); | |
| 3418 EXPECT_TRUE(v2.was_removed_from_widget()); | |
| 3419 | |
| 3420 v2.ResetTestState(); | |
| 3421 v1.RemoveChildView(&v2); | |
| 3422 EXPECT_FALSE(v2.was_removed_from_widget()); | |
| 3423 } | |
| 3424 | |
| 3338 // Verifies if the child views added under the root are all deleted when calling | 3425 // Verifies if the child views added under the root are all deleted when calling |
| 3339 // RemoveAllChildViews. | 3426 // RemoveAllChildViews. |
| 3340 // The tree looks like this: | 3427 // The tree looks like this: |
| 3341 // root | 3428 // root |
| 3342 // +-- child1 | 3429 // +-- child1 |
| 3343 // +-- foo | 3430 // +-- foo |
| 3344 // +-- bar0 | 3431 // +-- bar0 |
| 3345 // +-- bar1 | 3432 // +-- bar1 |
| 3346 // +-- bar2 | 3433 // +-- bar2 |
| 3347 // +-- child2 | 3434 // +-- child2 |
| (...skipping 1514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4862 std::unique_ptr<View> view = NewView(); | 4949 std::unique_ptr<View> view = NewView(); |
| 4863 std::unique_ptr<View> child_view = NewView(); | 4950 std::unique_ptr<View> child_view = NewView(); |
| 4864 std::unique_ptr<View> child_view2 = NewView(); | 4951 std::unique_ptr<View> child_view2 = NewView(); |
| 4865 view->AddChildView(child_view.get()); | 4952 view->AddChildView(child_view.get()); |
| 4866 view->AddChildView(child_view2.get()); | 4953 view->AddChildView(child_view2.get()); |
| 4867 view->ReorderChildView(child_view2.get(), 0); | 4954 view->ReorderChildView(child_view2.get(), 0); |
| 4868 EXPECT_EQ(child_view2.get(), view_reordered()); | 4955 EXPECT_EQ(child_view2.get(), view_reordered()); |
| 4869 } | 4956 } |
| 4870 | 4957 |
| 4871 } // namespace views | 4958 } // namespace views |
| OLD | NEW |