Home | History | Annotate | Download | only in drive
      1 // Copyright (c) 2012 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_change.h"
      6 
      7 #include "testing/gtest/include/gtest/gtest.h"
      8 
      9 namespace drive {
     10 
     11 TEST(ChangeListTest, FileChange_Change) {
     12   FileChange::ChangeType change_type = FileChange::ADD_OR_UPDATE;
     13   FileChange::FileType file_type = FileChange::FILE_TYPE_FILE;
     14 
     15   FileChange::Change change1(change_type, file_type);
     16   EXPECT_EQ(change_type, change1.change());
     17   EXPECT_EQ(file_type, change1.file_type());
     18 
     19   FileChange::Change change2(change_type, file_type);
     20   EXPECT_EQ(change_type, change1.change());
     21   EXPECT_EQ(file_type, change1.file_type());
     22   EXPECT_EQ(change1, change2);
     23 
     24   FileChange::Change change3(change_type, FileChange::FILE_TYPE_DIRECTORY);
     25   EXPECT_EQ(change_type, change3.change());
     26   EXPECT_EQ(FileChange::FILE_TYPE_DIRECTORY, change3.file_type());
     27   EXPECT_TRUE(!(change1 == change3));
     28 }
     29 
     30 TEST(ChangeListTest, FileChangeChangeList) {
     31   FileChange::ChangeList changes;
     32   EXPECT_TRUE(changes.empty());
     33   EXPECT_EQ(0u, changes.size());
     34 
     35   changes.Update(FileChange::Change(FileChange::ADD_OR_UPDATE,
     36                                     FileChange::FILE_TYPE_FILE));
     37   EXPECT_EQ(1u, changes.size());
     38 }
     39 
     40 TEST(ChangeListTest, FileChange) {
     41   base::FilePath change_path1(FILE_PATH_LITERAL("test"));
     42   base::FilePath change_path2(FILE_PATH_LITERAL("a/b/c/d"));
     43   base::FilePath change_path3(FILE_PATH_LITERAL("a/b/c/e"));
     44   base::FilePath change_dir(FILE_PATH_LITERAL("a/b/c"));
     45 
     46   FileChange changed_files;
     47   changed_files.Update(
     48       change_path1, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE);
     49   changed_files.Update(
     50       change_path2, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE);
     51   changed_files.Update(
     52       change_path2, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE);
     53   changed_files.Update(
     54       change_path3, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE);
     55 
     56   ASSERT_EQ(3u, changed_files.size());
     57   ASSERT_EQ(2u, changed_files.CountDirectory(change_dir));
     58 }
     59 
     60 }  // namespace drive
     61