| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/sync_file_system/subtree_set.h" |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| #define FPL(path) base::FilePath(FILE_PATH_LITERAL(path)) |
| |
| namespace sync_file_system { |
| |
| TEST(SubtreeSetTest, InsertAndErase) { |
| SubtreeSet subtrees; |
| |
| EXPECT_EQ(0u, subtrees.size()); |
| EXPECT_TRUE(subtrees.insert(FPL("/a/b/c"))); |
| EXPECT_FALSE(subtrees.insert(FPL("/a/b"))); |
| EXPECT_FALSE(subtrees.insert(FPL("/a/b/c"))); |
| EXPECT_FALSE(subtrees.insert(FPL("/a/b/c/d"))); |
| EXPECT_TRUE(subtrees.insert(FPL("/a/b/d"))); |
| EXPECT_FALSE(subtrees.insert(FPL("/"))); |
| |
| EXPECT_EQ(2u, subtrees.size()); |
| |
| EXPECT_FALSE(subtrees.erase(FPL("/"))); |
| EXPECT_FALSE(subtrees.erase(FPL("/a"))); |
| EXPECT_TRUE(subtrees.erase(FPL("/a/b/c"))); |
| |
| EXPECT_EQ(1u, subtrees.size()); |
| |
| EXPECT_TRUE(subtrees.insert(FPL("/a/b/c/d"))); |
| |
| EXPECT_EQ(2u, subtrees.size()); |
| } |
| |
| } // namespace sync_file_system |