Index: chrome/browser/apps/ephemeral_app_browsertest.cc |
diff --git a/chrome/browser/apps/ephemeral_app_browsertest.cc b/chrome/browser/apps/ephemeral_app_browsertest.cc |
index ab10ff681cf2943ece850c2b54f7ef54529c8273..d7c82a5c0e243adfa577efa9f2e08a6556871000 100644 |
--- a/chrome/browser/apps/ephemeral_app_browsertest.cc |
+++ b/chrome/browser/apps/ephemeral_app_browsertest.cc |
@@ -299,6 +299,19 @@ class EphemeralAppBrowserTest : public EphemeralAppTestBase { |
process_manager()->GetBackgroundHostForExtension(app_id)); |
} |
+ // Verify properties of ephemeral apps. |
+ void VerifyEphemeralApp(const std::string& app_id) { |
+ // Ephemeral apps should not be synced. |
+ scoped_ptr<AppSyncData> sync_change = GetLastSyncChangeForApp(app_id); |
+ EXPECT_FALSE(sync_change.get()); |
+ |
+ // Ephemeral apps should not be assigned ordinals. |
+ extensions::AppSorting* app_sorting = |
+ ExtensionPrefs::Get(profile())->app_sorting(); |
+ EXPECT_FALSE(app_sorting->GetAppLaunchOrdinal(app_id).IsValid()); |
+ EXPECT_FALSE(app_sorting->GetPageOrdinal(app_id).IsValid()); |
+ } |
+ |
// Verify that after ephemeral apps stop running, they reside in extension |
// system in a disabled and unloaded state. |
void VerifyInactiveEphemeralApp(const std::string& app_id) { |
@@ -380,10 +393,7 @@ class EphemeralAppBrowserTest : public EphemeralAppTestBase { |
const Extension* app, |
ExtensionRegistry::IncludeFlag expected_set) { |
ASSERT_TRUE(app); |
- |
- // Ephemeral apps should not be synced. |
- scoped_ptr<AppSyncData> sync_change = GetFirstSyncChangeForApp(app->id()); |
- EXPECT_FALSE(sync_change.get()); |
+ VerifyEphemeralApp(app->id()); |
// Promote the app to a regular installed app. |
InstallObserver installed_observer(profile()); |
@@ -398,7 +408,7 @@ class EphemeralAppBrowserTest : public EphemeralAppTestBase { |
EXPECT_TRUE(params.from_ephemeral); |
// The installation should now be synced. |
- sync_change = GetFirstSyncChangeForApp(app->id()); |
+ scoped_ptr<AppSyncData> sync_change = GetLastSyncChangeForApp(app->id()); |
VerifySyncChange(sync_change.get(), |
expected_set == ExtensionRegistry::ENABLED); |
} |
@@ -408,6 +418,7 @@ class EphemeralAppBrowserTest : public EphemeralAppTestBase { |
bool enable_from_sync, |
ExtensionRegistry::IncludeFlag expected_set) { |
ASSERT_TRUE(app); |
+ VerifyEphemeralApp(app->id()); |
// Simulate an install from sync. |
const syncer::StringOrdinal kAppLaunchOrdinal("x"); |
@@ -449,17 +460,17 @@ class EphemeralAppBrowserTest : public EphemeralAppTestBase { |
new syncer::SyncErrorFactoryMock())); |
} |
- scoped_ptr<AppSyncData> GetFirstSyncChangeForApp(const std::string& id) { |
+ scoped_ptr<AppSyncData> GetLastSyncChangeForApp(const std::string& id) { |
scoped_ptr<AppSyncData> sync_data; |
for (syncer::SyncChangeList::iterator it = |
mock_sync_processor_.changes().begin(); |
it != mock_sync_processor_.changes().end(); ++it) { |
- sync_data.reset(new AppSyncData(*it)); |
- if (sync_data->id() == id) |
- return sync_data.Pass(); |
+ scoped_ptr<AppSyncData> data(new AppSyncData(*it)); |
+ if (data->id() == id) |
+ sync_data.reset(data.release()); |
} |
- return scoped_ptr<AppSyncData>(); |
+ return sync_data.Pass(); |
} |
void VerifySyncChange(const AppSyncData* sync_change, bool expect_enabled) { |
@@ -780,7 +791,7 @@ IN_PROC_BROWSER_TEST_F(EphemeralAppBrowserTest, |
PromoteEphemeralAppAndVerify(app, ExtensionRegistry::BLACKLISTED); |
// The app should be synced, but disabled. |
- scoped_ptr<AppSyncData> sync_change = GetFirstSyncChangeForApp(app->id()); |
+ scoped_ptr<AppSyncData> sync_change = GetLastSyncChangeForApp(app->id()); |
VerifySyncChange(sync_change.get(), false); |
} |