Home | History | Annotate | Download | only in drive
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/drive/test_util.h"
      6 
      7 #include "base/run_loop.h"
      8 #include "chrome/browser/drive/drive_api_util.h"
      9 #include "chrome/browser/drive/fake_drive_service.h"
     10 #include "google_apis/drive/drive_api_parser.h"
     11 #include "google_apis/drive/test_util.h"
     12 
     13 using google_apis::FileResource;
     14 using google_apis::GDATA_OTHER_ERROR;
     15 using google_apis::GDataErrorCode;
     16 using google_apis::HTTP_CREATED;
     17 
     18 namespace drive {
     19 namespace test_util {
     20 
     21 bool SetUpTestEntries(FakeDriveService* drive_service) {
     22   GDataErrorCode error = GDATA_OTHER_ERROR;
     23   scoped_ptr<FileResource> entry;
     24 
     25   drive_service->AddNewFileWithResourceId(
     26       "file:2_file_resource_id",
     27       "audio/mpeg",
     28       "This is some test content.",
     29       drive_service->GetRootResourceId(),
     30       "File 1.txt",
     31       false,  // shared_with_me
     32       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     33   base::RunLoop().RunUntilIdle();
     34   if (error != HTTP_CREATED)
     35     return false;
     36 
     37   drive_service->AddNewFileWithResourceId(
     38       "file:slash_file_resource_id",
     39       "audio/mpeg",
     40       "This is some test content.",
     41       drive_service->GetRootResourceId(),
     42       "Slash / in file 1.txt",
     43       false,  // shared_with_me
     44       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     45   base::RunLoop().RunUntilIdle();
     46   if (error != HTTP_CREATED)
     47     return false;
     48 
     49   drive_service->AddNewFileWithResourceId(
     50       "file:3_file_resource_id",
     51       "audio/mpeg",
     52       "This is some test content.",
     53       drive_service->GetRootResourceId(),
     54       "Duplicate Name.txt",
     55       false,  // shared_with_me
     56       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     57   base::RunLoop().RunUntilIdle();
     58   if (error != HTTP_CREATED)
     59     return false;
     60 
     61   drive_service->AddNewFileWithResourceId(
     62       "file:4_file_resource_id",
     63       "audio/mpeg",
     64       "This is some test content.",
     65       drive_service->GetRootResourceId(),
     66       "Duplicate Name.txt",
     67       false,  // shared_with_me
     68       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     69   base::RunLoop().RunUntilIdle();
     70   if (error != HTTP_CREATED)
     71     return false;
     72 
     73   drive_service->AddNewFileWithResourceId(
     74       "document:5_document_resource_id",
     75       util::kGoogleDocumentMimeType,
     76       std::string(),
     77       drive_service->GetRootResourceId(),
     78       "Document 1 excludeDir-test",
     79       false,  // shared_with_me
     80       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     81   base::RunLoop().RunUntilIdle();
     82   if (error != HTTP_CREATED)
     83     return false;
     84 
     85   drive_service->AddNewFileWithResourceId(
     86       "folder:1_folder_resource_id",
     87       util::kDriveFolderMimeType,
     88       std::string(),
     89       drive_service->GetRootResourceId(),
     90       "Directory 1",
     91       false,  // shared_with_me
     92       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
     93   base::RunLoop().RunUntilIdle();
     94   if (error != HTTP_CREATED)
     95     return false;
     96 
     97   drive_service->AddNewFileWithResourceId(
     98       "file:subdirectory_file_1_id",
     99       "audio/mpeg",
    100       "This is some test content.",
    101       "folder:1_folder_resource_id",
    102       "SubDirectory File 1.txt",
    103       false,  // shared_with_me
    104       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    105   base::RunLoop().RunUntilIdle();
    106   if (error != HTTP_CREATED)
    107     return false;
    108 
    109   drive_service->AddNewFileWithResourceId(
    110       "file:subdirectory_unowned_file_1_id",
    111       "audio/mpeg",
    112       "This is some test content.",
    113       "folder:1_folder_resource_id",
    114       "Shared to The Account Owner.txt",
    115       true,  // shared_with_me
    116       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    117   base::RunLoop().RunUntilIdle();
    118   if (error != HTTP_CREATED)
    119     return false;
    120 
    121   drive_service->AddNewDirectoryWithResourceId(
    122       "folder:sub_dir_folder_resource_id",
    123       "folder:1_folder_resource_id",
    124       "Sub Directory Folder",
    125       DriveServiceInterface::AddNewDirectoryOptions(),
    126       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    127   base::RunLoop().RunUntilIdle();
    128   if (error != HTTP_CREATED)
    129     return false;
    130 
    131   drive_service->AddNewDirectoryWithResourceId(
    132       "folder:sub_sub_directory_folder_id",
    133       "folder:sub_dir_folder_resource_id",
    134       "Sub Sub Directory Folder",
    135       DriveServiceInterface::AddNewDirectoryOptions(),
    136       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    137   base::RunLoop().RunUntilIdle();
    138   if (error != HTTP_CREATED)
    139     return false;
    140 
    141   drive_service->AddNewDirectoryWithResourceId(
    142       "folder:slash_dir_folder_resource_id",
    143       drive_service->GetRootResourceId(),
    144       "Slash / in directory",
    145       DriveServiceInterface::AddNewDirectoryOptions(),
    146       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    147   base::RunLoop().RunUntilIdle();
    148   if (error != HTTP_CREATED)
    149     return false;
    150 
    151   drive_service->AddNewFileWithResourceId(
    152       "file:slash_subdir_file",
    153       "audio/mpeg",
    154       "This is some test content.",
    155       "folder:slash_dir_folder_resource_id",
    156       "Slash SubDir File.txt",
    157       false,  // shared_with_me
    158       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    159   base::RunLoop().RunUntilIdle();
    160   if (error != HTTP_CREATED)
    161     return false;
    162 
    163   drive_service->AddNewDirectoryWithResourceId(
    164       "folder:sub_dir_folder_2_self_link",
    165       drive_service->GetRootResourceId(),
    166       "Directory 2 excludeDir-test",
    167       DriveServiceInterface::AddNewDirectoryOptions(),
    168       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    169   base::RunLoop().RunUntilIdle();
    170   if (error != HTTP_CREATED)
    171     return false;
    172 
    173   drive_service->AddNewFileWithResourceId(
    174       "file:1_orphanfile_resource_id",
    175       "text/plain",
    176       "This is some test content.",
    177       std::string(),
    178       "Orphan File 1.txt",
    179       true,  // shared_with_me
    180       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    181   base::RunLoop().RunUntilIdle();
    182   if (error != HTTP_CREATED)
    183     return false;
    184 
    185   drive_service->AddNewFileWithResourceId(
    186       "document:orphan_doc_1",
    187       util::kGoogleDocumentMimeType,
    188       std::string(),
    189       std::string(),
    190       "Orphan Document",
    191       true,  // shared_with_me
    192       google_apis::test_util::CreateCopyResultCallback(&error, &entry));
    193   base::RunLoop().RunUntilIdle();
    194   if (error != HTTP_CREATED)
    195     return false;
    196 
    197   return true;
    198 }
    199 
    200 }  // namespace test_util
    201 }  // namespace drive
    202