#ifndef ASH_CAPTURE_MODE_CAPTURE_MODE_SESSION_TEST_API_H_
#define ASH_CAPTURE_MODE_CAPTURE_MODE_SESSION_TEST_API_H_
#include "ash/capture_mode/action_button_container_view.h"
#include "ash/capture_mode/capture_mode_constants.h"
#include "ash/capture_mode/capture_mode_session_focus_cycler.h"
#include "base/memory/raw_ptr.h"
namespace views {
class Label;
}
namespace ash {
class ActionButtonView;
class BaseCaptureModeSession;
class CaptureLabelView;
class CaptureModeBarView;
class CaptureModeSettingsView;
class CaptureRegionOverlayController;
class MagnifierGlass;
class RecordingTypeMenuView;
class UserNudgeController;
class CaptureModeSessionTestApi {
public:
CaptureModeSessionTestApi();
explicit CaptureModeSessionTestApi(BaseCaptureModeSession* session);
CaptureModeSessionTestApi(CaptureModeSessionTestApi&) = delete;
CaptureModeSessionTestApi& operator=(CaptureModeSessionTestApi&) = delete;
~CaptureModeSessionTestApi() = default;
CaptureModeBarView* GetCaptureModeBarView();
CaptureModeSettingsView* GetCaptureModeSettingsView();
CaptureLabelView* GetCaptureLabelView();
views::Label* GetCaptureLabelInternalView();
RecordingTypeMenuView* GetRecordingTypeMenuView();
views::Widget* GetCaptureModeSettingsWidget();
views::Widget* GetCaptureLabelWidget();
views::Widget* GetActionContainerWidget();
views::Widget* GetDisclaimerWidget();
views::Widget* GetRecordingTypeMenuWidget();
views::Widget* GetDimensionsLabelWidget();
UserNudgeController* GetUserNudgeController();
MagnifierGlass& GetMagnifierGlass();
bool IsUsingCustomCursor(CaptureModeType type);
CaptureModeSessionFocusCycler::FocusGroup GetCurrentFocusGroup();
size_t GetCurrentFocusIndex();
CaptureModeSessionFocusCycler::HighlightableWindow* GetHighlightableWindow(
aura::Window* window);
CaptureModeSessionFocusCycler::HighlightableView* GetCurrentFocusedView();
bool HasAxVirtualWidget() const;
size_t GetAxVirtualViewsCount() const;
bool HasFocus() const;
bool IsFolderSelectionDialogShown();
bool AreAllUisVisible();
gfx::Rect GetSelectedWindowTargetBounds();
std::vector<ActionButtonView*> GetActionButtons() const;
ActionButtonView* GetActionButtonByViewId(ActionButtonViewID id) const;
ActionButtonContainerView::ErrorView* GetActionContainerErrorView() const;
CaptureRegionOverlayController* GetCaptureRegionOverlayController() const;
private:
const raw_ptr<CaptureModeSession, DanglingUntriaged> session_;
};
}
#endif