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/chromeos/drive/file_system/touch_operation.h" 6 7 #include "base/files/file_path.h" 8 #include "base/time/time.h" 9 #include "chrome/browser/chromeos/drive/drive.pb.h" 10 #include "chrome/browser/chromeos/drive/file_errors.h" 11 #include "chrome/browser/chromeos/drive/file_system/operation_test_base.h" 12 #include "chrome/browser/chromeos/drive/resource_metadata.h" 13 #include "content/public/test/test_utils.h" 14 #include "google_apis/drive/test_util.h" 15 #include "testing/gtest/include/gtest/gtest.h" 16 17 namespace drive { 18 namespace file_system { 19 20 typedef OperationTestBase TouchOperationTest; 21 22 TEST_F(TouchOperationTest, TouchFile) { 23 TouchOperation operation(blocking_task_runner(), 24 delegate(), 25 metadata()); 26 27 const base::FilePath kTestPath(FILE_PATH_LITERAL("drive/root/File 1.txt")); 28 const base::Time::Exploded kLastAccessTime = { 29 2012, 7, 0, 19, 15, 59, 13, 123 30 }; 31 const base::Time::Exploded kLastModifiedTime = { 32 2013, 7, 0, 19, 15, 59, 13, 123 33 }; 34 35 FileError error = FILE_ERROR_FAILED; 36 operation.TouchFile( 37 kTestPath, 38 base::Time::FromUTCExploded(kLastAccessTime), 39 base::Time::FromUTCExploded(kLastModifiedTime), 40 google_apis::test_util::CreateCopyResultCallback(&error)); 41 content::RunAllBlockingPoolTasksUntilIdle(); 42 EXPECT_EQ(FILE_ERROR_OK, error); 43 44 ResourceEntry entry; 45 EXPECT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(kTestPath, &entry)); 46 EXPECT_EQ(base::Time::FromUTCExploded(kLastAccessTime), 47 base::Time::FromInternalValue(entry.file_info().last_accessed())); 48 EXPECT_EQ(base::Time::FromUTCExploded(kLastModifiedTime), 49 base::Time::FromInternalValue(entry.file_info().last_modified())); 50 EXPECT_EQ(ResourceEntry::DIRTY, entry.metadata_edit_state()); 51 52 EXPECT_EQ(1U, delegate()->get_changed_files().size()); 53 EXPECT_TRUE(delegate()->get_changed_files().count(kTestPath)); 54 55 EXPECT_EQ(1U, delegate()->updated_local_ids().size()); 56 EXPECT_TRUE(delegate()->updated_local_ids().count(entry.local_id())); 57 } 58 59 } // namespace file_system 60 } // namespace drive 61