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

Side by Side Diff: chrome/browser/chromeos/login/kiosk_browsertest.cc

Issue 1301323005: Implement kiosk multiple apps feature. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 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 unified diff | Download patch
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "ash/desktop_background/desktop_background_controller.h" 7 #include "ash/desktop_background/desktop_background_controller.h"
8 #include "ash/desktop_background/desktop_background_controller_observer.h" 8 #include "ash/desktop_background/desktop_background_controller_observer.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 25 matching lines...) Expand all
36 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 36 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
37 #include "chrome/browser/chromeos/login/wizard_controller.h" 37 #include "chrome/browser/chromeos/login/wizard_controller.h"
38 #include "chrome/browser/chromeos/ownership/fake_owner_settings_service.h" 38 #include "chrome/browser/chromeos/ownership/fake_owner_settings_service.h"
39 #include "chrome/browser/chromeos/policy/device_local_account.h" 39 #include "chrome/browser/chromeos/policy/device_local_account.h"
40 #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" 40 #include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
41 #include "chrome/browser/chromeos/profiles/profile_helper.h" 41 #include "chrome/browser/chromeos/profiles/profile_helper.h"
42 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" 42 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
43 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h " 43 #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h "
44 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" 44 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h"
45 #include "chrome/browser/extensions/extension_service.h" 45 #include "chrome/browser/extensions/extension_service.h"
46 #include "chrome/browser/extensions/updater/local_extension_cache.h"
46 #include "chrome/browser/profiles/profile_impl.h" 47 #include "chrome/browser/profiles/profile_impl.h"
47 #include "chrome/browser/profiles/profile_manager.h" 48 #include "chrome/browser/profiles/profile_manager.h"
48 #include "chrome/browser/profiles/profiles_state.h" 49 #include "chrome/browser/profiles/profiles_state.h"
49 #include "chrome/browser/signin/signin_manager_factory.h" 50 #include "chrome/browser/signin/signin_manager_factory.h"
50 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h" 51 #include "chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.h"
51 #include "chrome/common/chrome_constants.h" 52 #include "chrome/common/chrome_constants.h"
52 #include "chrome/common/chrome_paths.h" 53 #include "chrome/common/chrome_paths.h"
53 #include "chrome/common/pref_names.h" 54 #include "chrome/common/pref_names.h"
55 #include "chromeos/chromeos_paths.h"
54 #include "chromeos/chromeos_switches.h" 56 #include "chromeos/chromeos_switches.h"
55 #include "chromeos/dbus/cryptohome_client.h" 57 #include "chromeos/dbus/cryptohome_client.h"
56 #include "chromeos/disks/disk_mount_manager.h" 58 #include "chromeos/disks/disk_mount_manager.h"
57 #include "chromeos/settings/cros_settings_provider.h" 59 #include "chromeos/settings/cros_settings_provider.h"
58 #include "components/signin/core/browser/signin_manager.h" 60 #include "components/signin/core/browser/signin_manager.h"
59 #include "components/signin/core/common/signin_pref_names.h" 61 #include "components/signin/core/common/signin_pref_names.h"
60 #include "content/public/browser/browser_thread.h" 62 #include "content/public/browser/browser_thread.h"
61 #include "content/public/browser/notification_observer.h" 63 #include "content/public/browser/notification_observer.h"
62 #include "content/public/browser/notification_registrar.h" 64 #include "content/public/browser/notification_registrar.h"
63 #include "content/public/browser/notification_service.h" 65 #include "content/public/browser/notification_service.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 // detail/bmbpicmpniaclbbpdkfglgipkkebnbjf 113 // detail/bmbpicmpniaclbbpdkfglgipkkebnbjf
112 const char kTestLocalFsKioskApp[] = "bmbpicmpniaclbbpdkfglgipkkebnbjf"; 114 const char kTestLocalFsKioskApp[] = "bmbpicmpniaclbbpdkfglgipkkebnbjf";
113 115
114 // An app to test local access to file systems via the 116 // An app to test local access to file systems via the
115 // chrome.fileSystem.requestFileSystem API. 117 // chrome.fileSystem.requestFileSystem API.
116 // Webstore data json is in 118 // Webstore data json is in
117 // chrome/test/data/chromeos/app_mode/webstore/inlineinstall/ 119 // chrome/test/data/chromeos/app_mode/webstore/inlineinstall/
118 // detail/aaedpojejpghjkedenggihopfhfijcko 120 // detail/aaedpojejpghjkedenggihopfhfijcko
119 const char kTestGetVolumeListKioskApp[] = "aaedpojejpghjkedenggihopfhfijcko"; 121 const char kTestGetVolumeListKioskApp[] = "aaedpojejpghjkedenggihopfhfijcko";
120 122
123 // Testing apps for testing kiosk multi-app feature.
124 const char kTestPrimaryKioskApp[] = "ceobkcclegcliomogfoeoheahogoecgl";
125 const char kTestSecondaryApp1[] = "ihplaomghjbeafnpnjkhppmfpnmdihgd";
126 const char kTestSecondaryApp2[] = "fiehokkcgaojmbhfhlpiheggjhaedjoc";
127 const char kTestSecondaryApp3[] = "aabnpdpieclcikafhdkkpldcaodmfoai";
128
121 // Fake usb stick mount path. 129 // Fake usb stick mount path.
122 const char kFakeUsbMountPathUpdatePass[] = 130 const char kFakeUsbMountPathUpdatePass[] =
123 "chromeos/app_mode/external_update/update_pass"; 131 "chromeos/app_mode/external_update/update_pass";
124 const char kFakeUsbMountPathNoManifest[] = 132 const char kFakeUsbMountPathNoManifest[] =
125 "chromeos/app_mode/external_update/no_manifest"; 133 "chromeos/app_mode/external_update/no_manifest";
126 const char kFakeUsbMountPathBadManifest[] = 134 const char kFakeUsbMountPathBadManifest[] =
127 "chromeos/app_mode/external_update/bad_manifest"; 135 "chromeos/app_mode/external_update/bad_manifest";
128 const char kFakeUsbMountPathLowerAppVersion[] = 136 const char kFakeUsbMountPathLowerAppVersion[] =
129 "chromeos/app_mode/external_update/lower_app_version"; 137 "chromeos/app_mode/external_update/lower_app_version";
130 const char kFakeUsbMountPathLowerCrxVersion[] = 138 const char kFakeUsbMountPathLowerCrxVersion[] =
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 void OnNetworkWaitTimedOut(const base::Closure& runner_quit_task) { 190 void OnNetworkWaitTimedOut(const base::Closure& runner_quit_task) {
183 runner_quit_task.Run(); 191 runner_quit_task.Run();
184 } 192 }
185 193
186 // Helper function for LockFileThread. 194 // Helper function for LockFileThread.
187 void LockAndUnlock(scoped_ptr<base::Lock> lock) { 195 void LockAndUnlock(scoped_ptr<base::Lock> lock) {
188 lock->Acquire(); 196 lock->Acquire();
189 lock->Release(); 197 lock->Release();
190 } 198 }
191 199
200 bool IsAppInstalled(const std::string app_id) {
201 Profile* app_profile = ProfileManager::GetPrimaryUserProfile();
202 DCHECK(app_profile);
203 const extensions::Extension* app =
204 extensions::ExtensionSystem::Get(app_profile)
205 ->extension_service()
206 ->GetInstalledExtension(app_id);
207 return app != nullptr;
208 }
209
192 // Helper functions for CanConfigureNetwork mock. 210 // Helper functions for CanConfigureNetwork mock.
193 class ScopedCanConfigureNetwork { 211 class ScopedCanConfigureNetwork {
194 public: 212 public:
195 ScopedCanConfigureNetwork(bool can_configure, bool needs_owner_auth) 213 ScopedCanConfigureNetwork(bool can_configure, bool needs_owner_auth)
196 : can_configure_(can_configure), 214 : can_configure_(can_configure),
197 needs_owner_auth_(needs_owner_auth), 215 needs_owner_auth_(needs_owner_auth),
198 can_configure_network_callback_( 216 can_configure_network_callback_(
199 base::Bind(&ScopedCanConfigureNetwork::CanConfigureNetwork, 217 base::Bind(&ScopedCanConfigureNetwork::CanConfigureNetwork,
200 base::Unretained(this))), 218 base::Unretained(this))),
201 needs_owner_auth_callback_(base::Bind( 219 needs_owner_auth_callback_(base::Bind(
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after
1240 1258
1241 // Check that no launch has started. 1259 // Check that no launch has started.
1242 EXPECT_FALSE(login_display_host->GetAppLaunchController()); 1260 EXPECT_FALSE(login_display_host->GetAppLaunchController());
1243 } 1261 }
1244 1262
1245 class KioskUpdateTest : public KioskTest { 1263 class KioskUpdateTest : public KioskTest {
1246 public: 1264 public:
1247 KioskUpdateTest() {} 1265 KioskUpdateTest() {}
1248 ~KioskUpdateTest() override {} 1266 ~KioskUpdateTest() override {}
1249 1267
1268 struct TestAppInfo {
1269 std::string id;
1270 std::string version;
1271 std::string crx_filename;
1272 TestAppInfo() {}
1273 TestAppInfo(const std::string& id,
1274 const std::string& version,
1275 const std::string& crx_filename)
1276 : id(id), version(version), crx_filename(crx_filename) {}
1277 ~TestAppInfo() {}
1278 };
1279
1250 protected: 1280 protected:
1251 void SetUp() override { 1281 void SetUp() override {
1252 fake_disk_mount_manager_ = new KioskFakeDiskMountManager(); 1282 fake_disk_mount_manager_ = new KioskFakeDiskMountManager();
1253 disks::DiskMountManager::InitializeForTesting(fake_disk_mount_manager_); 1283 disks::DiskMountManager::InitializeForTesting(fake_disk_mount_manager_);
1254 1284
1255 KioskTest::SetUp(); 1285 KioskTest::SetUp();
1256 } 1286 }
1257 1287
1258 void TearDown() override { 1288 void TearDown() override {
1259 disks::DiskMountManager::Shutdown(); 1289 disks::DiskMountManager::Shutdown();
1260 1290
1261 KioskTest::TearDown(); 1291 KioskTest::TearDown();
1262 } 1292 }
1263 1293
1264 void SetUpOnMainThread() override { 1294 void SetUpOnMainThread() override {
1265 // For update tests, we cache the app in the PRE part, and then we load it 1295 // For update tests, we cache the app in the PRE part, and then we load it
1266 // in the test, so we need to both store the apps list on teardown (so that 1296 // in the test, so we need to both store the apps list on teardown (so that
1267 // the app manager would accept existing files in its extension cache on the 1297 // the app manager would accept existing files in its extension cache on the
1268 // next startup) and copy the list to our stub settings provider as well. 1298 // next startup) and copy the list to our stub settings provider as well.
1269 settings_helper_.CopyStoredValue(kAccountsPrefDeviceLocalAccounts); 1299 settings_helper_.CopyStoredValue(kAccountsPrefDeviceLocalAccounts);
1300
1301 CreateAndInitializeLocalCache();
1302
1270 KioskTest::SetUpOnMainThread(); 1303 KioskTest::SetUpOnMainThread();
1271 } 1304 }
1272 1305
1273 void TearDownOnMainThread() override { 1306 void TearDownOnMainThread() override {
1274 settings_helper_.StoreCachedDeviceSetting(kAccountsPrefDeviceLocalAccounts); 1307 settings_helper_.StoreCachedDeviceSetting(kAccountsPrefDeviceLocalAccounts);
1275 KioskTest::TearDownOnMainThread(); 1308 KioskTest::TearDownOnMainThread();
1276 } 1309 }
1277 1310
1278 void PreCacheApp(const std::string& app_id, 1311 void PreCacheApp(const std::string& app_id,
1279 const std::string& version, 1312 const std::string& version,
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 set_test_app_id(app_id); 1369 set_test_app_id(app_id);
1337 set_test_app_version(version); 1370 set_test_app_version(version);
1338 set_test_crx_file(crx_file); 1371 set_test_crx_file(crx_file);
1339 PrepareAppLaunch(); 1372 PrepareAppLaunch();
1340 SimulateNetworkOnline(); 1373 SimulateNetworkOnline();
1341 LaunchApp(test_app_id(), false); 1374 LaunchApp(test_app_id(), false);
1342 WaitForAppLaunchSuccess(); 1375 WaitForAppLaunchSuccess();
1343 EXPECT_EQ(version, GetInstalledAppVersion().GetString()); 1376 EXPECT_EQ(version, GetInstalledAppVersion().GetString());
1344 } 1377 }
1345 1378
1379 void LaunchKioskWithSecondaryApps(
1380 const TestAppInfo& primary_app,
1381 const std::vector<TestAppInfo>& secondary_apps) {
1382 // Pre-cache the primary app.
1383 PreCacheApp(primary_app.id, primary_app.version, primary_app.crx_filename);
1384
1385 set_test_app_id(primary_app.id);
1386 fake_cws()->SetNoUpdate(primary_app.id);
1387 for (size_t i = 0; i < secondary_apps.size(); ++i) {
1388 fake_cws()->SetUpdateCrx(secondary_apps[i].id,
1389 secondary_apps[i].crx_filename,
1390 secondary_apps[i].version);
1391 }
1392
1393 // Launch the primary app.
1394 StartUIForAppLaunch();
1395 SimulateNetworkOnline();
1396 LaunchApp(test_app_id(), false);
1397 WaitForAppLaunchWithOptions(false, true);
1398
1399 // Verify the primary app and the secondary apps are all installed.
1400 EXPECT_EQ(primary_app.version, GetInstalledAppVersion().GetString());
1401 for (size_t i = 0; i < secondary_apps.size(); ++i)
1402 EXPECT_TRUE(IsAppInstalled(secondary_apps[i].id));
1403 }
1404
1405 void LaunchTestKioskAppWithTwoSecondaryApps() {
1406 TestAppInfo primary_app(kTestPrimaryKioskApp, "1.0.0",
1407 std::string(kTestPrimaryKioskApp) + "-1.0.0.crx");
1408
1409 std::vector<TestAppInfo> secondary_apps;
1410 TestAppInfo secondary_app_1(kTestSecondaryApp1, "1.0.0",
1411 std::string(kTestSecondaryApp1) + "-1.0.0.crx");
1412 secondary_apps.push_back(secondary_app_1);
1413 TestAppInfo secondary_app_2(kTestSecondaryApp2, "1.0.0",
1414 std::string(kTestSecondaryApp2) + "-1.0.0.crx");
1415 secondary_apps.push_back(secondary_app_2);
1416
1417 LaunchKioskWithSecondaryApps(primary_app, secondary_apps);
1418 }
1419
1346 private: 1420 private:
1347 class KioskAppExternalUpdateWaiter : public KioskAppManagerObserver { 1421 class KioskAppExternalUpdateWaiter : public KioskAppManagerObserver {
1348 public: 1422 public:
1349 KioskAppExternalUpdateWaiter(KioskAppManager* manager, 1423 KioskAppExternalUpdateWaiter(KioskAppManager* manager,
1350 const std::string& app_id) 1424 const std::string& app_id)
1351 : runner_(NULL), 1425 : runner_(NULL),
1352 manager_(manager), 1426 manager_(manager),
1353 app_id_(app_id), 1427 app_id_(app_id),
1354 quit_(false), 1428 quit_(false),
1355 update_success_(false), 1429 update_success_(false),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 scoped_refptr<content::MessageLoopRunner> runner_; 1462 scoped_refptr<content::MessageLoopRunner> runner_;
1389 KioskAppManager* manager_; 1463 KioskAppManager* manager_;
1390 const std::string app_id_; 1464 const std::string app_id_;
1391 bool quit_; 1465 bool quit_;
1392 bool update_success_; 1466 bool update_success_;
1393 bool app_update_notified_; 1467 bool app_update_notified_;
1394 1468
1395 DISALLOW_COPY_AND_ASSIGN(KioskAppExternalUpdateWaiter); 1469 DISALLOW_COPY_AND_ASSIGN(KioskAppExternalUpdateWaiter);
1396 }; 1470 };
1397 1471
1472 // The local cache is supposed to be initialized on chromeos device, and a
1473 // ready flag file will be pre-created to mark the ready state, before chrome
1474 // starts. In order for the tests to run without being on real chromeos
1475 // device, we need to manually create this file.
1476 void CreateAndInitializeLocalCache() {
1477 base::FilePath extension_cache_dir;
1478 CHECK(PathService::Get(chromeos::DIR_DEVICE_EXTENSION_LOCAL_CACHE,
1479 &extension_cache_dir));
1480 base::FilePath cache_init_file = extension_cache_dir.Append(
1481 extensions::LocalExtensionCache::kCacheReadyFlagFileName);
1482 const base::Time now = base::Time::Now();
1483 EXPECT_EQ(base::WriteFile(cache_init_file, "", 0), 0);
1484 EXPECT_TRUE(base::TouchFile(cache_init_file, now, now));
xiyuan 2015/08/26 18:16:17 nit: This is probably not necessary since we just
jennyz 2015/08/28 18:24:08 Done.
1485 }
1486
1398 // Owned by DiskMountManager. 1487 // Owned by DiskMountManager.
1399 KioskFakeDiskMountManager* fake_disk_mount_manager_; 1488 KioskFakeDiskMountManager* fake_disk_mount_manager_;
1400 1489
1401 DISALLOW_COPY_AND_ASSIGN(KioskUpdateTest); 1490 DISALLOW_COPY_AND_ASSIGN(KioskUpdateTest);
1402 }; 1491 };
1403 1492
1404 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PRE_LaunchOfflineEnabledAppNoNetwork) { 1493 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PRE_LaunchOfflineEnabledAppNoNetwork) {
1405 PreCacheAndLaunchApp(kTestOfflineEnabledKioskApp, 1494 PreCacheAndLaunchApp(kTestOfflineEnabledKioskApp,
1406 "1.0.0", 1495 "1.0.0",
1407 std::string(kTestOfflineEnabledKioskApp) + "_v1.crx"); 1496 std::string(kTestOfflineEnabledKioskApp) + "_v1.crx");
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1701 set_test_crx_file(test_app_id() + "_v2_read_and_verify_data.crx"); 1790 set_test_crx_file(test_app_id() + "_v2_read_and_verify_data.crx");
1702 extensions::ResultCatcher catcher; 1791 extensions::ResultCatcher catcher;
1703 StartAppLaunchFromLoginScreen(SimulateNetworkOnlineClosure()); 1792 StartAppLaunchFromLoginScreen(SimulateNetworkOnlineClosure());
1704 WaitForAppLaunchWithOptions(true /* check_launch_data */, 1793 WaitForAppLaunchWithOptions(true /* check_launch_data */,
1705 false /* terminate_app */); 1794 false /* terminate_app */);
1706 1795
1707 EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString()); 1796 EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString());
1708 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); 1797 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
1709 } 1798 }
1710 1799
1800 /* ***** Test Kiosk multi-app feature ***** */
1801
1802 // Launch a primary kiosk app which has two secondary apps.
1803 IN_PROC_BROWSER_TEST_F(KioskUpdateTest,
1804 LaunchTestKioskAppWithTwoSecondaryApps) {
1805 LaunchTestKioskAppWithTwoSecondaryApps();
1806 }
1807
1808 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PRE_UpdateMultiAppKioskRemoveOneApp) {
1809 LaunchTestKioskAppWithTwoSecondaryApps();
1810 }
1811
1812 // Update the primary app to version 2 which removes one of the secondary app
1813 // from its manifest.
1814 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, UpdateMultiAppKioskRemoveOneApp) {
1815 set_test_app_id(kTestPrimaryKioskApp);
1816 fake_cws()->SetUpdateCrx(
1817 kTestPrimaryKioskApp,
1818 std::string(kTestPrimaryKioskApp) + "-2.0.0-1app.crx", "2.0.0");
1819 fake_cws()->SetNoUpdate(kTestSecondaryApp1);
1820 fake_cws()->SetNoUpdate(kTestSecondaryApp2);
1821
1822 StartUIForAppLaunch();
1823 SimulateNetworkOnline();
1824 LaunchApp(test_app_id(), false);
1825 WaitForAppLaunchWithOptions(false, true);
1826
1827 // Verify the secondary app kTestSecondaryApp1 is removed.
1828 EXPECT_EQ("2.0.0", GetInstalledAppVersion().GetString());
1829 EXPECT_FALSE(IsAppInstalled(kTestSecondaryApp1));
1830 EXPECT_TRUE(IsAppInstalled(kTestSecondaryApp2));
1831 }
1832
1833 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, PRE_UpdateMultiAppKioskAddOneApp) {
1834 LaunchTestKioskAppWithTwoSecondaryApps();
1835 }
1836
1837 // Update the primary app to version 3 which adds a new secondary app in its
1838 // manifest.
1839 IN_PROC_BROWSER_TEST_F(KioskUpdateTest, UpdateMultiAppKioskAddOneApp) {
1840 set_test_app_id(kTestPrimaryKioskApp);
1841 fake_cws()->SetUpdateCrx(
1842 kTestPrimaryKioskApp,
1843 std::string(kTestPrimaryKioskApp) + "-3.0.0-3app.crx", "3.0.0");
1844 fake_cws()->SetNoUpdate(kTestSecondaryApp1);
1845 fake_cws()->SetNoUpdate(kTestSecondaryApp2);
1846 fake_cws()->SetUpdateCrx(kTestSecondaryApp3,
1847 std::string(kTestSecondaryApp3) + "-1.0.0.crx",
1848 "1.0.0");
1849
1850 StartUIForAppLaunch();
1851 SimulateNetworkOnline();
1852 LaunchApp(test_app_id(), false);
1853 WaitForAppLaunchWithOptions(false, true);
1854
1855 // Verify the secondary app kTestSecondaryApp3 is installed.
1856 EXPECT_EQ("3.0.0", GetInstalledAppVersion().GetString());
1857 EXPECT_TRUE(IsAppInstalled(kTestSecondaryApp1));
1858 EXPECT_TRUE(IsAppInstalled(kTestSecondaryApp2));
1859 EXPECT_TRUE(IsAppInstalled(kTestSecondaryApp3));
1860 }
1861
1711 class KioskEnterpriseTest : public KioskTest { 1862 class KioskEnterpriseTest : public KioskTest {
1712 protected: 1863 protected:
1713 KioskEnterpriseTest() { 1864 KioskEnterpriseTest() {
1714 set_use_consumer_kiosk_mode(false); 1865 set_use_consumer_kiosk_mode(false);
1715 } 1866 }
1716 1867
1717 void SetUpInProcessBrowserTestFixture() override { 1868 void SetUpInProcessBrowserTestFixture() override {
1718 policy::DevicePolicyCrosTestHelper::MarkAsEnterpriseOwnedBy( 1869 policy::DevicePolicyCrosTestHelper::MarkAsEnterpriseOwnedBy(
1719 kTestOwnerEmail); 1870 kTestOwnerEmail);
1720 settings_helper_.SetCurrentUserIsOwner(false); 1871 settings_helper_.SetCurrentUserIsOwner(false);
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1945 content::WindowedNotificationObserver( 2096 content::WindowedNotificationObserver(
1946 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE, 2097 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
1947 content::NotificationService::AllSources()).Wait(); 2098 content::NotificationService::AllSources()).Wait();
1948 2099
1949 // Wait for the wallpaper to load. 2100 // Wait for the wallpaper to load.
1950 WaitForWallpaper(); 2101 WaitForWallpaper();
1951 EXPECT_TRUE(wallpaper_loaded()); 2102 EXPECT_TRUE(wallpaper_loaded());
1952 } 2103 }
1953 2104
1954 } // namespace chromeos 2105 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698