| Index: chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| diff --git a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| index 4468326f22c04dbea7fec3bd82d18942ae30b393..5b458d709ff0a79aea2ef3e7cda81243e407130f 100644
|
| --- a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| +++ b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| @@ -318,6 +318,10 @@ class ArcAppModelBuilderTest : public AppListTestBase {
|
| return arc_test_.fake_apps();
|
| }
|
|
|
| + const std::vector<arc::mojom::AppInfo>& fake_default_apps() const {
|
| + return arc_test_.fake_default_apps();
|
| + }
|
| +
|
| const std::vector<arc::mojom::ArcPackageInfo>& fake_packages() const {
|
| return arc_test_.fake_packages();
|
| }
|
| @@ -339,6 +343,21 @@ class ArcAppModelBuilderTest : public AppListTestBase {
|
| DISALLOW_COPY_AND_ASSIGN(ArcAppModelBuilderTest);
|
| };
|
|
|
| +class ArcDefaulAppTest : public ArcAppModelBuilderTest {
|
| + public:
|
| + ArcDefaulAppTest() {}
|
| + ~ArcDefaulAppTest() override {}
|
| +
|
| +
|
| + void SetUp() override {
|
| + ArcAppListPrefs::UseTestDefaultAppsDirectory();
|
| + ArcAppModelBuilderTest::SetUp();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ArcDefaulAppTest);
|
| +};
|
| +
|
| TEST_F(ArcAppModelBuilderTest, ArcPackagePref) {
|
| ValidateHavePackages(std::vector<arc::mojom::ArcPackageInfo>());
|
| app_instance()->SendRefreshPackageList(fake_packages());
|
| @@ -967,3 +986,53 @@ TEST_F(ArcAppModelBuilderTest, ArcAppsOnPackageUpdated) {
|
| ASSERT_TRUE(app_info_after);
|
| EXPECT_EQ(now_time, app_info_after->last_launch_time);
|
| }
|
| +
|
| +TEST_F(ArcDefaulAppTest, DefaultApps) {
|
| + ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get());
|
| + ASSERT_NE(nullptr, prefs);
|
| +
|
| + ValidateHaveApps(fake_default_apps());
|
| +
|
| + // Start normal apps. We should have apps from 2 subsets.
|
| + app_instance()->RefreshAppList();
|
| + app_instance()->SendRefreshAppList(fake_apps());
|
| +
|
| + std::vector<arc::mojom::AppInfo> all_apps = fake_default_apps();
|
| + all_apps.insert(all_apps.end(), fake_apps().begin(), fake_apps().end());
|
| + ValidateHaveApps(all_apps);
|
| +
|
| + // However default apps are still not ready.
|
| + for (const auto& default_app : fake_default_apps()) {
|
| + std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = prefs->GetApp(
|
| + ArcAppTest::GetAppId(default_app));
|
| + ASSERT_TRUE(app_info);
|
| + EXPECT_FALSE(app_info->ready);
|
| + }
|
| +
|
| + // Install default apps.
|
| + for (const auto& default_app : fake_default_apps()) {
|
| + std::vector<arc::mojom::AppInfo> package_apps;
|
| + package_apps.push_back(default_app);
|
| + app_instance()->SendPackageAppListRefreshed(default_app.package_name,
|
| + package_apps);
|
| + }
|
| +
|
| + // And now default apps are ready.
|
| + for (const auto& default_app : fake_default_apps()) {
|
| + std::unique_ptr<ArcAppListPrefs::AppInfo> app_info = prefs->GetApp(
|
| + ArcAppTest::GetAppId(default_app));
|
| + ASSERT_TRUE(app_info);
|
| + EXPECT_TRUE(app_info->ready);
|
| + }
|
| +
|
| + // Uninstall first default package. Default app should go away.
|
| + app_instance()->SendPackageUninstalled(all_apps[0].package_name);
|
| + all_apps.erase(all_apps.begin());
|
| + ValidateHaveApps(all_apps);
|
| +
|
| + // OptOut and default apps should exist minus first.
|
| + arc_test()->arc_auth_service()->DisableArc();
|
| + all_apps = fake_default_apps();
|
| + all_apps.erase(all_apps.begin());
|
| + ValidateHaveApps(all_apps);
|
| +}
|
|
|