| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/desktop_background/desktop_background_controller.h" | 5 #include "ash/desktop_background/desktop_background_controller.h" |
| 6 #include "ash/desktop_background/desktop_background_controller_observer.h" | 6 #include "ash/desktop_background/desktop_background_controller_observer.h" |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 | 289 |
| 290 class KioskTest : public OobeBaseTest { | 290 class KioskTest : public OobeBaseTest { |
| 291 public: | 291 public: |
| 292 KioskTest() : fake_cws_(new FakeCWS) { | 292 KioskTest() : fake_cws_(new FakeCWS) { |
| 293 set_exit_when_last_browser_closes(false); | 293 set_exit_when_last_browser_closes(false); |
| 294 } | 294 } |
| 295 | 295 |
| 296 virtual ~KioskTest() {} | 296 virtual ~KioskTest() {} |
| 297 | 297 |
| 298 protected: | 298 protected: |
| 299 virtual void SetUp() OVERRIDE { | 299 virtual void SetUp() override { |
| 300 test_app_id_ = kTestKioskApp; | 300 test_app_id_ = kTestKioskApp; |
| 301 set_test_app_version("1.0.0"); | 301 set_test_app_version("1.0.0"); |
| 302 set_test_crx_file(test_app_id() + ".crx"); | 302 set_test_crx_file(test_app_id() + ".crx"); |
| 303 needs_background_networking_ = true; | 303 needs_background_networking_ = true; |
| 304 mock_user_manager_.reset(new MockUserManager); | 304 mock_user_manager_.reset(new MockUserManager); |
| 305 ProfileHelper::SetAlwaysReturnPrimaryUserForTesting(true); | 305 ProfileHelper::SetAlwaysReturnPrimaryUserForTesting(true); |
| 306 AppLaunchController::SkipSplashWaitForTesting(); | 306 AppLaunchController::SkipSplashWaitForTesting(); |
| 307 AppLaunchController::SetNetworkWaitForTesting(kTestNetworkTimeoutSeconds); | 307 AppLaunchController::SetNetworkWaitForTesting(kTestNetworkTimeoutSeconds); |
| 308 | 308 |
| 309 OobeBaseTest::SetUp(); | 309 OobeBaseTest::SetUp(); |
| 310 } | 310 } |
| 311 | 311 |
| 312 virtual void TearDown() OVERRIDE { | 312 virtual void TearDown() override { |
| 313 ProfileHelper::SetAlwaysReturnPrimaryUserForTesting(false); | 313 ProfileHelper::SetAlwaysReturnPrimaryUserForTesting(false); |
| 314 OobeBaseTest::TearDown(); | 314 OobeBaseTest::TearDown(); |
| 315 } | 315 } |
| 316 | 316 |
| 317 virtual void SetUpOnMainThread() OVERRIDE { | 317 virtual void SetUpOnMainThread() override { |
| 318 OobeBaseTest::SetUpOnMainThread(); | 318 OobeBaseTest::SetUpOnMainThread(); |
| 319 // Needed to avoid showing Gaia screen instead of owner signin for | 319 // Needed to avoid showing Gaia screen instead of owner signin for |
| 320 // consumer network down test cases. | 320 // consumer network down test cases. |
| 321 StartupUtils::MarkDeviceRegistered(base::Closure()); | 321 StartupUtils::MarkDeviceRegistered(base::Closure()); |
| 322 } | 322 } |
| 323 | 323 |
| 324 virtual void TearDownOnMainThread() OVERRIDE { | 324 virtual void TearDownOnMainThread() override { |
| 325 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL); | 325 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL); |
| 326 AppLaunchSigninScreen::SetUserManagerForTesting(NULL); | 326 AppLaunchSigninScreen::SetUserManagerForTesting(NULL); |
| 327 | 327 |
| 328 OobeBaseTest::TearDownOnMainThread(); | 328 OobeBaseTest::TearDownOnMainThread(); |
| 329 | 329 |
| 330 // Clean up while main thread still runs. | 330 // Clean up while main thread still runs. |
| 331 // See http://crbug.com/176659. | 331 // See http://crbug.com/176659. |
| 332 KioskAppManager::Get()->CleanUp(); | 332 KioskAppManager::Get()->CleanUp(); |
| 333 } | 333 } |
| 334 | 334 |
| 335 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 335 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 336 OobeBaseTest::SetUpCommandLine(command_line); | 336 OobeBaseTest::SetUpCommandLine(command_line); |
| 337 fake_cws_->Init(embedded_test_server()); | 337 fake_cws_->Init(embedded_test_server()); |
| 338 } | 338 } |
| 339 | 339 |
| 340 void LaunchApp(const std::string& app_id, bool diagnostic_mode) { | 340 void LaunchApp(const std::string& app_id, bool diagnostic_mode) { |
| 341 bool new_kiosk_ui = KioskAppMenuHandler::EnableNewKioskUI(); | 341 bool new_kiosk_ui = KioskAppMenuHandler::EnableNewKioskUI(); |
| 342 GetLoginUI()->CallJavascriptFunction(new_kiosk_ui ? | 342 GetLoginUI()->CallJavascriptFunction(new_kiosk_ui ? |
| 343 kLaunchAppForTestNewAPI : kLaunchAppForTestOldAPI, | 343 kLaunchAppForTestNewAPI : kLaunchAppForTestOldAPI, |
| 344 base::StringValue(app_id), | 344 base::StringValue(app_id), |
| 345 base::FundamentalValue(diagnostic_mode)); | 345 base::FundamentalValue(diagnostic_mode)); |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1039 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, | 1039 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, |
| 1040 content::NotificationService::AllSources()).Wait(); | 1040 content::NotificationService::AllSources()).Wait(); |
| 1041 } | 1041 } |
| 1042 | 1042 |
| 1043 class KioskUpdateTest : public KioskTest { | 1043 class KioskUpdateTest : public KioskTest { |
| 1044 public: | 1044 public: |
| 1045 KioskUpdateTest() {} | 1045 KioskUpdateTest() {} |
| 1046 virtual ~KioskUpdateTest() {} | 1046 virtual ~KioskUpdateTest() {} |
| 1047 | 1047 |
| 1048 protected: | 1048 protected: |
| 1049 virtual void SetUp() OVERRIDE { | 1049 virtual void SetUp() override { |
| 1050 fake_disk_mount_manager_ = new KioskFakeDiskMountManager(); | 1050 fake_disk_mount_manager_ = new KioskFakeDiskMountManager(); |
| 1051 disks::DiskMountManager::InitializeForTesting(fake_disk_mount_manager_); | 1051 disks::DiskMountManager::InitializeForTesting(fake_disk_mount_manager_); |
| 1052 | 1052 |
| 1053 KioskTest::SetUp(); | 1053 KioskTest::SetUp(); |
| 1054 } | 1054 } |
| 1055 | 1055 |
| 1056 virtual void TearDown() OVERRIDE { | 1056 virtual void TearDown() override { |
| 1057 disks::DiskMountManager::Shutdown(); | 1057 disks::DiskMountManager::Shutdown(); |
| 1058 | 1058 |
| 1059 KioskTest::TearDown(); | 1059 KioskTest::TearDown(); |
| 1060 } | 1060 } |
| 1061 | 1061 |
| 1062 virtual void SetUpOnMainThread() OVERRIDE { | 1062 virtual void SetUpOnMainThread() override { |
| 1063 KioskTest::SetUpOnMainThread(); | 1063 KioskTest::SetUpOnMainThread(); |
| 1064 } | 1064 } |
| 1065 | 1065 |
| 1066 void PreCacheApp(const std::string& app_id, | 1066 void PreCacheApp(const std::string& app_id, |
| 1067 const std::string& version, | 1067 const std::string& version, |
| 1068 const std::string& crx_file) { | 1068 const std::string& crx_file) { |
| 1069 set_test_app_id(app_id); | 1069 set_test_app_id(app_id); |
| 1070 set_test_app_version(version); | 1070 set_test_app_version(version); |
| 1071 set_test_crx_file(crx_file); | 1071 set_test_crx_file(crx_file); |
| 1072 | 1072 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1153 runner_ = new content::MessageLoopRunner; | 1153 runner_ = new content::MessageLoopRunner; |
| 1154 runner_->Run(); | 1154 runner_->Run(); |
| 1155 } | 1155 } |
| 1156 | 1156 |
| 1157 bool update_success() const { return update_success_; } | 1157 bool update_success() const { return update_success_; } |
| 1158 | 1158 |
| 1159 bool app_update_notified() const { return app_update_notified_; } | 1159 bool app_update_notified() const { return app_update_notified_; } |
| 1160 | 1160 |
| 1161 private: | 1161 private: |
| 1162 // KioskAppManagerObserver overrides: | 1162 // KioskAppManagerObserver overrides: |
| 1163 virtual void OnKioskAppCacheUpdated(const std::string& app_id) OVERRIDE { | 1163 virtual void OnKioskAppCacheUpdated(const std::string& app_id) override { |
| 1164 if (app_id_ != app_id) | 1164 if (app_id_ != app_id) |
| 1165 return; | 1165 return; |
| 1166 app_update_notified_ = true; | 1166 app_update_notified_ = true; |
| 1167 } | 1167 } |
| 1168 | 1168 |
| 1169 virtual void OnKioskAppExternalUpdateComplete(bool success) OVERRIDE { | 1169 virtual void OnKioskAppExternalUpdateComplete(bool success) override { |
| 1170 quit_ = true; | 1170 quit_ = true; |
| 1171 update_success_ = success; | 1171 update_success_ = success; |
| 1172 if (runner_.get()) | 1172 if (runner_.get()) |
| 1173 runner_->Quit(); | 1173 runner_->Quit(); |
| 1174 } | 1174 } |
| 1175 | 1175 |
| 1176 scoped_refptr<content::MessageLoopRunner> runner_; | 1176 scoped_refptr<content::MessageLoopRunner> runner_; |
| 1177 KioskAppManager* manager_; | 1177 KioskAppManager* manager_; |
| 1178 bool wait_for_update_success_; | 1178 bool wait_for_update_success_; |
| 1179 const std::string app_id_; | 1179 const std::string app_id_; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1205 return; | 1205 return; |
| 1206 runner_ = new content::MessageLoopRunner; | 1206 runner_ = new content::MessageLoopRunner; |
| 1207 runner_->Run(); | 1207 runner_->Run(); |
| 1208 } | 1208 } |
| 1209 | 1209 |
| 1210 bool loaded() const { return loaded_; } | 1210 bool loaded() const { return loaded_; } |
| 1211 | 1211 |
| 1212 private: | 1212 private: |
| 1213 // KioskAppManagerObserver overrides: | 1213 // KioskAppManagerObserver overrides: |
| 1214 virtual void OnKioskExtensionLoadedInCache( | 1214 virtual void OnKioskExtensionLoadedInCache( |
| 1215 const std::string& app_id) OVERRIDE { | 1215 const std::string& app_id) override { |
| 1216 std::string cached_version; | 1216 std::string cached_version; |
| 1217 base::FilePath file_path; | 1217 base::FilePath file_path; |
| 1218 if (!manager_->GetCachedCrx(app_id_, &file_path, &cached_version)) | 1218 if (!manager_->GetCachedCrx(app_id_, &file_path, &cached_version)) |
| 1219 return; | 1219 return; |
| 1220 if (version_ != cached_version) | 1220 if (version_ != cached_version) |
| 1221 return; | 1221 return; |
| 1222 loaded_ = true; | 1222 loaded_ = true; |
| 1223 quit_ = true; | 1223 quit_ = true; |
| 1224 if (runner_.get()) | 1224 if (runner_.get()) |
| 1225 runner_->Quit(); | 1225 runner_->Quit(); |
| 1226 } | 1226 } |
| 1227 | 1227 |
| 1228 virtual void OnKioskExtensionDownloadFailed( | 1228 virtual void OnKioskExtensionDownloadFailed( |
| 1229 const std::string& app_id) OVERRIDE { | 1229 const std::string& app_id) override { |
| 1230 loaded_ = false; | 1230 loaded_ = false; |
| 1231 quit_ = true; | 1231 quit_ = true; |
| 1232 if (runner_.get()) | 1232 if (runner_.get()) |
| 1233 runner_->Quit(); | 1233 runner_->Quit(); |
| 1234 } | 1234 } |
| 1235 | 1235 |
| 1236 scoped_refptr<content::MessageLoopRunner> runner_; | 1236 scoped_refptr<content::MessageLoopRunner> runner_; |
| 1237 KioskAppManager* manager_; | 1237 KioskAppManager* manager_; |
| 1238 bool loaded_; | 1238 bool loaded_; |
| 1239 bool quit_; | 1239 bool quit_; |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1551 WaitForAppLaunchAndOptionallyTerminateApp(false); | 1551 WaitForAppLaunchAndOptionallyTerminateApp(false); |
| 1552 | 1552 |
| 1553 EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString()); | 1553 EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString()); |
| 1554 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1554 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 1555 } | 1555 } |
| 1556 | 1556 |
| 1557 class KioskEnterpriseTest : public KioskTest { | 1557 class KioskEnterpriseTest : public KioskTest { |
| 1558 protected: | 1558 protected: |
| 1559 KioskEnterpriseTest() {} | 1559 KioskEnterpriseTest() {} |
| 1560 | 1560 |
| 1561 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 1561 virtual void SetUpInProcessBrowserTestFixture() override { |
| 1562 device_policy_test_helper_.MarkAsEnterpriseOwned(); | 1562 device_policy_test_helper_.MarkAsEnterpriseOwned(); |
| 1563 device_policy_test_helper_.InstallOwnerKey(); | 1563 device_policy_test_helper_.InstallOwnerKey(); |
| 1564 | 1564 |
| 1565 KioskTest::SetUpInProcessBrowserTestFixture(); | 1565 KioskTest::SetUpInProcessBrowserTestFixture(); |
| 1566 } | 1566 } |
| 1567 | 1567 |
| 1568 virtual void SetUpOnMainThread() OVERRIDE { | 1568 virtual void SetUpOnMainThread() override { |
| 1569 set_test_app_id(kTestEnterpriseKioskApp); | 1569 set_test_app_id(kTestEnterpriseKioskApp); |
| 1570 set_test_app_version("1.0.0"); | 1570 set_test_app_version("1.0.0"); |
| 1571 set_test_crx_file(test_app_id() + ".crx"); | 1571 set_test_crx_file(test_app_id() + ".crx"); |
| 1572 SetupTestAppUpdateCheck(); | 1572 SetupTestAppUpdateCheck(); |
| 1573 | 1573 |
| 1574 KioskTest::SetUpOnMainThread(); | 1574 KioskTest::SetUpOnMainThread(); |
| 1575 // Configure kTestEnterpriseKioskApp in device policy. | 1575 // Configure kTestEnterpriseKioskApp in device policy. |
| 1576 em::DeviceLocalAccountsProto* accounts = | 1576 em::DeviceLocalAccountsProto* accounts = |
| 1577 device_policy_test_helper_.device_policy()->payload() | 1577 device_policy_test_helper_.device_policy()->payload() |
| 1578 .mutable_device_local_accounts(); | 1578 .mutable_device_local_accounts(); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1701 } | 1701 } |
| 1702 | 1702 |
| 1703 // Specialized test fixture for testing kiosk mode on the | 1703 // Specialized test fixture for testing kiosk mode on the |
| 1704 // hidden WebUI initialization flow for slow hardware. | 1704 // hidden WebUI initialization flow for slow hardware. |
| 1705 class KioskHiddenWebUITest : public KioskTest, | 1705 class KioskHiddenWebUITest : public KioskTest, |
| 1706 public ash::DesktopBackgroundControllerObserver { | 1706 public ash::DesktopBackgroundControllerObserver { |
| 1707 public: | 1707 public: |
| 1708 KioskHiddenWebUITest() : wallpaper_loaded_(false) {} | 1708 KioskHiddenWebUITest() : wallpaper_loaded_(false) {} |
| 1709 | 1709 |
| 1710 // KioskTest overrides: | 1710 // KioskTest overrides: |
| 1711 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 1711 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 1712 KioskTest::SetUpCommandLine(command_line); | 1712 KioskTest::SetUpCommandLine(command_line); |
| 1713 command_line->AppendSwitch(switches::kDisableBootAnimation); | 1713 command_line->AppendSwitch(switches::kDisableBootAnimation); |
| 1714 } | 1714 } |
| 1715 | 1715 |
| 1716 virtual void SetUpOnMainThread() OVERRIDE { | 1716 virtual void SetUpOnMainThread() override { |
| 1717 KioskTest::SetUpOnMainThread(); | 1717 KioskTest::SetUpOnMainThread(); |
| 1718 ash::Shell::GetInstance()->desktop_background_controller() | 1718 ash::Shell::GetInstance()->desktop_background_controller() |
| 1719 ->AddObserver(this); | 1719 ->AddObserver(this); |
| 1720 } | 1720 } |
| 1721 | 1721 |
| 1722 virtual void TearDownOnMainThread() OVERRIDE { | 1722 virtual void TearDownOnMainThread() override { |
| 1723 ash::Shell::GetInstance()->desktop_background_controller() | 1723 ash::Shell::GetInstance()->desktop_background_controller() |
| 1724 ->RemoveObserver(this); | 1724 ->RemoveObserver(this); |
| 1725 KioskTest::TearDownOnMainThread(); | 1725 KioskTest::TearDownOnMainThread(); |
| 1726 } | 1726 } |
| 1727 | 1727 |
| 1728 void WaitForWallpaper() { | 1728 void WaitForWallpaper() { |
| 1729 if (!wallpaper_loaded_) { | 1729 if (!wallpaper_loaded_) { |
| 1730 runner_ = new content::MessageLoopRunner; | 1730 runner_ = new content::MessageLoopRunner; |
| 1731 runner_->Run(); | 1731 runner_->Run(); |
| 1732 } | 1732 } |
| 1733 } | 1733 } |
| 1734 | 1734 |
| 1735 bool wallpaper_loaded() const { return wallpaper_loaded_; } | 1735 bool wallpaper_loaded() const { return wallpaper_loaded_; } |
| 1736 | 1736 |
| 1737 // ash::DesktopBackgroundControllerObserver overrides: | 1737 // ash::DesktopBackgroundControllerObserver overrides: |
| 1738 virtual void OnWallpaperDataChanged() OVERRIDE { | 1738 virtual void OnWallpaperDataChanged() override { |
| 1739 wallpaper_loaded_ = true; | 1739 wallpaper_loaded_ = true; |
| 1740 if (runner_.get()) | 1740 if (runner_.get()) |
| 1741 runner_->Quit(); | 1741 runner_->Quit(); |
| 1742 } | 1742 } |
| 1743 | 1743 |
| 1744 bool wallpaper_loaded_; | 1744 bool wallpaper_loaded_; |
| 1745 scoped_refptr<content::MessageLoopRunner> runner_; | 1745 scoped_refptr<content::MessageLoopRunner> runner_; |
| 1746 | 1746 |
| 1747 DISALLOW_COPY_AND_ASSIGN(KioskHiddenWebUITest); | 1747 DISALLOW_COPY_AND_ASSIGN(KioskHiddenWebUITest); |
| 1748 }; | 1748 }; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1773 content::WindowedNotificationObserver( | 1773 content::WindowedNotificationObserver( |
| 1774 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE, | 1774 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE, |
| 1775 content::NotificationService::AllSources()).Wait(); | 1775 content::NotificationService::AllSources()).Wait(); |
| 1776 | 1776 |
| 1777 // Wait for the wallpaper to load. | 1777 // Wait for the wallpaper to load. |
| 1778 WaitForWallpaper(); | 1778 WaitForWallpaper(); |
| 1779 EXPECT_TRUE(wallpaper_loaded()); | 1779 EXPECT_TRUE(wallpaper_loaded()); |
| 1780 } | 1780 } |
| 1781 | 1781 |
| 1782 } // namespace chromeos | 1782 } // namespace chromeos |
| OLD | NEW |