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 |