drive_backend_test_util.cc revision f2477e01787aa58f445919b809d89e252beef54f
1// Copyright 2013 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/sync_file_system/drive_backend/drive_backend_test_util.h" 6 7#include <set> 8 9#include "chrome/browser/drive/drive_api_util.h" 10#include "chrome/browser/google_apis/drive_api_parser.h" 11#include "chrome/browser/google_apis/drive_entry_kinds.h" 12#include "chrome/browser/google_apis/gdata_wapi_parser.h" 13#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" 14#include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 15#include "testing/gtest/include/gtest/gtest.h" 16 17namespace sync_file_system { 18namespace drive_backend { 19namespace test_util { 20 21void ExpectEquivalentServiceMetadata(const ServiceMetadata& left, 22 const ServiceMetadata& right) { 23 EXPECT_EQ(left.largest_change_id(), right.largest_change_id()); 24 EXPECT_EQ(left.sync_root_tracker_id(), right.sync_root_tracker_id()); 25 EXPECT_EQ(left.next_tracker_id(), right.next_tracker_id()); 26} 27 28void ExpectEquivalentDetails(const FileDetails& left, 29 const FileDetails& right) { 30 std::set<std::string> parents; 31 for (int i = 0; i < left.parent_folder_ids_size(); ++i) 32 EXPECT_TRUE(parents.insert(left.parent_folder_ids(i)).second); 33 34 for (int i = 0; i < right.parent_folder_ids_size(); ++i) 35 EXPECT_EQ(1u, parents.erase(left.parent_folder_ids(i))); 36 EXPECT_TRUE(parents.empty()); 37 38 EXPECT_EQ(left.title(), right.title()); 39 EXPECT_EQ(left.file_kind(), right.file_kind()); 40 EXPECT_EQ(left.md5(), right.md5()); 41 EXPECT_EQ(left.etag(), right.etag()); 42 EXPECT_EQ(left.creation_time(), right.creation_time()); 43 EXPECT_EQ(left.modification_time(), right.modification_time()); 44 EXPECT_EQ(left.missing(), right.missing()); 45 EXPECT_EQ(left.change_id(), right.change_id()); 46} 47 48void ExpectEquivalentMetadata(const FileMetadata& left, 49 const FileMetadata& right) { 50 EXPECT_EQ(left.file_id(), right.file_id()); 51 ExpectEquivalentDetails(left.details(), right.details()); 52} 53 54void ExpectEquivalentTrackers(const FileTracker& left, 55 const FileTracker& right) { 56 EXPECT_EQ(left.tracker_id(), right.tracker_id()); 57 EXPECT_EQ(left.parent_tracker_id(), right.parent_tracker_id()); 58 EXPECT_EQ(left.file_id(), right.file_id()); 59 EXPECT_EQ(left.app_id(), right.app_id()); 60 EXPECT_EQ(left.tracker_kind(), right.tracker_kind()); 61 ExpectEquivalentDetails(left.synced_details(), right.synced_details()); 62 EXPECT_EQ(left.dirty(), right.dirty()); 63 EXPECT_EQ(left.active(), right.active()); 64 EXPECT_EQ(left.needs_folder_listing(), right.needs_folder_listing()); 65} 66 67void ExpectEquivalentResourceAndMetadata( 68 const google_apis::FileResource& resource, 69 const FileMetadata& metadata) { 70 EXPECT_EQ(resource.file_id(), metadata.file_id()); 71 const FileDetails& details = metadata.details(); 72 EXPECT_EQ(resource.title(), details.title()); 73 74 google_apis::DriveEntryKind resource_kind = drive::util::GetKind(resource); 75 switch (details.file_kind()) { 76 case FILE_KIND_UNSUPPORTED: 77 EXPECT_NE(google_apis::ENTRY_KIND_FILE, resource_kind); 78 EXPECT_NE(google_apis::ENTRY_KIND_FOLDER, resource_kind); 79 break; 80 case FILE_KIND_FILE: 81 EXPECT_EQ(google_apis::ENTRY_KIND_FILE, resource_kind); 82 break; 83 case FILE_KIND_FOLDER: 84 EXPECT_EQ(google_apis::ENTRY_KIND_FOLDER, resource_kind); 85 break; 86 } 87 88 EXPECT_EQ(resource.md5_checksum(), details.md5()); 89 EXPECT_EQ(resource.created_date(), 90 base::Time::FromInternalValue(details.creation_time())); 91 EXPECT_EQ(resource.modified_date(), 92 base::Time::FromInternalValue(details.modification_time())); 93 EXPECT_EQ(resource.labels().is_trashed(), details.missing()); 94} 95 96void ExpectEquivalentMetadataAndTracker(const FileMetadata& metadata, 97 const FileTracker& tracker) { 98 EXPECT_EQ(metadata.file_id(), tracker.file_id()); 99 if (!tracker.dirty()) 100 ExpectEquivalentDetails(metadata.details(), tracker.synced_details()); 101} 102 103} // namespace test_util 104} // namespace drive_backend 105} // namespace sync_file_system 106