| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/common/system/tray/tray_details_view.h" | 5 #include "ash/common/system/tray/tray_details_view.h" |
| 6 | 6 |
| 7 #include "ash/common/ash_view_ids.h" |
| 7 #include "ash/common/material_design/material_design_controller.h" | 8 #include "ash/common/material_design/material_design_controller.h" |
| 8 #include "ash/common/system/tray/hover_highlight_view.h" | 9 #include "ash/common/system/tray/hover_highlight_view.h" |
| 9 #include "ash/common/system/tray/special_popup_row.h" | 10 #include "ash/common/system/tray/special_popup_row.h" |
| 10 #include "ash/common/system/tray/system_tray.h" | 11 #include "ash/common/system/tray/system_tray.h" |
| 11 #include "ash/common/system/tray/system_tray_item.h" | 12 #include "ash/common/system/tray/system_tray_item.h" |
| 12 #include "ash/common/system/tray/tray_constants.h" | 13 #include "ash/common/system/tray/tray_constants.h" |
| 13 #include "ash/common/system/tray/tray_popup_header_button.h" | 14 #include "ash/common/system/tray/tray_popup_header_button.h" |
| 14 #include "ash/common/system/tray/view_click_listener.h" | 15 #include "ash/common/system/tray/view_click_listener.h" |
| 15 #include "ash/test/ash_test_base.h" | 16 #include "ash/test/ash_test_base.h" |
| 16 #include "base/run_loop.h" | 17 #include "base/run_loop.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 | 54 |
| 54 tray_popup_header_button_ = | 55 tray_popup_header_button_ = |
| 55 new TrayPopupHeaderButton(this, IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED, | 56 new TrayPopupHeaderButton(this, IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED, |
| 56 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED, | 57 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED, |
| 57 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED_HOVER, | 58 IDR_AURA_UBER_TRAY_BLUETOOTH_ENABLED_HOVER, |
| 58 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED_HOVER, | 59 IDR_AURA_UBER_TRAY_BLUETOOTH_DISABLED_HOVER, |
| 59 IDS_ASH_STATUS_TRAY_BLUETOOTH); | 60 IDS_ASH_STATUS_TRAY_BLUETOOTH); |
| 60 title_row()->AddViewToRowNonMd(tray_popup_header_button_, true); | 61 title_row()->AddViewToRowNonMd(tray_popup_header_button_, true); |
| 61 } | 62 } |
| 62 | 63 |
| 64 void CreateScrollerViews() { CreateScrollableList(); } |
| 65 |
| 63 private: | 66 private: |
| 64 TrayPopupHeaderButton* tray_popup_header_button_; | 67 TrayPopupHeaderButton* tray_popup_header_button_; |
| 65 | 68 |
| 66 DISALLOW_COPY_AND_ASSIGN(TestDetailsView); | 69 DISALLOW_COPY_AND_ASSIGN(TestDetailsView); |
| 67 }; | 70 }; |
| 68 | 71 |
| 69 // Trivial item implementation that tracks its views for testing. | 72 // Trivial item implementation that tracks its views for testing. |
| 70 class TestItem : public SystemTrayItem { | 73 class TestItem : public SystemTrayItem { |
| 71 public: | 74 public: |
| 72 TestItem() | 75 TestItem() |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 | 308 |
| 306 ui::test::EventGenerator& generator = GetEventGenerator(); | 309 ui::test::EventGenerator& generator = GetEventGenerator(); |
| 307 gfx::Rect bounds = button->GetBoundsInScreen(); | 310 gfx::Rect bounds = button->GetBoundsInScreen(); |
| 308 gfx::Point initial_point(bounds.x() - 1, bounds.y()); | 311 gfx::Point initial_point(bounds.x() - 1, bounds.y()); |
| 309 generator.set_current_location(initial_point); | 312 generator.set_current_location(initial_point); |
| 310 generator.MoveMouseBy(1, 0); | 313 generator.MoveMouseBy(1, 0); |
| 311 RunAllPendingInMessageLoop(); | 314 RunAllPendingInMessageLoop(); |
| 312 EXPECT_TRUE(button->background()); | 315 EXPECT_TRUE(button->background()); |
| 313 } | 316 } |
| 314 | 317 |
| 318 TEST_F(TrayDetailsViewTest, ScrollContentsTest) { |
| 319 SystemTray* tray = GetPrimarySystemTray(); |
| 320 TestItem* test_item = new TestItem; |
| 321 tray->AddTrayItem(test_item); |
| 322 tray->ShowDefaultView(BUBBLE_CREATE_NEW); |
| 323 RunAllPendingInMessageLoop(); |
| 324 tray->ShowDetailedView(test_item, 0, true, BUBBLE_USE_EXISTING); |
| 325 RunAllPendingInMessageLoop(); |
| 326 test_item->detailed_view()->CreateScrollerViews(); |
| 327 |
| 328 test_item->detailed_view()->scroll_content()->SetPaintToLayer(true); |
| 329 views::View* view1 = new views::View(); |
| 330 test_item->detailed_view()->scroll_content()->AddChildView(view1); |
| 331 views::View* view2 = new views::View(); |
| 332 view2->SetPaintToLayer(true); |
| 333 test_item->detailed_view()->scroll_content()->AddChildView(view2); |
| 334 views::View* view3 = new views::View(); |
| 335 view3->SetPaintToLayer(true); |
| 336 test_item->detailed_view()->scroll_content()->AddChildView(view3); |
| 337 |
| 338 // Child layers should have same order as the child views. |
| 339 const std::vector<ui::Layer*>& layers = |
| 340 test_item->detailed_view()->scroll_content()->layer()->children(); |
| 341 EXPECT_EQ(2u, layers.size()); |
| 342 EXPECT_EQ(view2->layer(), layers[0]); |
| 343 EXPECT_EQ(view3->layer(), layers[1]); |
| 344 |
| 345 // Mark |view2| as sticky and add one more child (which will reorder layers). |
| 346 view2->set_id(VIEW_ID_STICKY_HEADER); |
| 347 views::View* view4 = new views::View(); |
| 348 view4->SetPaintToLayer(true); |
| 349 test_item->detailed_view()->scroll_content()->AddChildView(view4); |
| 350 |
| 351 // Sticky header layer should be above the last child's layer. |
| 352 EXPECT_EQ(3u, layers.size()); |
| 353 EXPECT_EQ(view3->layer(), layers[0]); |
| 354 EXPECT_EQ(view4->layer(), layers[1]); |
| 355 EXPECT_EQ(view2->layer(), layers[2]); |
| 356 } |
| 357 |
| 315 } // namespace test | 358 } // namespace test |
| 316 } // namespace ash | 359 } // namespace ash |
| OLD | NEW |