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

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

Issue 2520173002: arc: Fix duplicate icons in app launcher in case of crash. (Closed)
Patch Set: nits Created 4 years, 1 month 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
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_app_test.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 78386c02d4b9c2b7e2e793fca95d8dea4e8331cf..cdd1123f33e20d1453f90c603aee2fe0a1ddaea9 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_unittest.cc
@@ -27,10 +27,12 @@
#include "chrome/browser/ui/app_list/arc/arc_app_item.h"
#include "chrome/browser/ui/app_list/arc/arc_app_launcher.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h"
#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/arc/arc_package_syncable_service_factory.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"
@@ -51,8 +53,8 @@ constexpr char kTestPackageName[] = "fake.package.name2";
class FakeAppIconLoaderDelegate : public AppIconLoaderDelegate {
public:
- FakeAppIconLoaderDelegate() {}
- ~FakeAppIconLoaderDelegate() override {}
+ FakeAppIconLoaderDelegate() = default;
+ ~FakeAppIconLoaderDelegate() override = default;
void OnAppImageUpdated(const std::string& app_id,
const gfx::ImageSkia& image) override {
@@ -91,7 +93,7 @@ void WaitForIconReady(ArcAppListPrefs* prefs,
class ArcAppModelBuilderTest : public AppListTestBase {
public:
- ArcAppModelBuilderTest() {}
+ ArcAppModelBuilderTest() = default;
~ArcAppModelBuilderTest() override {
// Release profile file in order to keep right sequence.
profile_.reset();
@@ -163,12 +165,15 @@ class ArcAppModelBuilderTest : public AppListTestBase {
ArcAppItem* FindArcItem(const std::string& id) const {
const size_t count = GetArcItemCount();
+ ArcAppItem* found_item = nullptr;
for (size_t i = 0; i < count; ++i) {
ArcAppItem* item = GetArcItem(i);
- if (item && item->id() == id)
- return item;
+ if (item && item->id() == id) {
+ DCHECK(!found_item);
+ found_item = item;
+ }
}
- return nullptr;
+ return found_item;
}
// Validate that prefs and model have right content.
@@ -359,8 +364,8 @@ class ArcAppModelBuilderTest : public AppListTestBase {
class ArcDefaulAppTest : public ArcAppModelBuilderTest {
public:
- ArcDefaulAppTest() {}
- ~ArcDefaulAppTest() override {}
+ ArcDefaulAppTest() = default;
+ ~ArcDefaulAppTest() override = default;
protected:
// ArcAppModelBuilderTest:
@@ -374,8 +379,8 @@ class ArcDefaulAppTest : public ArcAppModelBuilderTest {
class ArcDefaulAppForManagedUserTest : public ArcDefaulAppTest {
public:
- ArcDefaulAppForManagedUserTest() {}
- ~ArcDefaulAppForManagedUserTest() override {}
+ ArcDefaulAppForManagedUserTest() = default;
+ ~ArcDefaulAppForManagedUserTest() override = default;
protected:
// ArcAppModelBuilderTest:
@@ -394,8 +399,8 @@ class ArcDefaulAppForManagedUserTest : public ArcDefaulAppTest {
class ArcPlayStoreAppTest : public ArcDefaulAppTest {
public:
- ArcPlayStoreAppTest() {}
- ~ArcPlayStoreAppTest() override {}
+ ArcPlayStoreAppTest() = default;
+ ~ArcPlayStoreAppTest() override = default;
protected:
// ArcAppModelBuilderTest:
@@ -427,6 +432,22 @@ class ArcPlayStoreAppTest : public ArcDefaulAppTest {
DISALLOW_COPY_AND_ASSIGN(ArcPlayStoreAppTest);
};
+class ArcAppModelBuilderRecreate : public ArcAppModelBuilderTest {
+ public:
+ ArcAppModelBuilderRecreate() = default;
+ ~ArcAppModelBuilderRecreate() override = default;
+
+ protected:
+ // ArcAppModelBuilderTest:
+ void OnBeforeArcTestSetup() override {
+ arc::ArcPackageSyncableServiceFactory::GetInstance()->SetTestingFactory(
+ profile_.get(), nullptr);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ArcAppModelBuilderRecreate);
+};
+
TEST_F(ArcAppModelBuilderTest, ArcPackagePref) {
ValidateHavePackages(std::vector<arc::mojom::ArcPackageInfo>());
app_instance()->SendRefreshPackageList(fake_packages());
@@ -914,6 +935,40 @@ TEST_F(ArcAppModelBuilderTest, LastLaunchTime) {
ASSERT_GE(time_after, app_info->last_launch_time);
}
+// Validate that arc model contains expected elements on restart.
+TEST_F(ArcAppModelBuilderRecreate, AppModelRestart) {
+ // No apps on initial start.
+ ValidateHaveApps(std::vector<arc::mojom::AppInfo>());
+
+ // Send info about all fake apps except last.
+ std::vector<arc::mojom::AppInfo> apps1(fake_apps().begin(),
+ fake_apps().end() - 1);
+ app_instance()->RefreshAppList();
+ app_instance()->SendRefreshAppList(apps1);
+ // Model has refreshed apps.
+ ValidateHaveApps(apps1);
+ EXPECT_EQ(apps1.size(), GetArcItemCount());
+
+ // Simulate restart.
+ arc_test()->TearDown();
+ ResetBuilder();
+
+ ArcAppListPrefsFactory::GetInstance()->RecreateServiceInstanceForTesting(
+ profile_.get());
+ arc_test()->SetUp(profile_.get());
+ CreateBuilder();
+
+ // On restart new model contains last apps.
+ ValidateHaveApps(apps1);
+ EXPECT_EQ(apps1.size(), GetArcItemCount());
+
+ // Now refresh old apps with new one.
+ app_instance()->RefreshAppList();
+ app_instance()->SendRefreshAppList(fake_apps());
+ ValidateHaveApps(fake_apps());
+ EXPECT_EQ(fake_apps().size(), GetArcItemCount());
+}
+
TEST_F(ArcPlayStoreAppTest, PlayStore) {
// Make sure PlayStore is available.
ASSERT_TRUE(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_app_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698