| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ash/ash_element_identifiers.h" |
| #include "ash/shell.h" |
| #include "ash/system/model/enterprise_domain_model.h" |
| #include "ash/system/model/system_tray_model.h" |
| #include "base/test/gtest_tags.h" |
| #include "chrome/common/webui_url_constants.h" |
| #include "chrome/test/base/chromeos/crosier/ash_integration_test.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "ui/base/interaction/element_identifier.h" |
| |
| namespace ash { |
| namespace { |
| |
| EnterpriseDomainModel* GetEnterpriseDomainModel() { |
| return Shell::Get()->system_tray_model()->enterprise_domain(); |
| } |
| |
| class QuickSettingsIntegrationTest : public AshIntegrationTest { |
| public: |
| // AshIntegrationTest: |
| void SetUpOnMainThread() override { |
| AshIntegrationTest::SetUpOnMainThread(); |
| |
| // Ensure the OS Settings system web app (SWA) is installed. |
| InstallSystemApps(); |
| } |
| }; |
| |
| IN_PROC_BROWSER_TEST_F(QuickSettingsIntegrationTest, OpenOsSettings) { |
| base::AddFeatureIdTagToTestResult( |
| "screenplay-0a165660-211a-4bb6-9843-a1b1d55c8694"); |
| |
| SetupContextWidget(); |
| |
| DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kOsSettingsElementId); |
| |
| RunTestSequence( |
| Log("Opening quick settings bubble"), |
| PressButton(kUnifiedSystemTrayElementId), |
| WaitForShow(kQuickSettingsViewElementId), |
| |
| Log("Clicking settings button"), |
| InstrumentNextTab(kOsSettingsElementId, AnyBrowser()), |
| PressButton(kQuickSettingsSettingsButtonElementId), |
| WaitForShow(kOsSettingsElementId), |
| |
| Log("Verifying that OS Settings loads"), |
| WaitForWebContentsReady(kOsSettingsElementId, |
| GURL(chrome::kChromeUIOSSettingsURL))); |
| } |
| |
| IN_PROC_BROWSER_TEST_F(QuickSettingsIntegrationTest, ManagedDeviceInfo) { |
| base::AddFeatureIdTagToTestResult( |
| "screenplay-3d8236e6-8c42-428c-87e6-9c9e3bac7ddb"); |
| |
| SetupContextWidget(); |
| |
| // Simulate enterprise information being available. |
| GetEnterpriseDomainModel()->SetDeviceEnterpriseInfo(DeviceEnterpriseInfo{ |
| "example.com", ManagementDeviceMode::kChromeEnterprise}); |
| |
| DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kManagementElementId); |
| |
| RunTestSequence(Log("Opening quick settings bubble"), |
| PressButton(kUnifiedSystemTrayElementId), |
| WaitForShow(kQuickSettingsViewElementId), |
| |
| Log("Pressing enterprise managed view"), |
| InstrumentNextTab(kManagementElementId, AnyBrowser()), |
| PressButton(kEnterpriseManagedView), |
| |
| Log("Waiting for chrome://management to load"), |
| WaitForWebContentsReady(kManagementElementId, |
| GURL("chrome://management")), |
| |
| Log("Test complete")); |
| } |
| |
| } // namespace |
| } // namespace ash |