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

Side by Side Diff: chrome/browser/apps/ephemeral_app_browsertest.cc

Issue 489333002: Disable sync in EphemeralAppBrowserTests on Windows due to flakiness (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/apps/ephemeral_app_browsertest.h" 5 #include "chrome/browser/apps/ephemeral_app_browsertest.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "apps/app_restore_service.h" 9 #include "apps/app_restore_service.h"
10 #include "apps/saved_files_service.h" 10 #include "apps/saved_files_service.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 using extensions::ExtensionRegistryObserver; 54 using extensions::ExtensionRegistryObserver;
55 using extensions::ExtensionSystem; 55 using extensions::ExtensionSystem;
56 using extensions::Manifest; 56 using extensions::Manifest;
57 57
58 namespace { 58 namespace {
59 59
60 namespace alarms = extensions::api::alarms; 60 namespace alarms = extensions::api::alarms;
61 61
62 const char kPowerTestApp[] = "ephemeral_apps/power"; 62 const char kPowerTestApp[] = "ephemeral_apps/power";
63 63
64 // Enabling sync causes these tests to be flaky on Windows. Disable sync so that
65 // everything else can be tested. See crbug.com/401028
benwells 2014/08/26 03:09:54 This makes me a bit uneasy. Is there some underlyi
tmdiep 2014/08/26 03:44:45 Yes. This patch is intended to be a temporary band
benwells 2014/08/26 03:58:12 OK. It is probably that someone else that should b
tmdiep 2014/08/26 04:29:39 I think it's sync related. There are other browser
66 #if defined(OS_WIN)
67 const bool kEnableSync = false;
68 #else
69 const bool kEnableSync = true;
70 #endif
71
64 typedef std::vector<message_center::Notifier*> NotifierList; 72 typedef std::vector<message_center::Notifier*> NotifierList;
65 73
66 bool IsNotifierInList(const message_center::NotifierId& notifier_id, 74 bool IsNotifierInList(const message_center::NotifierId& notifier_id,
67 const NotifierList& notifiers) { 75 const NotifierList& notifiers) {
68 for (NotifierList::const_iterator it = notifiers.begin(); 76 for (NotifierList::const_iterator it = notifiers.begin();
69 it != notifiers.end(); ++it) { 77 it != notifiers.end(); ++it) {
70 const message_center::Notifier* notifier = *it; 78 const message_center::Notifier* notifier = *it;
71 if (notifier->notifier_id == notifier_id) 79 if (notifier->notifier_id == notifier_id)
72 return true; 80 return true;
73 } 81 }
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 506
499 // The sort ordinals from sync should not be overridden. 507 // The sort ordinals from sync should not be overridden.
500 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); 508 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile());
501 extensions::AppSorting* app_sorting = prefs->app_sorting(); 509 extensions::AppSorting* app_sorting = prefs->app_sorting();
502 EXPECT_TRUE( 510 EXPECT_TRUE(
503 app_sorting->GetAppLaunchOrdinal(app_id).Equals(kAppLaunchOrdinal)); 511 app_sorting->GetAppLaunchOrdinal(app_id).Equals(kAppLaunchOrdinal));
504 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_id).Equals(kPageOrdinal)); 512 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_id).Equals(kPageOrdinal));
505 } 513 }
506 514
507 void InitSyncService() { 515 void InitSyncService() {
516 if (!kEnableSync)
517 return;
518
508 ExtensionSyncService* sync_service = ExtensionSyncService::Get(profile()); 519 ExtensionSyncService* sync_service = ExtensionSyncService::Get(profile());
509 sync_service->MergeDataAndStartSyncing( 520 sync_service->MergeDataAndStartSyncing(
510 syncer::APPS, 521 syncer::APPS,
511 syncer::SyncDataList(), 522 syncer::SyncDataList(),
512 scoped_ptr<syncer::SyncChangeProcessor>( 523 scoped_ptr<syncer::SyncChangeProcessor>(
513 new syncer::SyncChangeProcessorWrapperForTest( 524 new syncer::SyncChangeProcessorWrapperForTest(
514 &mock_sync_processor_)), 525 &mock_sync_processor_)),
515 scoped_ptr<syncer::SyncErrorFactory>( 526 scoped_ptr<syncer::SyncErrorFactory>(
516 new syncer::SyncErrorFactoryMock())); 527 new syncer::SyncErrorFactoryMock()));
517 } 528 }
518 529
519 scoped_ptr<AppSyncData> GetLastSyncChangeForApp(const std::string& id) { 530 scoped_ptr<AppSyncData> GetLastSyncChangeForApp(const std::string& id) {
520 scoped_ptr<AppSyncData> sync_data; 531 scoped_ptr<AppSyncData> sync_data;
521 for (syncer::SyncChangeList::iterator it = 532 for (syncer::SyncChangeList::iterator it =
522 mock_sync_processor_.changes().begin(); 533 mock_sync_processor_.changes().begin();
523 it != mock_sync_processor_.changes().end(); ++it) { 534 it != mock_sync_processor_.changes().end(); ++it) {
524 scoped_ptr<AppSyncData> data(new AppSyncData(*it)); 535 scoped_ptr<AppSyncData> data(new AppSyncData(*it));
525 if (data->id() == id) 536 if (data->id() == id)
526 sync_data.reset(data.release()); 537 sync_data.reset(data.release());
527 } 538 }
528 539
529 return sync_data.Pass(); 540 return sync_data.Pass();
530 } 541 }
531 542
532 void VerifySyncChange(const AppSyncData* sync_change, bool expect_enabled) { 543 void VerifySyncChange(const AppSyncData* sync_change, bool expect_enabled) {
544 if (!kEnableSync)
545 return;
546
533 ASSERT_TRUE(sync_change); 547 ASSERT_TRUE(sync_change);
534 EXPECT_TRUE(sync_change->page_ordinal().IsValid()); 548 EXPECT_TRUE(sync_change->page_ordinal().IsValid());
535 EXPECT_TRUE(sync_change->app_launch_ordinal().IsValid()); 549 EXPECT_TRUE(sync_change->app_launch_ordinal().IsValid());
536 EXPECT_FALSE(sync_change->uninstalled()); 550 EXPECT_FALSE(sync_change->uninstalled());
537 EXPECT_EQ(expect_enabled, sync_change->extension_sync_data().enabled()); 551 EXPECT_EQ(expect_enabled, sync_change->extension_sync_data().enabled());
538 } 552 }
539 553
540 void TestInstallEvent(bool close_app) { 554 void TestInstallEvent(bool close_app) {
541 ExtensionTestMessageListener first_msg_listener(false); 555 ExtensionTestMessageListener first_msg_listener(false);
542 const Extension* app = InstallAndLaunchEphemeralApp(kDispatchEventTestApp); 556 const Extension* app = InstallAndLaunchEphemeralApp(kDispatchEventTestApp);
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 CloseAppWaitForUnload(app->id()); 922 CloseAppWaitForUnload(app->id());
909 VerifyInactiveEphemeralApp(app->id()); 923 VerifyInactiveEphemeralApp(app->id());
910 924
911 PromoteEphemeralAppFromSyncAndVerify(app, false, ExtensionRegistry::DISABLED); 925 PromoteEphemeralAppFromSyncAndVerify(app, false, ExtensionRegistry::DISABLED);
912 } 926 }
913 927
914 // In most cases, ExtensionService::PromoteEphemeralApp() will be called to 928 // In most cases, ExtensionService::PromoteEphemeralApp() will be called to
915 // permanently install an ephemeral app. However, there may be cases where an 929 // permanently install an ephemeral app. However, there may be cases where an
916 // install occurs through the usual route of installing from the Web Store (due 930 // install occurs through the usual route of installing from the Web Store (due
917 // to race conditions). Ensure that the app is still installed correctly. 931 // to race conditions). Ensure that the app is still installed correctly.
918 #if defined(OS_WIN)
919 // Disabled on Windows due to failures. See crbug.com/401028
920 #define MAYBE_ReplaceEphemeralAppWithInstalledApp \
921 DISABLED_ReplaceEphemeralAppWithInstalledApp
922 #else
923 #define MAYBE_ReplaceEphemeralAppWithInstalledApp \
924 ReplaceEphemeralAppWithInstalledApp
925 #endif
926 IN_PROC_BROWSER_TEST_F(EphemeralAppBrowserTest, 932 IN_PROC_BROWSER_TEST_F(EphemeralAppBrowserTest,
927 MAYBE_ReplaceEphemeralAppWithInstalledApp) { 933 ReplaceEphemeralAppWithInstalledApp) {
928 InitSyncService(); 934 InitSyncService();
929 935
930 const Extension* app = InstallAndLaunchEphemeralApp(kNotificationsTestApp); 936 const Extension* app = InstallAndLaunchEphemeralApp(kNotificationsTestApp);
931 ASSERT_TRUE(app); 937 ASSERT_TRUE(app);
932 CloseAppWaitForUnload(app->id()); 938 CloseAppWaitForUnload(app->id());
933 std::string app_id = app->id(); 939 std::string app_id = app->id();
934 app = NULL; 940 app = NULL;
935 941
936 InstallObserver installed_observer(profile()); 942 InstallObserver installed_observer(profile());
937 ReplaceEphemeralApp(app_id, kNotificationsTestApp, 1); 943 ReplaceEphemeralApp(app_id, kNotificationsTestApp, 1);
938 VerifyPromotedApp(app_id, ExtensionRegistry::ENABLED); 944 VerifyPromotedApp(app_id, ExtensionRegistry::ENABLED);
939 945
940 // Check the notification parameters. 946 // Check the notification parameters.
941 const InstallObserver::InstallParameters& params = installed_observer.Last(); 947 const InstallObserver::InstallParameters& params = installed_observer.Last();
942 EXPECT_EQ(app_id, params.id); 948 EXPECT_EQ(app_id, params.id);
943 EXPECT_TRUE(params.is_update); 949 EXPECT_TRUE(params.is_update);
944 EXPECT_TRUE(params.from_ephemeral); 950 EXPECT_TRUE(params.from_ephemeral);
945 } 951 }
946 952
947 // This is similar to ReplaceEphemeralAppWithInstalledApp, but installs will 953 // This is similar to ReplaceEphemeralAppWithInstalledApp, but installs will
948 // be delayed until the app is idle. 954 // be delayed until the app is idle.
949 #if defined(OS_WIN)
950 // Disabled on Windows due to failures. See crbug.com/401028
951 #define MAYBE_ReplaceEphemeralAppWithDelayedInstalledApp \
952 DISABLED_ReplaceEphemeralAppWithDelayedInstalledApp
953 #else
954 #define MAYBE_ReplaceEphemeralAppWithDelayedInstalledApp \
955 ReplaceEphemeralAppWithDelayedInstalledApp
956 #endif
957 IN_PROC_BROWSER_TEST_F(EphemeralAppBrowserTest, 955 IN_PROC_BROWSER_TEST_F(EphemeralAppBrowserTest,
958 MAYBE_ReplaceEphemeralAppWithDelayedInstalledApp) { 956 ReplaceEphemeralAppWithDelayedInstalledApp) {
959 InitSyncService(); 957 InitSyncService();
960 const Extension* app = InstallAndLaunchEphemeralApp(kNotificationsTestApp); 958 const Extension* app = InstallAndLaunchEphemeralApp(kNotificationsTestApp);
961 ASSERT_TRUE(app); 959 ASSERT_TRUE(app);
962 std::string app_id = app->id(); 960 std::string app_id = app->id();
963 app = NULL; 961 app = NULL;
964 962
965 // Initiate install. 963 // Initiate install.
966 ReplaceEphemeralApp(app_id, kNotificationsTestApp, 0); 964 ReplaceEphemeralApp(app_id, kNotificationsTestApp, 0);
967 965
968 // The delayed installation will occur when the ephemeral app is closed. 966 // The delayed installation will occur when the ephemeral app is closed.
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 base::Bind(&PowerSaveBlockerStub::Create, &power_settings)); 1033 base::Bind(&PowerSaveBlockerStub::Create, &power_settings));
1036 1034
1037 const Extension* app = InstallAndLaunchEphemeralApp(kPowerTestApp); 1035 const Extension* app = InstallAndLaunchEphemeralApp(kPowerTestApp);
1038 ASSERT_TRUE(app); 1036 ASSERT_TRUE(app);
1039 EXPECT_EQ(1, power_settings.keep_awake_count()); 1037 EXPECT_EQ(1, power_settings.keep_awake_count());
1040 1038
1041 CloseAppWaitForUnload(app->id()); 1039 CloseAppWaitForUnload(app->id());
1042 1040
1043 EXPECT_EQ(0, power_settings.keep_awake_count()); 1041 EXPECT_EQ(0, power_settings.keep_awake_count());
1044 } 1042 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698