| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_COMMON_SYSTEM_TRAY_TEST_TEST_SYSTEM_TRAY_ITEM_H_ |
| #define ASH_COMMON_SYSTEM_TRAY_TEST_TEST_SYSTEM_TRAY_ITEM_H_ |
| |
| #include "ash/common/system/tray/system_tray_item.h" |
| |
| namespace ash { |
| namespace test { |
| |
| // Trivial item implementation that tracks its views for testing. By default |
| // views are created and returned by the Create*View() methods and they are |
| // configured to be visible. Use set_has_views() and set_views_are_visible() to |
| // change this behavior. |
| class TestSystemTrayItem : public SystemTrayItem { |
| public: |
| TestSystemTrayItem(); |
| explicit TestSystemTrayItem(SystemTrayItem::UmaType uma_type); |
| ~TestSystemTrayItem() override; |
| |
| void set_has_views(bool has_views) { has_views_ = has_views; } |
| void set_views_are_visible(bool visible) { views_are_visible_ = visible; } |
| |
| views::View* tray_view() const { return tray_view_; } |
| views::View* default_view() const { return default_view_; } |
| views::View* detailed_view() const { return detailed_view_; } |
| |
| // SystemTrayItem: |
| views::View* CreateTrayView(LoginStatus status) override; |
| views::View* CreateDefaultView(LoginStatus status) override; |
| views::View* CreateDetailedView(LoginStatus status) override; |
| void DestroyTrayView() override; |
| void DestroyDefaultView() override; |
| void DestroyDetailedView() override; |
| void UpdateAfterLoginStatusChange(LoginStatus status) override; |
| |
| private: |
| bool has_views_; |
| bool views_are_visible_; |
| views::View* tray_view_; |
| views::View* default_view_; |
| views::View* detailed_view_; |
| |
| DISALLOW_COPY_AND_ASSIGN(TestSystemTrayItem); |
| }; |
| |
| } // namespace test |
| } // namespace ash |
| |
| #endif // ASH_COMMON_SYSTEM_TRAY_TEST_TEST_SYSTEM_TRAY_ITEM_H_ |