Implement initialization for GDataCache to use in-memory metadata for tests.
Use the in-memory version for GDataFileSystemTest.


BUG=137945
TEST=unit_tests   --gtest_filter='GDataFileSystemTest*'

Review URL: https://chromiumcodereview.appspot.com/10830181

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151013 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/chromeos/gdata/gdata_cache.cc b/chrome/browser/chromeos/gdata/gdata_cache.cc
index 3af5532..036e33bc 100644
--- a/chrome/browser/chromeos/gdata/gdata_cache.cc
+++ b/chrome/browser/chromeos/gdata/gdata_cache.cc
@@ -697,6 +697,14 @@
       base::Bind(&GDataCache::Initialize, base::Unretained(this)));
 }
 
+void GDataCache::RequestInitializeOnUIThreadForTesting() {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+  blocking_task_runner_->PostTask(
+      FROM_HERE,
+      base::Bind(&GDataCache::InitializeForTesting, base::Unretained(this)));
+}
+
 void GDataCache::ForceRescanOnUIThreadForTesting() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
 
@@ -743,6 +751,15 @@
   metadata_->Initialize(cache_paths_);
 }
 
+void GDataCache::InitializeForTesting() {
+  AssertOnSequencedWorkerPool();
+
+  InitCachePaths(cache_paths_);
+  metadata_ = GDataCacheMetadata::CreateGDataCacheMetadataForTesting(
+      blocking_task_runner_).Pass();
+  metadata_->Initialize(cache_paths_);
+}
+
 void GDataCache::Destroy() {
   AssertOnSequencedWorkerPool();
   delete this;