Chromium Code Reviews| 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..bc1a406055a28eb3fc253eb47c5673b24db05126 100644 |
| --- a/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc |
| +++ b/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc |
| @@ -35,6 +35,8 @@ class MockBrowserInterface : public UiBrowserInterface { |
| std::set<UiElementDebugId> kElementsVisibleInBrowsing = { |
| kContentQuad, kBackplane, kCeiling, kFloor, kUrlBar, kLoadingIndicator}; |
| +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); |
|
amp
2017/06/07 17:18:41
If we pass the same string to the scoped trace it
amp
2017/06/07 17:36:45
Turns out the test that failed is already output,
|
| +} |
| + |
| +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", {}); |
| } |
| 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", {}); |
| } |
| TEST_F(UiSceneManagerTest, CaptureIndicatorsVisibility) { |