#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/sync_client.h"
#include "chrome/browser/chromeos/drive/test_util.h"
+#include "chrome/browser/drive/event_logger.h"
#include "chrome/browser/drive/fake_drive_service.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "google_apis/drive/drive_api_parser.h"
pref_service_.reset(new TestingPrefServiceSimple);
test_util::RegisterDrivePrefs(pref_service_->registry());
+ logger_.reset(new EventLogger);
fake_drive_service_.reset(new FakeDriveService);
fake_drive_service_->LoadResourceListForWapi(
"gdata/root_feed.json");
fake_free_disk_space_getter_.reset(new FakeFreeDiskSpaceGetter);
scheduler_.reset(new JobScheduler(pref_service_.get(),
+ logger_.get(),
fake_drive_service_.get(),
base::MessageLoopProxy::current().get()));
ASSERT_TRUE(base::CreateDirectory(temp_file_dir));
file_system_.reset(new FileSystem(
pref_service_.get(),
+ logger_.get(),
cache_.get(),
fake_drive_service_.get(),
scheduler_.get(),
scoped_ptr<ResourceEntryVector> ReadDirectorySync(
const base::FilePath& file_path) {
FileError error = FILE_ERROR_FAILED;
- scoped_ptr<ResourceEntryVector> entries;
+ scoped_ptr<ResourceEntryVector> entries(new ResourceEntryVector);
+ bool last_has_more = true;
file_system_->ReadDirectory(
file_path,
- google_apis::test_util::CreateCopyResultCallback(&error, &entries));
+ base::Bind(&AccumulateReadDirectoryResult,
+ &error, entries.get(), &last_has_more));
test_util::RunBlockingPoolTask();
-
+ if (error != FILE_ERROR_OK)
+ entries.reset();
return entries.Pass();
}
+ // Used to implement ReadDirectorySync().
+ static void AccumulateReadDirectoryResult(
+ FileError* out_error,
+ ResourceEntryVector* out_entries,
+ bool* last_has_more,
+ FileError error,
+ scoped_ptr<ResourceEntryVector> entries,
+ bool has_more) {
+ EXPECT_TRUE(*last_has_more);
+ *out_error = error;
+ *last_has_more = has_more;
+ if (error == FILE_ERROR_OK) {
+ ASSERT_TRUE(entries);
+ out_entries->insert(out_entries->end(), entries->begin(), entries->end());
+ } else {
+ EXPECT_FALSE(has_more);
+ }
+ }
+
// Returns true if an entry exists at |file_path|.
bool EntryExists(const base::FilePath& file_path) {
return GetResourceEntrySync(file_path);
// dependencies to Profile in general.
scoped_ptr<TestingPrefServiceSimple> pref_service_;
+ scoped_ptr<EventLogger> logger_;
scoped_ptr<FakeDriveService> fake_drive_service_;
scoped_ptr<FakeFreeDiskSpaceGetter> fake_free_disk_space_getter_;
scoped_ptr<JobScheduler> scheduler_;