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

Unified Diff: chrome/browser/chromeos/login/kiosk_browsertest.cc

Issue 571973006: kiosk: Add a zoom test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 | « no previous file | chrome/test/data/chromeos/app_mode/kiosk_test_app/src/app_main.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/kiosk_browsertest.cc
diff --git a/chrome/browser/chromeos/login/kiosk_browsertest.cc b/chrome/browser/chromeos/login/kiosk_browsertest.cc
index 8d17bc2712e384927e34783f3096d0384bb820f2..cfe46d3b1ebc65c8089f6f4de3ef708c4ac90dab 100644
--- a/chrome/browser/chromeos/login/kiosk_browsertest.cc
+++ b/chrome/browser/chromeos/login/kiosk_browsertest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "apps/ui/views/native_app_window_views.h"
#include "ash/desktop_background/desktop_background_controller.h"
#include "ash/desktop_background/desktop_background_controller_observer.h"
#include "ash/shell.h"
@@ -62,6 +63,7 @@
#include "google_apis/gaia/gaia_switches.h"
#include "google_apis/gaia/gaia_urls.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "ui/base/accelerators/accelerator.h"
namespace em = enterprise_management;
@@ -421,7 +423,7 @@ class KioskTest : public OobeBaseTest {
return *GetInstalledApp()->version();
}
- void WaitForAppLaunchSuccess() {
+ void WaitForAppLaunchAndOptionallyTerminateApp(bool terminate_app) {
ExtensionTestMessageListener
launch_data_check_listener("launchData.isKioskSession = true", false);
@@ -463,6 +465,10 @@ class KioskTest : public OobeBaseTest {
login_display_host->GetNativeWindow()->layer()->GetTargetOpacity() ==
0.0f);
+ // Terminate the app.
+ if (terminate_app)
+ window->GetBaseWindow()->Close();
+
// Wait until the app terminates if it is still running.
if (!app_window_registry->GetAppWindowsForApp(test_app_id_).empty())
content::RunMessageLoop();
@@ -472,6 +478,10 @@ class KioskTest : public OobeBaseTest {
EXPECT_TRUE(launch_data_check_listener.was_satisfied());
}
+ void WaitForAppLaunchSuccess() {
+ WaitForAppLaunchAndOptionallyTerminateApp(true);
+ }
+
void WaitForAppLaunchNetworkTimeout() {
if (GetAppLaunchController()->network_wait_timedout())
return;
@@ -610,6 +620,72 @@ IN_PROC_BROWSER_TEST_F(KioskTest, InstallAndLaunchApp) {
WaitForAppLaunchSuccess();
}
+IN_PROC_BROWSER_TEST_F(KioskTest, ZoomSupport) {
+ ExtensionTestMessageListener
+ app_window_loaded_listener("appWindowLoaded", false);
+ StartAppLaunchFromLoginScreen(SimulateNetworkOnlineClosure());
+ app_window_loaded_listener.WaitUntilSatisfied();
+
+ Profile* app_profile = ProfileManager::GetPrimaryUserProfile();
+ ASSERT_TRUE(app_profile);
+
+ extensions::AppWindowRegistry* app_window_registry =
+ extensions::AppWindowRegistry::Get(app_profile);
+ extensions::AppWindow* window =
+ AppWindowWaiter(app_window_registry, test_app_id()).Wait();
+ ASSERT_TRUE(window);
+
+ // Gets the original width of the app window.
+ int original_width;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+ window->web_contents(),
+ "window.domAutomationController.setAutomationId(0);"
+ "window.domAutomationController.send(window.innerWidth);",
+ &original_width));
+
+ apps::NativeAppWindowViews* native_app_window_views =
+ static_cast<apps::NativeAppWindowViews*>(window->GetBaseWindow());
+ ui::AcceleratorTarget* accelerator_target =
+ static_cast<ui::AcceleratorTarget*>(native_app_window_views);
+
+ // Zoom in. Text is bigger and content window width becomes smaller.
+ accelerator_target->AcceleratorPressed(ui::Accelerator(
+ ui::VKEY_ADD, ui::EF_CONTROL_DOWN));
+ int width_zoomed_in;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+ window->web_contents(),
+ "window.domAutomationController.setAutomationId(0);"
+ "window.domAutomationController.send(window.innerWidth);",
+ &width_zoomed_in));
+ DCHECK_LT(width_zoomed_in, original_width);
+
+ // Go back to normal. Window width is restored.
+ accelerator_target->AcceleratorPressed(ui::Accelerator(
+ ui::VKEY_0, ui::EF_CONTROL_DOWN));
+ int width_zoom_normal;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+ window->web_contents(),
+ "window.domAutomationController.setAutomationId(0);"
+ "window.domAutomationController.send(window.innerWidth);",
+ &width_zoom_normal));
+ DCHECK_EQ(width_zoom_normal, original_width);
+
+ // Zoom out. Text is smaller and content window width becomes larger.
+ accelerator_target->AcceleratorPressed(ui::Accelerator(
+ ui::VKEY_SUBTRACT, ui::EF_CONTROL_DOWN));
+ int width_zoomed_out;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
+ window->web_contents(),
+ "window.domAutomationController.setAutomationId(0);"
+ "window.domAutomationController.send(window.innerWidth);",
+ &width_zoomed_out));
+ DCHECK_GT(width_zoomed_out, original_width);
+
+ // Terminate the app.
+ window->GetBaseWindow()->Close();
+ content::RunAllPendingInMessageLoop();
+}
+
IN_PROC_BROWSER_TEST_F(KioskTest, NotSignedInWithGAIAAccount) {
// Tests that the kiosk session is not considered to be logged in with a GAIA
// account.
@@ -1459,7 +1535,7 @@ IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PRE_PreserveLocalData) {
extensions::ResultCatcher catcher;
StartAppLaunchFromLoginScreen(SimulateNetworkOnlineClosure());
- WaitForAppLaunchSuccess();
+ WaitForAppLaunchAndOptionallyTerminateApp(false);
ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
}
@@ -1471,7 +1547,7 @@ IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PreserveLocalData) {
set_test_crx_file(test_app_id() + "_v2_read_and_verify_data.crx");
extensions::ResultCatcher catcher;
StartAppLaunchFromLoginScreen(SimulateNetworkOnlineClosure());
- WaitForAppLaunchSuccess();
+ WaitForAppLaunchAndOptionallyTerminateApp(false);
EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString());
ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
« no previous file with comments | « no previous file | chrome/test/data/chromeos/app_mode/kiosk_test_app/src/app_main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698