status_area_overflow_button_tray_unittest.cc 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/system/tray/status_area_overflow_button_tray.h"
  5. #include "ash/session/session_controller_impl.h"
  6. #include "ash/shell.h"
  7. #include "ash/system/status_area_widget.h"
  8. #include "ash/system/status_area_widget_test_helper.h"
  9. #include "ash/test/ash_test_base.h"
  10. #include "ash/test/ash_test_helper.h"
  11. #include "base/run_loop.h"
  12. #include "ui/events/event.h"
  13. #include "ui/events/gestures/gesture_types.h"
  14. #include "ui/events/types/event_type.h"
  15. namespace ash {
  16. class StatusAreaOverflowButtonTrayTest : public AshTestBase {
  17. public:
  18. StatusAreaOverflowButtonTrayTest() = default;
  19. StatusAreaOverflowButtonTrayTest(const StatusAreaOverflowButtonTrayTest&) =
  20. delete;
  21. StatusAreaOverflowButtonTrayTest& operator=(
  22. const StatusAreaOverflowButtonTrayTest&) = delete;
  23. ~StatusAreaOverflowButtonTrayTest() override = default;
  24. void SetUp() override { AshTestBase::SetUp(); }
  25. void TapButton() {
  26. ui::GestureEvent tap_event =
  27. ui::GestureEvent(0, 0, 0, base::TimeTicks(),
  28. ui::GestureEventDetails(ui::ET_GESTURE_TAP));
  29. GetTray()->PerformAction(tap_event);
  30. }
  31. StatusAreaOverflowButtonTray* GetTray() {
  32. return StatusAreaWidgetTestHelper::GetStatusAreaWidget()
  33. ->overflow_button_tray();
  34. }
  35. };
  36. TEST_F(StatusAreaOverflowButtonTrayTest, ToggleExpanded) {
  37. EXPECT_EQ(StatusAreaOverflowButtonTray::CLICK_TO_EXPAND, GetTray()->state());
  38. TapButton();
  39. base::RunLoop().RunUntilIdle();
  40. EXPECT_EQ(StatusAreaOverflowButtonTray::CLICK_TO_COLLAPSE,
  41. GetTray()->state());
  42. TapButton();
  43. EXPECT_EQ(StatusAreaOverflowButtonTray::CLICK_TO_EXPAND, GetTray()->state());
  44. }
  45. } // namespace ash