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

Unified Diff: chrome/browser/ui/app_list/arc/arc_app_unittest.cc

Issue 2601323002: arc: Handle default app not availble case. (Closed)
Patch Set: rebase Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
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 c483f773af0f18bb3706b57358b8cd454240b59b..0dd977454ff1820d0dbf88b77e231bad7ccd7bfa 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
@@ -1288,6 +1288,65 @@ TEST_F(ArcDefaulAppTest, DefaultApps) {
}
}
+TEST_F(ArcDefaulAppTest, DefaultAppsNotAvailable) {
+ ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get());
+ ASSERT_NE(nullptr, prefs);
+
+ ValidateHaveApps(fake_default_apps());
+
+ const std::vector<arc::mojom::AppInfo> empty_app_list;
+
+ app_instance()->RefreshAppList();
+ app_instance()->SendRefreshAppList(empty_app_list);
+
+ ValidateHaveApps(fake_default_apps());
+
+ prefs->SimulateDefaultAppAvailabilityTimeoutForTesting();
+
+ // No default app installation and already installed packages.
+ ValidateHaveApps(empty_app_list);
+}
+
+TEST_F(ArcDefaulAppTest, DefaultAppsInstallation) {
+ ArcAppListPrefs* prefs = ArcAppListPrefs::Get(profile_.get());
+ ASSERT_NE(nullptr, prefs);
+
+ const std::vector<arc::mojom::AppInfo> empty_app_list;
+
+ ValidateHaveApps(fake_default_apps());
+
+ app_instance()->RefreshAppList();
+ app_instance()->SendRefreshAppList(empty_app_list);
+
+ ValidateHaveApps(fake_default_apps());
+
+ // Notify that default installations have been started.
+ for (const auto& fake_app : fake_default_apps())
+ app_instance()->SendInstallationStarted(fake_app.package_name);
+
+ // Timeout does not affect default app availability because all installations
+ // for default apps have been started.
+ prefs->SimulateDefaultAppAvailabilityTimeoutForTesting();
+ ValidateHaveApps(fake_default_apps());
+
+ const arc::mojom::AppInfo& app_last = fake_default_apps().back();
+ std::vector<arc::mojom::AppInfo> available_apps = fake_default_apps();
+ available_apps.pop_back();
+
+ for (const auto& fake_app : available_apps)
+ app_instance()->SendInstallationFinished(fake_app.package_name, true);
+
+ // So far we have all default apps available because not all installations
+ // completed.
+ ValidateHaveApps(fake_default_apps());
+
+ // Last default app installation failed.
+ app_instance()->SendInstallationFinished(app_last.package_name, false);
+
+ // We should have all default apps except last.
+ ValidateHaveApps(available_apps);
+}
+
TEST_F(ArcDefaulAppForManagedUserTest, DefaultAppsForManagedUser) {
const ArcAppListPrefs* const prefs = ArcAppListPrefs::Get(profile_.get());
ASSERT_TRUE(prefs);

Powered by Google App Engine
This is Rietveld 408576698