| Index: chrome/browser/sync/test/integration/single_client_directory_sync_test.cc | 
| diff --git a/chrome/browser/sync/test/integration/single_client_directory_sync_test.cc b/chrome/browser/sync/test/integration/single_client_directory_sync_test.cc | 
| index b29d1034749281db48fa3fb9838cb29061f4e3d5..4c664c2f74d15302911c24076ec8633705b80ca3 100644 | 
| --- a/chrome/browser/sync/test/integration/single_client_directory_sync_test.cc | 
| +++ b/chrome/browser/sync/test/integration/single_client_directory_sync_test.cc | 
| @@ -2,6 +2,8 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| +#include "base/files/file_enumerator.h" | 
| +#include "base/files/file_path.h" | 
| #include "base/location.h" | 
| #include "base/macros.h" | 
| #include "base/run_loop.h" | 
| @@ -21,6 +23,22 @@ | 
| #include "url/gurl.h" | 
|  | 
| using content::BrowserThread; | 
| +using base::FileEnumerator; | 
| +using base::FilePath; | 
| + | 
| +namespace { | 
| + | 
| +// USS ModelTypeStore uses the same folder as the Directory. However, all of its | 
| +// content is in a sub-folder. By not asking for recursive files, this function | 
| +// will avoid seeing any of those, and return iff Directory database files still | 
| +// exist. | 
| +bool FolderContainsFiles(const FilePath& folder) { | 
| +  if (base::DirectoryExists(folder)) { | 
| +    return !FileEnumerator(folder, false, FileEnumerator::FILES).Next().empty(); | 
| +  } else { | 
| +    return false; | 
| +  } | 
| +} | 
|  | 
| class SingleClientDirectorySyncTest : public SyncTest { | 
| public: | 
| @@ -63,8 +81,8 @@ IN_PROC_BROWSER_TEST_F(SingleClientDirectorySyncTest, | 
| StopThenDisableDeletesDirectory) { | 
| ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 
| browser_sync::ProfileSyncService* sync_service = GetSyncService(0); | 
| -  base::FilePath directory_path = sync_service->GetDirectoryPathForTest(); | 
| -  ASSERT_TRUE(base::DirectoryExists(directory_path)); | 
| +  FilePath directory_path = sync_service->GetDirectoryPathForTest(); | 
| +  ASSERT_TRUE(FolderContainsFiles(directory_path)); | 
| sync_service->RequestStop(browser_sync::ProfileSyncService::CLEAR_DATA); | 
|  | 
| // Wait for StartupController::StartUp()'s tasks to finish. | 
| @@ -75,8 +93,7 @@ IN_PROC_BROWSER_TEST_F(SingleClientDirectorySyncTest, | 
| // Wait for the directory deletion to finish. | 
| base::MessageLoop* sync_loop = sync_service->GetSyncLoopForTest(); | 
| ASSERT_TRUE(WaitForExistingTasksOnLoop(sync_loop)); | 
| - | 
| -  ASSERT_FALSE(base::DirectoryExists(directory_path)); | 
| +  ASSERT_FALSE(FolderContainsFiles(directory_path)); | 
| } | 
|  | 
| // Verify that when the sync directory's backing store becomes corrupted, we | 
| @@ -100,8 +117,8 @@ IN_PROC_BROWSER_TEST_F(SingleClientDirectorySyncTest, | 
| ASSERT_TRUE(WaitForExistingTasksOnLoop(sync_loop)); | 
|  | 
| // Now corrupt the database. | 
| -  const base::FilePath directory_path(sync_service->GetDirectoryPathForTest()); | 
| -  const base::FilePath sync_db(directory_path.Append( | 
| +  const FilePath directory_path(sync_service->GetDirectoryPathForTest()); | 
| +  const FilePath sync_db(directory_path.Append( | 
| syncer::syncable::Directory::kSyncDatabaseFilename)); | 
| ASSERT_TRUE(sql::test::CorruptSizeInHeaderWithLock(sync_db)); | 
|  | 
| @@ -123,5 +140,7 @@ IN_PROC_BROWSER_TEST_F(SingleClientDirectorySyncTest, | 
| // Wait until the sync loop has processed any existing tasks and see that the | 
| // directory no longer exists. | 
| ASSERT_TRUE(WaitForExistingTasksOnLoop(sync_loop)); | 
| -  ASSERT_FALSE(base::DirectoryExists(directory_path)); | 
| +  ASSERT_FALSE(FolderContainsFiles(directory_path)); | 
| } | 
| + | 
| +}  // namespace | 
|  |