Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: ui/views/view_unittest.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/views/view_targeter_unittest.cc ('k') | ui/views/view_unittest_aura.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
6
5 #include <stddef.h> 7 #include <stddef.h>
6 8
7 #include <map> 9 #include <map>
10 #include <memory>
8 11
9 #include "base/i18n/rtl.h" 12 #include "base/i18n/rtl.h"
10 #include "base/macros.h" 13 #include "base/macros.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/rand_util.h" 14 #include "base/rand_util.h"
13 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
14 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
15 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
16 #include "build/build_config.h" 18 #include "build/build_config.h"
17 #include "cc/playback/display_item_list.h" 19 #include "cc/playback/display_item_list.h"
18 #include "cc/playback/display_item_list_settings.h" 20 #include "cc/playback/display_item_list_settings.h"
19 #include "ui/base/accelerators/accelerator.h" 21 #include "ui/base/accelerators/accelerator.h"
20 #include "ui/base/clipboard/clipboard.h" 22 #include "ui/base/clipboard/clipboard.h"
21 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
(...skipping 10 matching lines...) Expand all
32 #include "ui/gfx/path.h" 34 #include "ui/gfx/path.h"
33 #include "ui/gfx/transform.h" 35 #include "ui/gfx/transform.h"
34 #include "ui/native_theme/native_theme.h" 36 #include "ui/native_theme/native_theme.h"
35 #include "ui/strings/grit/ui_strings.h" 37 #include "ui/strings/grit/ui_strings.h"
36 #include "ui/views/background.h" 38 #include "ui/views/background.h"
37 #include "ui/views/controls/native/native_view_host.h" 39 #include "ui/views/controls/native/native_view_host.h"
38 #include "ui/views/controls/scroll_view.h" 40 #include "ui/views/controls/scroll_view.h"
39 #include "ui/views/controls/textfield/textfield.h" 41 #include "ui/views/controls/textfield/textfield.h"
40 #include "ui/views/focus/view_storage.h" 42 #include "ui/views/focus/view_storage.h"
41 #include "ui/views/test/views_test_base.h" 43 #include "ui/views/test/views_test_base.h"
42 #include "ui/views/view.h"
43 #include "ui/views/widget/native_widget.h" 44 #include "ui/views/widget/native_widget.h"
44 #include "ui/views/widget/root_view.h" 45 #include "ui/views/widget/root_view.h"
45 #include "ui/views/window/dialog_client_view.h" 46 #include "ui/views/window/dialog_client_view.h"
46 #include "ui/views/window/dialog_delegate.h" 47 #include "ui/views/window/dialog_delegate.h"
47 48
48 using base::ASCIIToUTF16; 49 using base::ASCIIToUTF16;
49 50
50 namespace { 51 namespace {
51 52
52 // Returns true if |ancestor| is an ancestor of |layer|. 53 // Returns true if |ancestor| is an ancestor of |layer|.
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 received_mouse_exit_ = true; 379 received_mouse_exit_ = true;
379 } 380 }
380 381
381 TEST_F(ViewTest, MouseEvent) { 382 TEST_F(ViewTest, MouseEvent) {
382 TestView* v1 = new TestView(); 383 TestView* v1 = new TestView();
383 v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); 384 v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300));
384 385
385 TestView* v2 = new TestView(); 386 TestView* v2 = new TestView();
386 v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); 387 v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100));
387 388
388 scoped_ptr<Widget> widget(new Widget); 389 std::unique_ptr<Widget> widget(new Widget);
389 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 390 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
390 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 391 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
391 params.bounds = gfx::Rect(50, 50, 650, 650); 392 params.bounds = gfx::Rect(50, 50, 650, 650);
392 widget->Init(params); 393 widget->Init(params);
393 internal::RootView* root = 394 internal::RootView* root =
394 static_cast<internal::RootView*>(widget->GetRootView()); 395 static_cast<internal::RootView*>(widget->GetRootView());
395 396
396 root->AddChildView(v1); 397 root->AddChildView(v1);
397 v1->AddChildView(v2); 398 v1->AddChildView(v2);
398 399
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 TEST_F(ViewTest, DeleteOnPressed) { 442 TEST_F(ViewTest, DeleteOnPressed) {
442 TestView* v1 = new TestView(); 443 TestView* v1 = new TestView();
443 v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); 444 v1->SetBoundsRect(gfx::Rect(0, 0, 300, 300));
444 445
445 TestView* v2 = new TestView(); 446 TestView* v2 = new TestView();
446 v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100)); 447 v2->SetBoundsRect(gfx::Rect(100, 100, 100, 100));
447 448
448 v1->Reset(); 449 v1->Reset();
449 v2->Reset(); 450 v2->Reset();
450 451
451 scoped_ptr<Widget> widget(new Widget); 452 std::unique_ptr<Widget> widget(new Widget);
452 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 453 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
453 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 454 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
454 params.bounds = gfx::Rect(50, 50, 650, 650); 455 params.bounds = gfx::Rect(50, 50, 650, 650);
455 widget->Init(params); 456 widget->Init(params);
456 View* root = widget->GetRootView(); 457 View* root = widget->GetRootView();
457 458
458 root->AddChildView(v1); 459 root->AddChildView(v1);
459 v1->AddChildView(v2); 460 v1->AddChildView(v2);
460 461
461 v2->delete_on_pressed_ = true; 462 v2->delete_on_pressed_ = true;
(...skipping 1644 matching lines...) Expand 10 before | Expand all | Expand 10 after
2106 // handle accelerators or not (see View::CanHandleAccelerators for details). 2107 // handle accelerators or not (see View::CanHandleAccelerators for details).
2107 // This test targets that extra logic, but should also work on other platforms. 2108 // This test targets that extra logic, but should also work on other platforms.
2108 TEST_F(ViewTest, HandleAccelerator) { 2109 TEST_F(ViewTest, HandleAccelerator) {
2109 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 2110 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
2110 TestView* view = new TestView(); 2111 TestView* view = new TestView();
2111 view->Reset(); 2112 view->Reset();
2112 view->AddAccelerator(return_accelerator); 2113 view->AddAccelerator(return_accelerator);
2113 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0); 2114 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
2114 2115
2115 // Create a window and add the view as its child. 2116 // Create a window and add the view as its child.
2116 scoped_ptr<Widget> widget(new Widget); 2117 std::unique_ptr<Widget> widget(new Widget);
2117 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2118 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2118 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2119 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2119 params.bounds = gfx::Rect(0, 0, 100, 100); 2120 params.bounds = gfx::Rect(0, 0, 100, 100);
2120 widget->Init(params); 2121 widget->Init(params);
2121 View* root = widget->GetRootView(); 2122 View* root = widget->GetRootView();
2122 root->AddChildView(view); 2123 root->AddChildView(view);
2123 widget->Show(); 2124 widget->Show();
2124 2125
2125 FocusManager* focus_manager = widget->GetFocusManager(); 2126 FocusManager* focus_manager = widget->GetFocusManager();
2126 ASSERT_TRUE(focus_manager); 2127 ASSERT_TRUE(focus_manager);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 #if 0 2186 #if 0
2186 TEST_F(ViewTest, ActivateAccelerator) { 2187 TEST_F(ViewTest, ActivateAccelerator) {
2187 // Register a keyboard accelerator before the view is added to a window. 2188 // Register a keyboard accelerator before the view is added to a window.
2188 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 2189 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
2189 TestView* view = new TestView(); 2190 TestView* view = new TestView();
2190 view->Reset(); 2191 view->Reset();
2191 view->AddAccelerator(return_accelerator); 2192 view->AddAccelerator(return_accelerator);
2192 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0); 2193 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
2193 2194
2194 // Create a window and add the view as its child. 2195 // Create a window and add the view as its child.
2195 scoped_ptr<Widget> widget(new Widget); 2196 std::unique_ptr<Widget> widget(new Widget);
2196 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2197 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2197 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2198 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2198 params.bounds = gfx::Rect(0, 0, 100, 100); 2199 params.bounds = gfx::Rect(0, 0, 100, 100);
2199 widget->Init(params); 2200 widget->Init(params);
2200 View* root = widget->GetRootView(); 2201 View* root = widget->GetRootView();
2201 root->AddChildView(view); 2202 root->AddChildView(view);
2202 widget->Show(); 2203 widget->Show();
2203 2204
2204 // Get the focus manager. 2205 // Get the focus manager.
2205 FocusManager* focus_manager = widget->GetFocusManager(); 2206 FocusManager* focus_manager = widget->GetFocusManager();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2248 widget->CloseNow(); 2249 widget->CloseNow();
2249 } 2250 }
2250 2251
2251 TEST_F(ViewTest, HiddenViewWithAccelerator) { 2252 TEST_F(ViewTest, HiddenViewWithAccelerator) {
2252 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 2253 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
2253 TestView* view = new TestView(); 2254 TestView* view = new TestView();
2254 view->Reset(); 2255 view->Reset();
2255 view->AddAccelerator(return_accelerator); 2256 view->AddAccelerator(return_accelerator);
2256 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0); 2257 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
2257 2258
2258 scoped_ptr<Widget> widget(new Widget); 2259 std::unique_ptr<Widget> widget(new Widget);
2259 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2260 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2260 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2261 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2261 params.bounds = gfx::Rect(0, 0, 100, 100); 2262 params.bounds = gfx::Rect(0, 0, 100, 100);
2262 widget->Init(params); 2263 widget->Init(params);
2263 View* root = widget->GetRootView(); 2264 View* root = widget->GetRootView();
2264 root->AddChildView(view); 2265 root->AddChildView(view);
2265 widget->Show(); 2266 widget->Show();
2266 2267
2267 FocusManager* focus_manager = widget->GetFocusManager(); 2268 FocusManager* focus_manager = widget->GetFocusManager();
2268 ASSERT_TRUE(focus_manager); 2269 ASSERT_TRUE(focus_manager);
2269 2270
2270 view->SetVisible(false); 2271 view->SetVisible(false);
2271 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator)); 2272 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
2272 2273
2273 view->SetVisible(true); 2274 view->SetVisible(true);
2274 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 2275 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
2275 2276
2276 widget->CloseNow(); 2277 widget->CloseNow();
2277 } 2278 }
2278 2279
2279 TEST_F(ViewTest, ViewInHiddenWidgetWithAccelerator) { 2280 TEST_F(ViewTest, ViewInHiddenWidgetWithAccelerator) {
2280 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 2281 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
2281 TestView* view = new TestView(); 2282 TestView* view = new TestView();
2282 view->Reset(); 2283 view->Reset();
2283 view->AddAccelerator(return_accelerator); 2284 view->AddAccelerator(return_accelerator);
2284 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0); 2285 EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
2285 2286
2286 scoped_ptr<Widget> widget(new Widget); 2287 std::unique_ptr<Widget> widget(new Widget);
2287 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2288 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2288 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2289 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2289 params.bounds = gfx::Rect(0, 0, 100, 100); 2290 params.bounds = gfx::Rect(0, 0, 100, 100);
2290 widget->Init(params); 2291 widget->Init(params);
2291 View* root = widget->GetRootView(); 2292 View* root = widget->GetRootView();
2292 root->AddChildView(view); 2293 root->AddChildView(view);
2293 2294
2294 FocusManager* focus_manager = widget->GetFocusManager(); 2295 FocusManager* focus_manager = widget->GetFocusManager();
2295 ASSERT_TRUE(focus_manager); 2296 ASSERT_TRUE(focus_manager);
2296 2297
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
2422 // No ReparentNativeView on Mac. See http://crbug.com/514920. 2423 // No ReparentNativeView on Mac. See http://crbug.com/514920.
2423 #if defined(OS_MACOSX) && !defined(USE_AURA) 2424 #if defined(OS_MACOSX) && !defined(USE_AURA)
2424 #define MAYBE_NativeViewHierarchyChanged DISABLED_NativeViewHierarchyChanged 2425 #define MAYBE_NativeViewHierarchyChanged DISABLED_NativeViewHierarchyChanged
2425 #else 2426 #else
2426 #define MAYBE_NativeViewHierarchyChanged NativeViewHierarchyChanged 2427 #define MAYBE_NativeViewHierarchyChanged NativeViewHierarchyChanged
2427 #endif 2428 #endif
2428 2429
2429 // Test that a view can track the current top level widget by overriding 2430 // Test that a view can track the current top level widget by overriding
2430 // View::ViewHierarchyChanged() and View::NativeViewHierarchyChanged(). 2431 // View::ViewHierarchyChanged() and View::NativeViewHierarchyChanged().
2431 TEST_F(ViewTest, MAYBE_NativeViewHierarchyChanged) { 2432 TEST_F(ViewTest, MAYBE_NativeViewHierarchyChanged) {
2432 scoped_ptr<Widget> toplevel1(new Widget); 2433 std::unique_ptr<Widget> toplevel1(new Widget);
2433 Widget::InitParams toplevel1_params = 2434 Widget::InitParams toplevel1_params =
2434 CreateParams(Widget::InitParams::TYPE_POPUP); 2435 CreateParams(Widget::InitParams::TYPE_POPUP);
2435 toplevel1_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2436 toplevel1_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2436 toplevel1->Init(toplevel1_params); 2437 toplevel1->Init(toplevel1_params);
2437 2438
2438 scoped_ptr<Widget> toplevel2(new Widget); 2439 std::unique_ptr<Widget> toplevel2(new Widget);
2439 Widget::InitParams toplevel2_params = 2440 Widget::InitParams toplevel2_params =
2440 CreateParams(Widget::InitParams::TYPE_POPUP); 2441 CreateParams(Widget::InitParams::TYPE_POPUP);
2441 toplevel2_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2442 toplevel2_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2442 toplevel2->Init(toplevel2_params); 2443 toplevel2->Init(toplevel2_params);
2443 2444
2444 Widget* child = new Widget; 2445 Widget* child = new Widget;
2445 Widget::InitParams child_params(Widget::InitParams::TYPE_CONTROL); 2446 Widget::InitParams child_params(Widget::InitParams::TYPE_CONTROL);
2446 child_params.parent = toplevel1->GetNativeView(); 2447 child_params.parent = toplevel1->GetNativeView();
2447 child->Init(child_params); 2448 child->Init(child_params);
2448 2449
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
2669 EXPECT_EQ(25, v3->location_.y()); 2670 EXPECT_EQ(25, v3->location_.y());
2670 2671
2671 root->OnMouseReleased(released); 2672 root->OnMouseReleased(released);
2672 2673
2673 widget->CloseNow(); 2674 widget->CloseNow();
2674 } 2675 }
2675 2676
2676 TEST_F(ViewTest, TransformVisibleBound) { 2677 TEST_F(ViewTest, TransformVisibleBound) {
2677 gfx::Rect viewport_bounds(0, 0, 100, 100); 2678 gfx::Rect viewport_bounds(0, 0, 100, 100);
2678 2679
2679 scoped_ptr<Widget> widget(new Widget); 2680 std::unique_ptr<Widget> widget(new Widget);
2680 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2681 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2681 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2682 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2682 params.bounds = viewport_bounds; 2683 params.bounds = viewport_bounds;
2683 widget->Init(params); 2684 widget->Init(params);
2684 widget->GetRootView()->SetBoundsRect(viewport_bounds); 2685 widget->GetRootView()->SetBoundsRect(viewport_bounds);
2685 2686
2686 View* viewport = new View; 2687 View* viewport = new View;
2687 widget->SetContentsView(viewport); 2688 widget->SetContentsView(viewport);
2688 View* contents = new View; 2689 View* contents = new View;
2689 viewport->AddChildView(contents); 2690 viewport->AddChildView(contents);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2726 void OnVisibleBoundsChanged() override { received_notification_ = true; } 2727 void OnVisibleBoundsChanged() override { received_notification_ = true; }
2727 2728
2728 bool received_notification_; 2729 bool received_notification_;
2729 2730
2730 DISALLOW_COPY_AND_ASSIGN(VisibleBoundsView); 2731 DISALLOW_COPY_AND_ASSIGN(VisibleBoundsView);
2731 }; 2732 };
2732 2733
2733 TEST_F(ViewTest, OnVisibleBoundsChanged) { 2734 TEST_F(ViewTest, OnVisibleBoundsChanged) {
2734 gfx::Rect viewport_bounds(0, 0, 100, 100); 2735 gfx::Rect viewport_bounds(0, 0, 100, 100);
2735 2736
2736 scoped_ptr<Widget> widget(new Widget); 2737 std::unique_ptr<Widget> widget(new Widget);
2737 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2738 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2738 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2739 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2739 params.bounds = viewport_bounds; 2740 params.bounds = viewport_bounds;
2740 widget->Init(params); 2741 widget->Init(params);
2741 widget->GetRootView()->SetBoundsRect(viewport_bounds); 2742 widget->GetRootView()->SetBoundsRect(viewport_bounds);
2742 2743
2743 View* viewport = new View; 2744 View* viewport = new View;
2744 widget->SetContentsView(viewport); 2745 widget->SetContentsView(viewport);
2745 View* contents = new View; 2746 View* contents = new View;
2746 viewport->AddChildView(contents); 2747 viewport->AddChildView(contents);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2828 view.SetBoundsRect(gfx::Rect(0, 0, 100, 100)); 2829 view.SetBoundsRect(gfx::Rect(0, 0, 100, 100));
2829 EXPECT_TRUE(view.scheduled_paint_rects_.empty()); 2830 EXPECT_TRUE(view.scheduled_paint_rects_.empty());
2830 } 2831 }
2831 2832
2832 // Verifies AddChildView() and RemoveChildView() schedule appropriate paints. 2833 // Verifies AddChildView() and RemoveChildView() schedule appropriate paints.
2833 TEST_F(ViewTest, AddAndRemoveSchedulePaints) { 2834 TEST_F(ViewTest, AddAndRemoveSchedulePaints) {
2834 gfx::Rect viewport_bounds(0, 0, 100, 100); 2835 gfx::Rect viewport_bounds(0, 0, 100, 100);
2835 2836
2836 // We have to put the View hierarchy into a Widget or no paints will be 2837 // We have to put the View hierarchy into a Widget or no paints will be
2837 // scheduled. 2838 // scheduled.
2838 scoped_ptr<Widget> widget(new Widget); 2839 std::unique_ptr<Widget> widget(new Widget);
2839 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 2840 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
2840 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 2841 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
2841 params.bounds = viewport_bounds; 2842 params.bounds = viewport_bounds;
2842 widget->Init(params); 2843 widget->Init(params);
2843 widget->GetRootView()->SetBoundsRect(viewport_bounds); 2844 widget->GetRootView()->SetBoundsRect(viewport_bounds);
2844 2845
2845 TestView* parent_view = new TestView; 2846 TestView* parent_view = new TestView;
2846 widget->SetContentsView(parent_view); 2847 widget->SetContentsView(parent_view);
2847 parent_view->SetBoundsRect(viewport_bounds); 2848 parent_view->SetBoundsRect(viewport_bounds);
2848 parent_view->scheduled_paint_rects_.clear(); 2849 parent_view->scheduled_paint_rects_.clear();
2849 2850
2850 View* child_view = new View; 2851 View* child_view = new View;
2851 child_view->SetBoundsRect(gfx::Rect(0, 0, 20, 20)); 2852 child_view->SetBoundsRect(gfx::Rect(0, 0, 20, 20));
2852 parent_view->AddChildView(child_view); 2853 parent_view->AddChildView(child_view);
2853 ASSERT_EQ(1U, parent_view->scheduled_paint_rects_.size()); 2854 ASSERT_EQ(1U, parent_view->scheduled_paint_rects_.size());
2854 EXPECT_EQ(child_view->bounds(), parent_view->scheduled_paint_rects_.front()); 2855 EXPECT_EQ(child_view->bounds(), parent_view->scheduled_paint_rects_.front());
2855 2856
2856 parent_view->scheduled_paint_rects_.clear(); 2857 parent_view->scheduled_paint_rects_.clear();
2857 parent_view->RemoveChildView(child_view); 2858 parent_view->RemoveChildView(child_view);
2858 scoped_ptr<View> child_deleter(child_view); 2859 std::unique_ptr<View> child_deleter(child_view);
2859 ASSERT_EQ(1U, parent_view->scheduled_paint_rects_.size()); 2860 ASSERT_EQ(1U, parent_view->scheduled_paint_rects_.size());
2860 EXPECT_EQ(child_view->bounds(), parent_view->scheduled_paint_rects_.front()); 2861 EXPECT_EQ(child_view->bounds(), parent_view->scheduled_paint_rects_.front());
2861 2862
2862 widget->CloseNow(); 2863 widget->CloseNow();
2863 } 2864 }
2864 2865
2865 // Tests conversion methods with a transform. 2866 // Tests conversion methods with a transform.
2866 TEST_F(ViewTest, ConversionsWithTransform) { 2867 TEST_F(ViewTest, ConversionsWithTransform) {
2867 TestView top_view; 2868 TestView top_view;
2868 2869
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
3044 View::ConvertRectToTarget(&top_view, child_2, &rect); 3045 View::ConvertRectToTarget(&top_view, child_2, &rect);
3045 EXPECT_FLOAT_EQ(50.0f, rect.x()); 3046 EXPECT_FLOAT_EQ(50.0f, rect.x());
3046 EXPECT_FLOAT_EQ(55.0f, rect.y()); 3047 EXPECT_FLOAT_EQ(55.0f, rect.y());
3047 EXPECT_FLOAT_EQ(20.0f, rect.width()); 3048 EXPECT_FLOAT_EQ(20.0f, rect.width());
3048 EXPECT_FLOAT_EQ(30.0f, rect.height()); 3049 EXPECT_FLOAT_EQ(30.0f, rect.height());
3049 } 3050 }
3050 } 3051 }
3051 3052
3052 // Tests conversion methods to and from screen coordinates. 3053 // Tests conversion methods to and from screen coordinates.
3053 TEST_F(ViewTest, ConversionsToFromScreen) { 3054 TEST_F(ViewTest, ConversionsToFromScreen) {
3054 scoped_ptr<Widget> widget(new Widget); 3055 std::unique_ptr<Widget> widget(new Widget);
3055 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 3056 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
3056 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 3057 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
3057 params.bounds = gfx::Rect(50, 50, 650, 650); 3058 params.bounds = gfx::Rect(50, 50, 650, 650);
3058 widget->Init(params); 3059 widget->Init(params);
3059 3060
3060 View* child = new View; 3061 View* child = new View;
3061 widget->GetRootView()->AddChildView(child); 3062 widget->GetRootView()->AddChildView(child);
3062 child->SetBounds(10, 10, 100, 200); 3063 child->SetBounds(10, 10, 100, 200);
3063 gfx::Transform t; 3064 gfx::Transform t;
3064 t.Scale(0.5, 0.5); 3065 t.Scale(0.5, 0.5);
3065 child->SetTransform(t); 3066 child->SetTransform(t);
3066 3067
3067 gfx::Point point_in_screen(100, 90); 3068 gfx::Point point_in_screen(100, 90);
3068 gfx::Point point_in_child(80, 60); 3069 gfx::Point point_in_child(80, 60);
3069 3070
3070 gfx::Point point = point_in_screen; 3071 gfx::Point point = point_in_screen;
3071 View::ConvertPointFromScreen(child, &point); 3072 View::ConvertPointFromScreen(child, &point);
3072 EXPECT_EQ(point_in_child.ToString(), point.ToString()); 3073 EXPECT_EQ(point_in_child.ToString(), point.ToString());
3073 3074
3074 View::ConvertPointToScreen(child, &point); 3075 View::ConvertPointToScreen(child, &point);
3075 EXPECT_EQ(point_in_screen.ToString(), point.ToString()); 3076 EXPECT_EQ(point_in_screen.ToString(), point.ToString());
3076 } 3077 }
3077 3078
3078 // Tests conversion methods for rectangles. 3079 // Tests conversion methods for rectangles.
3079 TEST_F(ViewTest, ConvertRectWithTransform) { 3080 TEST_F(ViewTest, ConvertRectWithTransform) {
3080 scoped_ptr<Widget> widget(new Widget); 3081 std::unique_ptr<Widget> widget(new Widget);
3081 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 3082 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
3082 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 3083 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
3083 params.bounds = gfx::Rect(50, 50, 650, 650); 3084 params.bounds = gfx::Rect(50, 50, 650, 650);
3084 widget->Init(params); 3085 widget->Init(params);
3085 View* root = widget->GetRootView(); 3086 View* root = widget->GetRootView();
3086 3087
3087 TestView* v1 = new TestView; 3088 TestView* v1 = new TestView;
3088 TestView* v2 = new TestView; 3089 TestView* v2 = new TestView;
3089 root->AddChildView(v1); 3090 root->AddChildView(v1);
3090 v1->AddChildView(v2); 3091 v1->AddChildView(v2);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
3185 // v1 3186 // v1
3186 // +-- v2 3187 // +-- v2
3187 // +-- v3 3188 // +-- v3
3188 // +-- v4 (starts here, then get reparented to v1) 3189 // +-- v4 (starts here, then get reparented to v1)
3189 TEST_F(ViewTest, ViewHierarchyChanged) { 3190 TEST_F(ViewTest, ViewHierarchyChanged) {
3190 ObserverView v1; 3191 ObserverView v1;
3191 3192
3192 ObserverView* v3 = new ObserverView(); 3193 ObserverView* v3 = new ObserverView();
3193 3194
3194 // Add |v3| to |v2|. 3195 // Add |v3| to |v2|.
3195 scoped_ptr<ObserverView> v2(new ObserverView()); 3196 std::unique_ptr<ObserverView> v2(new ObserverView());
3196 v2->AddChildView(v3); 3197 v2->AddChildView(v3);
3197 3198
3198 // Make sure both |v2| and |v3| receive the ViewHierarchyChanged() 3199 // Make sure both |v2| and |v3| receive the ViewHierarchyChanged()
3199 // notification. 3200 // notification.
3200 EXPECT_TRUE(v2->has_add_details()); 3201 EXPECT_TRUE(v2->has_add_details());
3201 EXPECT_FALSE(v2->has_remove_details()); 3202 EXPECT_FALSE(v2->has_remove_details());
3202 EXPECT_EQ(v2.get(), v2->add_details().parent); 3203 EXPECT_EQ(v2.get(), v2->add_details().parent);
3203 EXPECT_EQ(v3, v2->add_details().child); 3204 EXPECT_EQ(v3, v2->add_details().child);
3204 EXPECT_EQ(NULL, v2->add_details().move_view); 3205 EXPECT_EQ(NULL, v2->add_details().move_view);
3205 3206
(...skipping 994 matching lines...) Expand 10 before | Expand all | Expand 10 after
4200 // Move c1 to the front. The layers should have moved too. 4201 // Move c1 to the front. The layers should have moved too.
4201 content->ReorderChildView(c1, -1); 4202 content->ReorderChildView(c1, -1);
4202 EXPECT_EQ(c1->layer(), parent_layer->children()[1]); 4203 EXPECT_EQ(c1->layer(), parent_layer->children()[1]);
4203 EXPECT_EQ(c2->layer(), parent_layer->children()[0]); 4204 EXPECT_EQ(c2->layer(), parent_layer->children()[0]);
4204 } 4205 }
4205 4206
4206 // Verifies that the layer of a view can be acquired properly. 4207 // Verifies that the layer of a view can be acquired properly.
4207 TEST_F(ViewLayerTest, AcquireLayer) { 4208 TEST_F(ViewLayerTest, AcquireLayer) {
4208 View* content = new View; 4209 View* content = new View;
4209 widget()->SetContentsView(content); 4210 widget()->SetContentsView(content);
4210 scoped_ptr<View> c1(new View); 4211 std::unique_ptr<View> c1(new View);
4211 c1->SetPaintToLayer(true); 4212 c1->SetPaintToLayer(true);
4212 EXPECT_TRUE(c1->layer()); 4213 EXPECT_TRUE(c1->layer());
4213 content->AddChildView(c1.get()); 4214 content->AddChildView(c1.get());
4214 4215
4215 scoped_ptr<ui::Layer> layer(c1->AcquireLayer()); 4216 std::unique_ptr<ui::Layer> layer(c1->AcquireLayer());
4216 EXPECT_EQ(layer.get(), c1->layer()); 4217 EXPECT_EQ(layer.get(), c1->layer());
4217 4218
4218 scoped_ptr<ui::Layer> layer2(c1->RecreateLayer()); 4219 std::unique_ptr<ui::Layer> layer2(c1->RecreateLayer());
4219 EXPECT_NE(c1->layer(), layer2.get()); 4220 EXPECT_NE(c1->layer(), layer2.get());
4220 4221
4221 // Destroy view before destroying layer. 4222 // Destroy view before destroying layer.
4222 c1.reset(); 4223 c1.reset();
4223 } 4224 }
4224 4225
4225 // Verify the z-order of the layers as a result of calling RecreateLayer(). 4226 // Verify the z-order of the layers as a result of calling RecreateLayer().
4226 TEST_F(ViewLayerTest, RecreateLayerZOrder) { 4227 TEST_F(ViewLayerTest, RecreateLayerZOrder) {
4227 scoped_ptr<View> v(new View()); 4228 std::unique_ptr<View> v(new View());
4228 v->SetPaintToLayer(true); 4229 v->SetPaintToLayer(true);
4229 4230
4230 View* v1 = new View(); 4231 View* v1 = new View();
4231 v1->SetPaintToLayer(true); 4232 v1->SetPaintToLayer(true);
4232 v->AddChildView(v1); 4233 v->AddChildView(v1);
4233 View* v2 = new View(); 4234 View* v2 = new View();
4234 v2->SetPaintToLayer(true); 4235 v2->SetPaintToLayer(true);
4235 v->AddChildView(v2); 4236 v->AddChildView(v2);
4236 4237
4237 // Test the initial z-order. 4238 // Test the initial z-order.
4238 const std::vector<ui::Layer*>& child_layers_pre = v->layer()->children(); 4239 const std::vector<ui::Layer*>& child_layers_pre = v->layer()->children();
4239 ASSERT_EQ(2u, child_layers_pre.size()); 4240 ASSERT_EQ(2u, child_layers_pre.size());
4240 EXPECT_EQ(v1->layer(), child_layers_pre[0]); 4241 EXPECT_EQ(v1->layer(), child_layers_pre[0]);
4241 EXPECT_EQ(v2->layer(), child_layers_pre[1]); 4242 EXPECT_EQ(v2->layer(), child_layers_pre[1]);
4242 4243
4243 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); 4244 std::unique_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer());
4244 4245
4245 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. 4246 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|.
4246 // for |v1| and |v2|. 4247 // for |v1| and |v2|.
4247 const std::vector<ui::Layer*>& child_layers_post = v->layer()->children(); 4248 const std::vector<ui::Layer*>& child_layers_post = v->layer()->children();
4248 ASSERT_EQ(3u, child_layers_post.size()); 4249 ASSERT_EQ(3u, child_layers_post.size());
4249 EXPECT_EQ(v1->layer(), child_layers_post[0]); 4250 EXPECT_EQ(v1->layer(), child_layers_post[0]);
4250 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]); 4251 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]);
4251 EXPECT_EQ(v2->layer(), child_layers_post[2]); 4252 EXPECT_EQ(v2->layer(), child_layers_post[2]);
4252 } 4253 }
4253 4254
(...skipping 11 matching lines...) Expand all
4265 v->AddChildView(v2); 4266 v->AddChildView(v2);
4266 4267
4267 ui::Layer* root_layer = GetRootLayer(); 4268 ui::Layer* root_layer = GetRootLayer();
4268 4269
4269 // Test the initial z-order. 4270 // Test the initial z-order.
4270 const std::vector<ui::Layer*>& child_layers_pre = root_layer->children(); 4271 const std::vector<ui::Layer*>& child_layers_pre = root_layer->children();
4271 ASSERT_EQ(2u, child_layers_pre.size()); 4272 ASSERT_EQ(2u, child_layers_pre.size());
4272 EXPECT_EQ(v1->layer(), child_layers_pre[0]); 4273 EXPECT_EQ(v1->layer(), child_layers_pre[0]);
4273 EXPECT_EQ(v2->layer(), child_layers_pre[1]); 4274 EXPECT_EQ(v2->layer(), child_layers_pre[1]);
4274 4275
4275 scoped_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer()); 4276 std::unique_ptr<ui::Layer> v1_old_layer(v1->RecreateLayer());
4276 4277
4277 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|. 4278 // Test the new layer order. We expect: |v1| |v1_old_layer| |v2|.
4278 const std::vector<ui::Layer*>& child_layers_post = root_layer->children(); 4279 const std::vector<ui::Layer*>& child_layers_post = root_layer->children();
4279 ASSERT_EQ(3u, child_layers_post.size()); 4280 ASSERT_EQ(3u, child_layers_post.size());
4280 EXPECT_EQ(v1->layer(), child_layers_post[0]); 4281 EXPECT_EQ(v1->layer(), child_layers_post[0]);
4281 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]); 4282 EXPECT_EQ(v1_old_layer.get(), child_layers_post[1]);
4282 EXPECT_EQ(v2->layer(), child_layers_post[2]); 4283 EXPECT_EQ(v2->layer(), child_layers_post[2]);
4283 } 4284 }
4284 4285
4285 // Verifies RecreateLayer() moves all Layers over, even those that don't have 4286 // Verifies RecreateLayer() moves all Layers over, even those that don't have
4286 // a View. 4287 // a View.
4287 TEST_F(ViewLayerTest, RecreateLayerMovesNonViewChildren) { 4288 TEST_F(ViewLayerTest, RecreateLayerMovesNonViewChildren) {
4288 View v; 4289 View v;
4289 v.SetPaintToLayer(true); 4290 v.SetPaintToLayer(true);
4290 View child; 4291 View child;
4291 child.SetPaintToLayer(true); 4292 child.SetPaintToLayer(true);
4292 v.AddChildView(&child); 4293 v.AddChildView(&child);
4293 ASSERT_TRUE(v.layer() != NULL); 4294 ASSERT_TRUE(v.layer() != NULL);
4294 ASSERT_EQ(1u, v.layer()->children().size()); 4295 ASSERT_EQ(1u, v.layer()->children().size());
4295 EXPECT_EQ(v.layer()->children()[0], child.layer()); 4296 EXPECT_EQ(v.layer()->children()[0], child.layer());
4296 4297
4297 ui::Layer layer(ui::LAYER_NOT_DRAWN); 4298 ui::Layer layer(ui::LAYER_NOT_DRAWN);
4298 v.layer()->Add(&layer); 4299 v.layer()->Add(&layer);
4299 v.layer()->StackAtBottom(&layer); 4300 v.layer()->StackAtBottom(&layer);
4300 4301
4301 scoped_ptr<ui::Layer> old_layer(v.RecreateLayer()); 4302 std::unique_ptr<ui::Layer> old_layer(v.RecreateLayer());
4302 4303
4303 // All children should be moved from old layer to new layer. 4304 // All children should be moved from old layer to new layer.
4304 ASSERT_TRUE(old_layer.get() != NULL); 4305 ASSERT_TRUE(old_layer.get() != NULL);
4305 EXPECT_TRUE(old_layer->children().empty()); 4306 EXPECT_TRUE(old_layer->children().empty());
4306 4307
4307 // And new layer should have the two children. 4308 // And new layer should have the two children.
4308 ASSERT_TRUE(v.layer() != NULL); 4309 ASSERT_TRUE(v.layer() != NULL);
4309 ASSERT_EQ(2u, v.layer()->children().size()); 4310 ASSERT_EQ(2u, v.layer()->children().size());
4310 EXPECT_EQ(v.layer()->children()[0], &layer); 4311 EXPECT_EQ(v.layer()->children()[0], &layer);
4311 EXPECT_EQ(v.layer()->children()[1], child.layer()); 4312 EXPECT_EQ(v.layer()->children()[1], child.layer());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
4397 TEST_F(ViewTest, OnNativeThemeChanged) { 4398 TEST_F(ViewTest, OnNativeThemeChanged) {
4398 TestView* test_view = new TestView(); 4399 TestView* test_view = new TestView();
4399 EXPECT_FALSE(test_view->native_theme_); 4400 EXPECT_FALSE(test_view->native_theme_);
4400 TestView* test_view_child = new TestView(); 4401 TestView* test_view_child = new TestView();
4401 EXPECT_FALSE(test_view_child->native_theme_); 4402 EXPECT_FALSE(test_view_child->native_theme_);
4402 4403
4403 // Child view added before the widget hierarchy exists should get the 4404 // Child view added before the widget hierarchy exists should get the
4404 // new native theme notification. 4405 // new native theme notification.
4405 test_view->AddChildView(test_view_child); 4406 test_view->AddChildView(test_view_child);
4406 4407
4407 scoped_ptr<Widget> widget(new Widget); 4408 std::unique_ptr<Widget> widget(new Widget);
4408 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); 4409 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
4409 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 4410 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
4410 widget->Init(params); 4411 widget->Init(params);
4411 4412
4412 widget->GetRootView()->AddChildView(test_view); 4413 widget->GetRootView()->AddChildView(test_view);
4413 EXPECT_TRUE(test_view->native_theme_); 4414 EXPECT_TRUE(test_view->native_theme_);
4414 EXPECT_EQ(widget->GetNativeTheme(), test_view->native_theme_); 4415 EXPECT_EQ(widget->GetNativeTheme(), test_view->native_theme_);
4415 EXPECT_TRUE(test_view_child->native_theme_); 4416 EXPECT_TRUE(test_view_child->native_theme_);
4416 EXPECT_EQ(widget->GetNativeTheme(), test_view_child->native_theme_); 4417 EXPECT_EQ(widget->GetNativeTheme(), test_view_child->native_theme_);
4417 4418
(...skipping 19 matching lines...) Expand all
4437 } 4438 }
4438 4439
4439 TestView* view_; 4440 TestView* view_;
4440 bool had_mouse_event_; 4441 bool had_mouse_event_;
4441 }; 4442 };
4442 4443
4443 TEST_F(ViewTest, ScopedTargetHandlerReceivesEvents) { 4444 TEST_F(ViewTest, ScopedTargetHandlerReceivesEvents) {
4444 TestView* v = new TestView(); 4445 TestView* v = new TestView();
4445 v->SetBoundsRect(gfx::Rect(0, 0, 300, 300)); 4446 v->SetBoundsRect(gfx::Rect(0, 0, 300, 300));
4446 4447
4447 scoped_ptr<Widget> widget(new Widget); 4448 std::unique_ptr<Widget> widget(new Widget);
4448 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 4449 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
4449 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 4450 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
4450 params.bounds = gfx::Rect(50, 50, 350, 350); 4451 params.bounds = gfx::Rect(50, 50, 350, 350);
4451 widget->Init(params); 4452 widget->Init(params);
4452 View* root = widget->GetRootView(); 4453 View* root = widget->GetRootView();
4453 root->AddChildView(v); 4454 root->AddChildView(v);
4454 v->Reset(); 4455 v->Reset();
4455 { 4456 {
4456 TestEventHandler handler(v); 4457 TestEventHandler handler(v);
4457 ui::ScopedTargetHandler scoped_target_handler(v, &handler); 4458 ui::ScopedTargetHandler scoped_target_handler(v, &handler);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
4564 widget.Init(params); 4565 widget.Init(params);
4565 4566
4566 AddViewWithChildLayer(widget.GetRootView()); 4567 AddViewWithChildLayer(widget.GetRootView());
4567 ViewThatAddsViewInOnNativeThemeChanged* v = 4568 ViewThatAddsViewInOnNativeThemeChanged* v =
4568 new ViewThatAddsViewInOnNativeThemeChanged; 4569 new ViewThatAddsViewInOnNativeThemeChanged;
4569 widget.GetRootView()->AddChildView(v); 4570 widget.GetRootView()->AddChildView(v);
4570 EXPECT_TRUE(v->on_native_theme_changed_called()); 4571 EXPECT_TRUE(v->on_native_theme_changed_called());
4571 } 4572 }
4572 4573
4573 } // namespace views 4574 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/view_targeter_unittest.cc ('k') | ui/views/view_unittest_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698