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

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

Issue 2873043002: VrShell: Add test for fullscreen transitions. (Closed)
Patch Set: rebase to use debug id enum instead of name one I created Created 3 years, 7 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
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 da4e16c281db343319915ca08d677c5d04b1ab4c..454198c36d10b27bb969f0e338a5fc976ff1ec0f 100644
--- a/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
+++ b/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc
@@ -83,6 +83,11 @@ class UiSceneManagerTest : public testing::Test {
std::unique_ptr<MockBrowserInterface> browser_;
std::unique_ptr<UiScene> scene_;
std::unique_ptr<UiSceneManager> manager_;
+
+ bool ColorEquals(vr::Colorf expected, vr::Colorf actual) {
+ return (expected.r == actual.r) && (expected.g == actual.g) &&
+ (expected.b == actual.b) && (expected.a == actual.a);
+ }
};
TEST_F(UiSceneManagerTest, ExitPresentAndFullscreenOnAppButtonClick) {
@@ -138,4 +143,74 @@ TEST_F(UiSceneManagerTest, CctButtonVisibleInCct) {
EXPECT_TRUE(IsVisible(kCloseButton));
}
+TEST_F(UiSceneManagerTest, UiUpdatesForFullscreenChanges) {
+ std::set<UiElementDebugId> visible_in_browsing = {
+ UiElementDebugId::kContentQuad, UiElementDebugId::kCeiling,
+ UiElementDebugId::kFloor, UiElementDebugId::kGrid,
+ UiElementDebugId::kBrowserBar, UiElementDebugId::kLoadingIndicator};
+ std::set<UiElementDebugId> visible_in_fullscreen = {
+ UiElementDebugId::kContentQuad};
+ std::set<UiElementDebugId> hidden_in_fullscreen = {
+ UiElementDebugId::kBrowserBar, UiElementDebugId::kLoadingIndicator};
+
+ MakeManager(kNotInCct, kNotInWebVr);
+
+ // Hold onto the background color to make sure it changes.
+ vr::Colorf initialBackground = scene_->GetBackgroundColor();
cjgrant 2017/05/23 18:58:11 initial_background
amp 2017/05/23 20:56:02 Done.
+
+ for (const auto& element : scene_->GetUiElements()) {
+ SCOPED_TRACE(element->debug_id());
+ bool should_be_visible = visible_in_browsing.find(element->debug_id()) !=
+ visible_in_browsing.end();
+ // Ignore elements not in the set.
+ if (should_be_visible) {
+ EXPECT_EQ(should_be_visible, element->visible());
+ }
+ }
+
+ // Transistion to fullscreen.
+ manager_->SetFullscreen(true);
+
+ // All elements should be hidden except for main content.
cjgrant 2017/05/23 18:58:11 Did we say the floor would stay visible in fullscr
amp 2017/05/23 20:56:02 Yes, at the point this test was written it wasn't
+ 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();
+ // Ignore elements not in the set.
cjgrant 2017/05/23 18:58:11 Since this test is focused on fullscreen, why igno
amp 2017/05/23 20:56:02 I went this way because not every element has a de
cjgrant 2017/05/23 21:27:31 But in fullscreen, there are only a few things vis
+ if (should_be_visible) {
+ EXPECT_EQ(should_be_visible, element->visible());
+ }
+ bool should_be_hidden = hidden_in_fullscreen.find(element->debug_id()) !=
+ hidden_in_fullscreen.end();
+ // Ignore elements not in the set.
+ if (should_be_hidden) {
+ EXPECT_FALSE(element->visible());
+ }
+ }
+
+ {
+ SCOPED_TRACE("Entered Fullsceen");
+ // Make sure background has changed for fullscreen.
+ EXPECT_FALSE(ColorEquals(initialBackground, scene_->GetBackgroundColor()));
+ }
+
+ // 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 = visible_in_browsing.find(element->debug_id()) !=
+ visible_in_browsing.end();
+ // Ignore elements not in the set.
+ if (should_be_visible) {
+ EXPECT_EQ(should_be_visible, element->visible());
+ }
+ }
+ {
+ SCOPED_TRACE("Exited Fullsceen");
+ EXPECT_TRUE(ColorEquals(initialBackground, scene_->GetBackgroundColor()));
+ }
+}
+
} // namespace vr_shell

Powered by Google App Engine
This is Rietveld 408576698