| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 // Validate loaded image. | 1334 // Validate loaded image. |
| 1335 EXPECT_EQ(1 + scale_factors.size(), delegate.update_image_cnt()); | 1335 EXPECT_EQ(1 + scale_factors.size(), delegate.update_image_cnt()); |
| 1336 EXPECT_EQ(app_id, delegate.app_id()); | 1336 EXPECT_EQ(app_id, delegate.app_id()); |
| 1337 ValidateIcon(delegate.image()); | 1337 ValidateIcon(delegate.image()); |
| 1338 | 1338 |
| 1339 // No more updates are expected. | 1339 // No more updates are expected. |
| 1340 base::RunLoop().RunUntilIdle(); | 1340 base::RunLoop().RunUntilIdle(); |
| 1341 EXPECT_EQ(1 + scale_factors.size(), delegate.update_image_cnt()); | 1341 EXPECT_EQ(1 + scale_factors.size(), delegate.update_image_cnt()); |
| 1342 } | 1342 } |
| 1343 | 1343 |
| 1344 TEST_P(ArcAppModelBuilderTest, IconInvalidation) { |
| 1345 std::vector<ui::ScaleFactor> supported_scale_factors; |
| 1346 supported_scale_factors.push_back(ui::SCALE_FACTOR_100P); |
| 1347 supported_scale_factors.push_back(ui::SCALE_FACTOR_200P); |
| 1348 ui::test::ScopedSetSupportedScaleFactors scoped_supported_scale_factors( |
| 1349 supported_scale_factors); |
| 1350 |
| 1351 ASSERT_FALSE(fake_apps().empty()); |
| 1352 std::vector<arc::mojom::AppInfo> apps = std::vector<arc::mojom::AppInfo>( |
| 1353 fake_apps().begin(), fake_apps().begin() + 1); |
| 1354 |
| 1355 const arc::mojom::AppInfo& app = apps[0]; |
| 1356 const std::string app_id = ArcAppTest::GetAppId(app); |
| 1357 |
| 1358 ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get()); |
| 1359 ASSERT_NE(nullptr, prefs); |
| 1360 |
| 1361 app_instance()->RefreshAppList(); |
| 1362 app_instance()->SendRefreshAppList(apps); |
| 1363 |
| 1364 prefs->MaybeRequestIcon(app_id, ui::SCALE_FACTOR_100P); |
| 1365 |
| 1366 std::string png_data; |
| 1367 EXPECT_TRUE(app_instance()->GenerateAndSendIcon( |
| 1368 app, arc::mojom::ScaleFactor::SCALE_FACTOR_100P, &png_data)); |
| 1369 WaitForIconUpdates(profile_.get(), app_id, 1); |
| 1370 |
| 1371 // Simulate ARC restart. |
| 1372 arc_test()->TearDown(); |
| 1373 ArcAppListPrefsFactory::GetInstance()->RecreateServiceInstanceForTesting( |
| 1374 profile_.get()); |
| 1375 arc_test()->SetUp(profile_.get()); |
| 1376 prefs = ArcAppListPrefs::Get(profile_.get()); |
| 1377 ASSERT_NE(nullptr, prefs); |
| 1378 app_instance()->RefreshAppList(); |
| 1379 app_instance()->SendRefreshAppList(apps); |
| 1380 |
| 1381 // No icon update requests on restart. Icons were not invalidated. |
| 1382 EXPECT_TRUE(app_instance()->icon_requests().empty()); |
| 1383 |
| 1384 // Send new apps for the package. This should invalidate app icons. |
| 1385 app_instance()->SendPackageAppListRefreshed(apps[0].package_name, apps); |
| 1386 base::RunLoop().RunUntilIdle(); |
| 1387 |
| 1388 // Requests to reload icons are issued for all supported scales. |
| 1389 const std::vector<std::unique_ptr<arc::FakeAppInstance::IconRequest>>& |
| 1390 icon_requests = app_instance()->icon_requests(); |
| 1391 ASSERT_EQ(2U, icon_requests.size()); |
| 1392 EXPECT_TRUE(icon_requests[0]->IsForApp(app)); |
| 1393 EXPECT_EQ(icon_requests[0]->scale_factor(), ui::SCALE_FACTOR_100P); |
| 1394 EXPECT_TRUE(icon_requests[1]->IsForApp(app)); |
| 1395 EXPECT_EQ(icon_requests[1]->scale_factor(), ui::SCALE_FACTOR_200P); |
| 1396 |
| 1397 EXPECT_TRUE(app_instance()->GenerateAndSendIcon( |
| 1398 app, arc::mojom::ScaleFactor::SCALE_FACTOR_100P, &png_data)); |
| 1399 EXPECT_TRUE(app_instance()->GenerateAndSendIcon( |
| 1400 app, arc::mojom::ScaleFactor::SCALE_FACTOR_200P, &png_data)); |
| 1401 WaitForIconUpdates(profile_.get(), app_id, 2); |
| 1402 |
| 1403 // Simulate ARC restart again. |
| 1404 arc_test()->TearDown(); |
| 1405 ArcAppListPrefsFactory::GetInstance()->RecreateServiceInstanceForTesting( |
| 1406 profile_.get()); |
| 1407 arc_test()->SetUp(profile_.get()); |
| 1408 prefs = ArcAppListPrefs::Get(profile_.get()); |
| 1409 ASSERT_NE(nullptr, prefs); |
| 1410 app_instance()->RefreshAppList(); |
| 1411 app_instance()->SendRefreshAppList(apps); |
| 1412 |
| 1413 // No new icon update requests on restart. Icons were invalidated and updated. |
| 1414 EXPECT_TRUE(app_instance()->icon_requests().empty()); |
| 1415 } |
| 1416 |
| 1344 TEST_P(ArcAppModelBuilderTest, AppLauncher) { | 1417 TEST_P(ArcAppModelBuilderTest, AppLauncher) { |
| 1345 ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile()); | 1418 ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile()); |
| 1346 ASSERT_NE(nullptr, prefs); | 1419 ASSERT_NE(nullptr, prefs); |
| 1347 | 1420 |
| 1348 // App1 is called in deferred mode, after refreshing apps. | 1421 // App1 is called in deferred mode, after refreshing apps. |
| 1349 // App2 is never called since app is not avaialble. | 1422 // App2 is never called since app is not avaialble. |
| 1350 // App3 is never called immediately because app is available already. | 1423 // App3 is never called immediately because app is available already. |
| 1351 const arc::mojom::AppInfo& app1 = fake_apps()[0]; | 1424 const arc::mojom::AppInfo& app1 = fake_apps()[0]; |
| 1352 const arc::mojom::AppInfo& app2 = fake_apps()[1]; | 1425 const arc::mojom::AppInfo& app2 = fake_apps()[1]; |
| 1353 const arc::mojom::AppInfo& app3 = fake_apps()[2]; | 1426 const arc::mojom::AppInfo& app3 = fake_apps()[2]; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1406 // App should not appear now in the model but should be registered. | 1479 // App should not appear now in the model but should be registered. |
| 1407 EXPECT_FALSE(FindArcItem(app_id)); | 1480 EXPECT_FALSE(FindArcItem(app_id)); |
| 1408 EXPECT_TRUE(prefs->IsRegistered(app_id)); | 1481 EXPECT_TRUE(prefs->IsRegistered(app_id)); |
| 1409 } | 1482 } |
| 1410 | 1483 |
| 1411 TEST_P(ArcAppModelBuilderTest, ArcAppsAndShortcutsOnPackageChange) { | 1484 TEST_P(ArcAppModelBuilderTest, ArcAppsAndShortcutsOnPackageChange) { |
| 1412 ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get()); | 1485 ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get()); |
| 1413 ASSERT_NE(nullptr, prefs); | 1486 ASSERT_NE(nullptr, prefs); |
| 1414 | 1487 |
| 1415 std::vector<arc::mojom::AppInfo> apps = fake_apps(); | 1488 std::vector<arc::mojom::AppInfo> apps = fake_apps(); |
| 1416 ASSERT_GE(3u, apps.size()); | 1489 ASSERT_GE(apps.size(), 3U); |
| 1417 apps[0].package_name = apps[2].package_name; | 1490 apps[0].package_name = apps[2].package_name; |
| 1418 apps[1].package_name = apps[2].package_name; | 1491 apps[1].package_name = apps[2].package_name; |
| 1419 | 1492 |
| 1420 std::vector<arc::mojom::ShortcutInfo> shortcuts = fake_shortcuts(); | 1493 std::vector<arc::mojom::ShortcutInfo> shortcuts = fake_shortcuts(); |
| 1421 for (auto& shortcut : shortcuts) | 1494 for (auto& shortcut : shortcuts) |
| 1422 shortcut.package_name = apps[0].package_name; | 1495 shortcut.package_name = apps[0].package_name; |
| 1423 | 1496 |
| 1424 // Second app should be preserved after update. | 1497 // Second app should be preserved after update. |
| 1425 std::vector<arc::mojom::AppInfo> apps1(apps.begin(), apps.begin() + 2); | 1498 std::vector<arc::mojom::AppInfo> apps1(apps.begin(), apps.begin() + 2); |
| 1426 std::vector<arc::mojom::AppInfo> apps2(apps.begin() + 1, apps.begin() + 3); | 1499 std::vector<arc::mojom::AppInfo> apps2(apps.begin() + 1, apps.begin() + 3); |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1665 ::testing::ValuesIn(kUnmanagedArcStates)); | 1738 ::testing::ValuesIn(kUnmanagedArcStates)); |
| 1666 INSTANTIATE_TEST_CASE_P(, | 1739 INSTANTIATE_TEST_CASE_P(, |
| 1667 ArcDefaulAppForManagedUserTest, | 1740 ArcDefaulAppForManagedUserTest, |
| 1668 ::testing::ValuesIn(kManagedArcStates)); | 1741 ::testing::ValuesIn(kManagedArcStates)); |
| 1669 INSTANTIATE_TEST_CASE_P(, | 1742 INSTANTIATE_TEST_CASE_P(, |
| 1670 ArcPlayStoreAppTest, | 1743 ArcPlayStoreAppTest, |
| 1671 ::testing::ValuesIn(kUnmanagedArcStates)); | 1744 ::testing::ValuesIn(kUnmanagedArcStates)); |
| 1672 INSTANTIATE_TEST_CASE_P(, | 1745 INSTANTIATE_TEST_CASE_P(, |
| 1673 ArcAppModelBuilderRecreate, | 1746 ArcAppModelBuilderRecreate, |
| 1674 ::testing::ValuesIn(kUnmanagedArcStates)); | 1747 ::testing::ValuesIn(kUnmanagedArcStates)); |
| OLD | NEW |