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 2457c4f258e1dc291ac56052cd7e8bf312e8e67e..43cd2fc458033f18d1f93b865486ec548f5070a4 100644 |
--- a/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc |
+++ b/chrome/browser/android/vr_shell/ui_scene_manager_unittest.cc |
@@ -5,6 +5,9 @@ |
#include "chrome/browser/android/vr_shell/ui_scene_manager.h" |
#include "base/macros.h" |
+#include "base/test/scoped_task_environment.h" |
+#include "chrome/browser/android/vr_shell/ui_elements/ui_element.h" |
+#include "chrome/browser/android/vr_shell/ui_elements/ui_element_debug_id.h" |
#include "chrome/browser/android/vr_shell/ui_scene.h" |
#include "chrome/browser/android/vr_shell/vr_browser_interface.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -51,24 +54,39 @@ class MockBrowserInterface : public VrBrowserInterface { |
class UiSceneManagerTest : public testing::Test { |
public: |
- void SetUp() override { |
- browser_ = base::MakeUnique<MockBrowserInterface>(); |
+ void SetUp() override { browser_ = base::MakeUnique<MockBrowserInterface>(); } |
+ |
+ protected: |
+ enum InCct : bool { |
+ kNotInCct = false, |
+ kInCct = true, |
+ }; |
+ |
+ enum InWebVr : bool { |
+ kNotInWebVr = false, |
+ kInWebVr = true, |
+ }; |
+ |
+ void MakeManager(InCct in_cct, InWebVr in_web_vr) { |
scene_ = base::MakeUnique<UiScene>(); |
- // TODO(mthiesse): When we have UI to test for CCT, we'll need to modify |
- // setup to allow us to test CCT mode. |
- bool in_cct = false; |
- bool in_web_vr = true; |
manager_ = base::MakeUnique<UiSceneManager>(browser_.get(), scene_.get(), |
in_cct, in_web_vr); |
} |
- protected: |
+ bool IsVisible(UiElementDebugId debug_id) { |
+ UiElement* element = scene_->GetUiElementByDebugId(debug_id); |
+ return element ? element->visible() : false; |
+ } |
+ |
+ base::test::ScopedTaskEnvironment scoped_task_environment_; |
std::unique_ptr<MockBrowserInterface> browser_; |
std::unique_ptr<UiScene> scene_; |
std::unique_ptr<UiSceneManager> manager_; |
}; |
TEST_F(UiSceneManagerTest, ExitPresentAndFullscreenOnAppButtonClick) { |
+ MakeManager(kNotInCct, kInWebVr); |
+ |
// Clicking app button should trigger to exit presentation. |
EXPECT_CALL(*browser_, ExitPresent()).Times(1); |
// And also trigger exit fullscreen. |
@@ -76,4 +94,47 @@ TEST_F(UiSceneManagerTest, ExitPresentAndFullscreenOnAppButtonClick) { |
manager_->OnAppButtonClicked(); |
} |
+TEST_F(UiSceneManagerTest, WebVrWarningsShowWhenInitiallyInWebVr) { |
+ MakeManager(kNotInCct, kInWebVr); |
+ |
+ EXPECT_TRUE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_TRUE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+ |
+ manager_->SetWebVrSecureOrigin(true); |
+ EXPECT_FALSE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_FALSE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+ |
+ manager_->SetWebVrSecureOrigin(false); |
+ EXPECT_TRUE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_TRUE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+ |
+ manager_->SetWebVrMode(false); |
+ EXPECT_FALSE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_FALSE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+} |
+ |
+TEST_F(UiSceneManagerTest, WebVrWarningsDoNotShowWhenInitiallyOutsideWebVr) { |
+ MakeManager(kNotInCct, kNotInWebVr); |
+ |
+ EXPECT_FALSE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_FALSE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+ |
+ manager_->SetWebVrMode(true); |
+ EXPECT_TRUE(IsVisible(kWebVrPermanentHttpSecurityWarning)); |
+ EXPECT_TRUE(IsVisible(kWebVrTransientHttpSecurityWarning)); |
+} |
+ |
+TEST_F(UiSceneManagerTest, CctButtonVisibleInCct) { |
+ MakeManager(kInCct, kNotInWebVr); |
+ EXPECT_TRUE(IsVisible(kCloseButton)); |
+ |
+ MakeManager(kNotInCct, kNotInWebVr); |
+ EXPECT_FALSE(IsVisible(kCloseButton)); |
+ |
+ MakeManager(kInCct, kInWebVr); |
+ EXPECT_FALSE(IsVisible(kCloseButton)); |
+ manager_->SetWebVrMode(false); |
+ EXPECT_TRUE(IsVisible(kCloseButton)); |
+} |
+ |
} // namespace vr_shell |