#ifndef ASH_GAME_DASHBOARD_GAME_DASHBOARD_CONTEXT_TEST_API_H_
#define ASH_GAME_DASHBOARD_GAME_DASHBOARD_CONTEXT_TEST_API_H_
#include <string>
#include <string_view>
#include "ash/game_dashboard/game_dashboard_context.h"
#include "base/memory/raw_ptr.h"
namespace base {
class OneShotTimer;
class RepeatingTimer;
}
namespace ui::test {
class EventGenerator;
}
namespace views {
class BoxLayoutView;
class Button;
class Label;
class LabelButton;
class View;
class Widget;
}
namespace ash {
class AnchoredNudge;
class FeatureTile;
class GameDashboardBatteryView;
class GameDashboardButton;
class GameDashboardButtonRevealController;
class GameDashboardMainMenuCursorHandler;
class GameDashboardMainMenuView;
class GameDashboardNetworkView;
class GameDashboardToolbarView;
class IconButton;
class PillButton;
class TimeView;
class Switch;
class GameDashboardContextTestApi {
public:
GameDashboardContextTestApi(GameDashboardContext* context,
ui::test::EventGenerator* event_generator);
GameDashboardContextTestApi(GameDashboardContextTestApi&) = delete;
GameDashboardContextTestApi& operator=(GameDashboardContextTestApi&) = delete;
~GameDashboardContextTestApi() = default;
GameDashboardContext* context() { return context_; }
const base::RepeatingTimer& GetRecordingTimer() const;
const std::u16string& GetRecordingDuration() const;
const GameDashboardMainMenuCursorHandler* GetMainMenuCursorHandler() const;
views::Widget* GetGameDashboardButtonWidget() const;
GameDashboardButton* GetGameDashboardButton() const;
float GetGameDashboardButtonCornerRadius() const;
views::Label* GetGameDashboardButtonTitle() const;
GameDashboardButtonRevealController* GetGameDashboardButtonRevealController()
const;
base::OneShotTimer& GetRevealControllerTopEdgeHoverTimer() const;
views::Widget* GetMainMenuWidget();
GameDashboardMainMenuView* GetMainMenuView();
FeatureTile* GetMainMenuGameControlsTile();
FeatureTile* GetMainMenuToolbarTile();
FeatureTile* GetMainMenuRecordGameTile();
FeatureTile* GetMainMenuScreenshotTile();
std::u16string_view GetMainMenuScreenSizeSubtitle();
views::Button* GetMainMenuScreenSizeSettingsButton();
views::Button* GetMainMenuGameControlsDetailsButton();
PillButton* GetMainMenuGameControlsSetupButton();
TimeView* GetMainMenuClockView();
GameDashboardBatteryView* GetMainMenuBatteryView();
GameDashboardNetworkView* GetMainMenuNetworkView();
Switch* GetMainMenuGameControlsFeatureSwitch();
views::LabelButton* GetMainMenuFeedbackButton();
IconButton* GetMainMenuHelpButton();
IconButton* GetMainMenuSettingsButton();
views::BoxLayoutView* GetMainMenuContainer();
views::BoxLayoutView* GetSettingsContainer();
IconButton* GetSettingsViewBackButton();
Switch* GetSettingsViewWelcomeDialogSwitch();
AnchoredNudge* GetGameControlsSetupNudge();
views::Widget* GetWelcomeDialogWidget();
void OpenTheMainMenu();
void CloseTheMainMenu();
views::Widget* GetToolbarWidget();
GameDashboardToolbarView* GetToolbarView();
IconButton* GetToolbarGamepadButton();
IconButton* GetToolbarGameControlsButton();
IconButton* GetToolbarRecordGameButton();
IconButton* GetToolbarScreenshotButton();
bool IsToolbarExpanded();
GameDashboardToolbarSnapLocation GetToolbarSnapLocation() const;
void OpenTheToolbar();
void SetFocusOnToolbar();
void CloseTheToolbar();
void OpenMainMenuSettings();
void CloseTheSettings();
void ToggleWelcomeDialogSettingsSwitch();
void VerifyAccessibilityTree();
private:
views::View* GetMainMenuViewById(int view_id);
const raw_ptr<GameDashboardContext, DanglingUntriaged> context_;
const raw_ptr<ui::test::EventGenerator> event_generator_;
};
}
#endif