Index: chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc |
diff --git a/chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc b/chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc |
index d12414a3e756c6f9380d97d900acf8432f27802b..54fae52d06d5a8df83c31ecbafc6a7218c61edbb 100644 |
--- a/chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc |
+++ b/chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc |
@@ -279,5 +279,29 @@ IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, DisableSync) { |
ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); |
} |
+// Regression test for bug 104399: ensure that an extension installed prior to |
+// setting up sync, when uninstalled, is also uninstalled from sync. |
+IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, |
+ UninstallPreinstalledExtensions) { |
+ ASSERT_TRUE(SetupClients()); |
+ ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); |
+ |
+ InstallExtension(GetProfile(0), 0); |
+ InstallExtension(verifier(), 0); |
+ |
+ ASSERT_TRUE(SetupSync()); |
+ |
+ InstallExtensionsPendingForSync(GetProfile(0)); |
+ InstallExtensionsPendingForSync(GetProfile(1)); |
+ ASSERT_TRUE(AwaitQuiescence()); |
+ ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); |
+ |
+ UninstallExtension(GetProfile(0), 0); |
+ UninstallExtension(verifier(), 0); |
+ |
+ ASSERT_TRUE(AwaitQuiescence()); |
+ ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); |
+} |
+ |
// TODO(akalin): Add tests exercising: |
// - Offline installation/uninstallation behavior |