| // Copyright 2021 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_CAPTURE_MODE_CAPTURE_MODE_SETTINGS_TEST_API_H_ |
| #define ASH_CAPTURE_MODE_CAPTURE_MODE_SETTINGS_TEST_API_H_ |
| |
| #include "base/callback_forward.h" |
| |
| namespace views { |
| class View; |
| } // namespace views |
| |
| namespace ash { |
| |
| class CaptureModeSettingsView; |
| class CaptureModeMenuGroup; |
| |
| // Test APIs to test the UI of the settings menu. Can only be created |
| // while a capture mode session is active, and the settings menu is shown. |
| class CaptureModeSettingsTestApi { |
| public: |
| CaptureModeSettingsTestApi(); |
| CaptureModeSettingsTestApi(const CaptureModeSettingsTestApi&) = delete; |
| CaptureModeSettingsTestApi& operator=(const CaptureModeSettingsTestApi&) = |
| delete; |
| ~CaptureModeSettingsTestApi() = default; |
| |
| // Returns the content view of the settings widget. |
| CaptureModeSettingsView* GetSettingsView(); |
| |
| // Returns the audio settings menu group and the views for its options. |
| CaptureModeMenuGroup* GetAudioInputMenuGroup(); |
| views::View* GetMicrophoneOption(); |
| views::View* GetAudioOffOption(); |
| |
| // Returns the save-to settings menu group and the views for its options. |
| CaptureModeMenuGroup* GetSaveToMenuGroup(); |
| views::View* GetDefaultDownloadsOption(); |
| views::View* GetCustomFolderOptionIfAny(); |
| |
| // Returns the view for the "Select folder" menu item which when pressed would |
| // open the folder selection dialog. |
| views::View* GetSelectFolderMenuItem(); |
| |
| CaptureModeMenuGroup* GetCameraMenuGroup(); |
| views::View* GetCameraOption(int option_id); |
| |
| // Sets a callback that will be triggered once the settings menu is refreshed. |
| void SetOnSettingsMenuRefreshedCallback(base::OnceClosure callback); |
| |
| private: |
| // Valid only while the settings menu is shown. |
| CaptureModeSettingsView* const settings_view_; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_CAPTURE_MODE_CAPTURE_MODE_SETTINGS_TEST_API_H_ |