Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(852)

Unified Diff: chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc

Issue 2921383002: [vr] Close exit prompt when clicking on background (Closed)
Patch Set: fix bot Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/android/vr_shell/ui_scene_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
diff --git a/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc b/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
index 5744214d908adf53c905d6c0f560358271ee583d..a58041d396fee6edf7d2085cb0959ee79e981f5e 100644
--- a/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
+++ b/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
@@ -34,7 +34,9 @@ class MockBrowserInterface : public UiBrowserInterface {
};
std::set<UiElementDebugId> kElementsVisibleInBrowsing = {
- kContentQuad, kBackplane, kCeiling, kFloor, kUrlBar, kLoadingIndicator};
+ kContentQuad, kBackplane, kCeiling, kFloor, kUrlBar};
+std::set<UiElementDebugId> kElementsVisibleWithExitPrompt = {
+ kExitPrompt, kExitPromptBackplane, kCeiling, kFloor};
} // namespace
@@ -64,6 +66,17 @@ class UiSceneManagerTest : public testing::Test {
return element ? element->visible() : false;
}
+ void VerifyElementsVisible(const std::string& debug_name,
+ const std::set<UiElementDebugId>& elements) {
+ SCOPED_TRACE(debug_name);
+ for (const auto& element : scene_->GetUiElements()) {
+ SCOPED_TRACE(element->debug_id());
+ bool should_be_visible =
+ elements.find(element->debug_id()) != elements.end();
+ EXPECT_EQ(should_be_visible, element->visible());
+ }
+ }
+
base::test::ScopedTaskEnvironment scoped_task_environment_;
std::unique_ptr<MockBrowserInterface> browser_;
std::unique_ptr<UiScene> scene_;
@@ -203,43 +216,21 @@ TEST_F(UiSceneManagerTest, UiUpdatesForFullscreenChanges) {
// Hold onto the background color to make sure it changes.
SkColor initial_background = scene_->GetWorldBackgroundColor();
+ VerifyElementsVisible("Initial", kElementsVisibleInBrowsing);
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible =
- kElementsVisibleInBrowsing.find(element->debug_id()) !=
- kElementsVisibleInBrowsing.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
-
- // Transistion to fullscreen.
+ // In fullscreen mode, content elements should be visible, control elements
+ // should be hidden.
manager_->SetFullscreen(true);
-
- // Content elements should be visible, control elements should be hidden.
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible = visible_in_fullscreen.find(element->debug_id()) !=
- visible_in_fullscreen.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
-
+ VerifyElementsVisible("In fullscreen", visible_in_fullscreen);
{
SCOPED_TRACE("Entered Fullsceen");
// Make sure background has changed for fullscreen.
EXPECT_NE(initial_background, scene_->GetWorldBackgroundColor());
}
- // Exit fullscreen.
- manager_->SetFullscreen(false);
-
// Everything should return to original state after leaving fullscreen.
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible =
- kElementsVisibleInBrowsing.find(element->debug_id()) !=
- kElementsVisibleInBrowsing.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
+ manager_->SetFullscreen(false);
+ VerifyElementsVisible("Restore initial", kElementsVisibleInBrowsing);
{
SCOPED_TRACE("Exited Fullsceen");
EXPECT_EQ(initial_background, scene_->GetWorldBackgroundColor());
@@ -247,39 +238,38 @@ TEST_F(UiSceneManagerTest, UiUpdatesForFullscreenChanges) {
}
TEST_F(UiSceneManagerTest, UiUpdatesExitPrompt) {
- std::set<UiElementDebugId> visible_when_prompting = {kExitPrompt, kBackplane,
- kCeiling, kFloor};
MakeManager(kNotInCct, kNotInWebVr);
manager_->SetWebVrSecureOrigin(true);
// Initial state.
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible =
- kElementsVisibleInBrowsing.find(element->debug_id()) !=
- kElementsVisibleInBrowsing.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
+ VerifyElementsVisible("Initial", kElementsVisibleInBrowsing);
// Exit prompt visible state.
- manager_->OnSecurityIconClicked();
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible = visible_when_prompting.find(element->debug_id()) !=
- visible_when_prompting.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
+ manager_->OnSecurityIconClickedForTesting();
+ VerifyElementsVisible("Prompt visible", kElementsVisibleWithExitPrompt);
// Back to initial state.
- manager_->OnExitPromptPrimaryButtonClicked();
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- bool should_be_visible =
- kElementsVisibleInBrowsing.find(element->debug_id()) !=
- kElementsVisibleInBrowsing.end();
- EXPECT_EQ(should_be_visible, element->visible());
- }
+ manager_->OnExitPromptPrimaryButtonClickedForTesting();
+ VerifyElementsVisible("Restore initial", kElementsVisibleInBrowsing);
+}
+
+TEST_F(UiSceneManagerTest, BackplaneClickClosesExitPrompt) {
+ MakeManager(kNotInCct, kNotInWebVr);
+
+ manager_->SetWebVrSecureOrigin(true);
+
+ // Initial state.
+ VerifyElementsVisible("Initial", kElementsVisibleInBrowsing);
+
+ // Exit prompt visible state.
+ manager_->OnSecurityIconClickedForTesting();
+ VerifyElementsVisible("Prompt visble", kElementsVisibleWithExitPrompt);
+
+ // Back to initial state.
+ scene_->GetUiElementByDebugId(kExitPromptBackplane)
+ ->OnButtonUp(gfx::PointF());
+ VerifyElementsVisible("Restore initial", kElementsVisibleInBrowsing);
}
TEST_F(UiSceneManagerTest, UiUpdatesForWebVR) {
@@ -291,10 +281,7 @@ TEST_F(UiSceneManagerTest, UiUpdatesForWebVR) {
manager_->SetScreenCapturingIndicator(true);
// All elements should be hidden.
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- EXPECT_FALSE(element->visible());
- }
+ VerifyElementsVisible("Elements hidden", std::set<UiElementDebugId>{});
}
TEST_F(UiSceneManagerTest, UiUpdateTransitionToWebVR) {
@@ -308,10 +295,7 @@ TEST_F(UiSceneManagerTest, UiUpdateTransitionToWebVR) {
manager_->SetWebVrSecureOrigin(true);
// All elements should be hidden.
- for (const auto& element : scene_->GetUiElements()) {
- SCOPED_TRACE(element->debug_id());
- EXPECT_FALSE(element->visible());
- }
+ VerifyElementsVisible("Elements hidden", std::set<UiElementDebugId>{});
}
TEST_F(UiSceneManagerTest, CaptureIndicatorsVisibility) {
« no previous file with comments | « chrome/browser/android/vr_shell/ui_scene_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698