| 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..2d256442ede2a1122f16a3a679bbd1aafe61d26d 100644
|
| --- a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| +++ b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
|
| @@ -25,6 +25,7 @@
|
| #include "chrome/browser/ui/app_list/arc/arc_app_model_builder.h"
|
| #include "chrome/browser/ui/app_list/arc/arc_app_test.h"
|
| #include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
|
| +#include "chrome/browser/ui/app_list/arc/arc_default_app_list.h"
|
| #include "chrome/browser/ui/app_list/test/test_app_list_controller_delegate.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/arc/test/fake_app_instance.h"
|
| @@ -318,6 +319,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 +344,21 @@ class ArcAppModelBuilderTest : public AppListTestBase {
|
| DISALLOW_COPY_AND_ASSIGN(ArcAppModelBuilderTest);
|
| };
|
|
|
| +class ArcDefaulAppTest : public ArcAppModelBuilderTest {
|
| + public:
|
| + ArcDefaulAppTest() {}
|
| + ~ArcDefaulAppTest() override {}
|
| +
|
| +
|
| + void SetUp() override {
|
| + ArcDefaultAppList::UseTestAppsDirectory();
|
| + 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 +987,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);
|
| +}
|
|
|