OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <fcntl.h> | 5 #include <fcntl.h> |
6 | 6 |
7 #include "gtest/gtest.h" | 7 #include "gtest/gtest.h" |
8 | 8 |
9 #include "nacl_io/kernel_proxy.h" | 9 #include "nacl_io/kernel_proxy.h" |
10 #include "nacl_io/path.h" | 10 #include "nacl_io/path.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 EXPECT_TRUE(p.IsAbsolute()); | 63 EXPECT_TRUE(p.IsAbsolute()); |
64 EXPECT_FALSE(p.IsRoot()); | 64 EXPECT_FALSE(p.IsRoot()); |
65 EXPECT_EQ(2, p.Size()); | 65 EXPECT_EQ(2, p.Size()); |
66 EXPECT_EQ("/", p.Part(0)); | 66 EXPECT_EQ("/", p.Part(0)); |
67 EXPECT_EQ("foo", p.Part(1)); | 67 EXPECT_EQ("foo", p.Part(1)); |
68 EXPECT_EQ("foo", p.Basename()); | 68 EXPECT_EQ("foo", p.Basename()); |
69 EXPECT_EQ("/foo", p.Join()); | 69 EXPECT_EQ("/foo", p.Join()); |
70 EXPECT_EQ("/", p.Range(0, 1)); | 70 EXPECT_EQ("/", p.Range(0, 1)); |
71 EXPECT_EQ("foo", p.Range(1, 2)); | 71 EXPECT_EQ("foo", p.Range(1, 2)); |
72 EXPECT_EQ("/foo", p.Range(0, 2)); | 72 EXPECT_EQ("/foo", p.Range(0, 2)); |
| 73 EXPECT_EQ("", p.Range(2, 2)); |
73 EXPECT_EQ("/", p.Parent().Join()); | 74 EXPECT_EQ("/", p.Parent().Join()); |
74 } | 75 } |
75 | 76 |
76 TEST(PathTest, TwoPart_Relative) { | 77 TEST(PathTest, TwoPart_Relative) { |
77 Path p("foo/bar"); | 78 Path p("foo/bar"); |
78 EXPECT_FALSE(p.IsAbsolute()); | 79 EXPECT_FALSE(p.IsAbsolute()); |
79 EXPECT_FALSE(p.IsRoot()); | 80 EXPECT_FALSE(p.IsRoot()); |
80 EXPECT_EQ(2, p.Size()); | 81 EXPECT_EQ(2, p.Size()); |
81 EXPECT_EQ("foo", p.Part(0)); | 82 EXPECT_EQ("foo", p.Part(0)); |
82 EXPECT_EQ("bar", p.Part(1)); | 83 EXPECT_EQ("bar", p.Part(1)); |
83 EXPECT_EQ("bar", p.Basename()); | 84 EXPECT_EQ("bar", p.Basename()); |
84 EXPECT_EQ("foo/bar", p.Join()); | 85 EXPECT_EQ("foo/bar", p.Join()); |
85 EXPECT_EQ("foo", p.Range(0, 1)); | 86 EXPECT_EQ("foo", p.Range(0, 1)); |
86 EXPECT_EQ("bar", p.Range(1, 2)); | 87 EXPECT_EQ("bar", p.Range(1, 2)); |
87 EXPECT_EQ("foo/bar", p.Range(0, 2)); | 88 EXPECT_EQ("foo/bar", p.Range(0, 2)); |
| 89 EXPECT_EQ("", p.Range(2, 2)); |
88 EXPECT_EQ("foo", p.Parent().Join()); | 90 EXPECT_EQ("foo", p.Parent().Join()); |
89 } | 91 } |
90 | 92 |
91 TEST(PathTest, MakeRelative) { | 93 TEST(PathTest, MakeRelative) { |
92 EXPECT_EQ("", Path("/").MakeRelative().Join()); | 94 EXPECT_EQ("", Path("/").MakeRelative().Join()); |
93 EXPECT_EQ("foo/bar/baz", Path("/foo/bar/baz").MakeRelative().Join()); | 95 EXPECT_EQ("foo/bar/baz", Path("/foo/bar/baz").MakeRelative().Join()); |
94 EXPECT_EQ("foo/bar/baz", Path("foo/bar/baz").MakeRelative().Join()); | 96 EXPECT_EQ("foo/bar/baz", Path("foo/bar/baz").MakeRelative().Join()); |
95 } | 97 } |
96 | 98 |
97 TEST(PathTest, Normalize_EmptyComponent) { | 99 TEST(PathTest, Normalize_EmptyComponent) { |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 Path p("a/relative/path"); | 180 Path p("a/relative/path"); |
179 | 181 |
180 EXPECT_EQ("a", p.Range(0, 1)); | 182 EXPECT_EQ("a", p.Range(0, 1)); |
181 EXPECT_EQ("a/relative", p.Range(0, 2)); | 183 EXPECT_EQ("a/relative", p.Range(0, 2)); |
182 EXPECT_EQ("a/relative/path", p.Range(0, 3)); | 184 EXPECT_EQ("a/relative/path", p.Range(0, 3)); |
183 | 185 |
184 EXPECT_EQ("relative", p.Range(1, 2)); | 186 EXPECT_EQ("relative", p.Range(1, 2)); |
185 EXPECT_EQ("relative/path", p.Range(1, 3)); | 187 EXPECT_EQ("relative/path", p.Range(1, 3)); |
186 | 188 |
187 EXPECT_EQ("path", p.Range(2, 3)); | 189 EXPECT_EQ("path", p.Range(2, 3)); |
| 190 |
| 191 EXPECT_EQ("", p.Range(2, 100)); |
| 192 EXPECT_EQ("", p.Range(42, 67)); |
188 } | 193 } |
189 | 194 |
190 TEST(PathTest, Range_Absolute) { | 195 TEST(PathTest, Range_Absolute) { |
191 Path p("/an/absolute/path"); | 196 Path p("/an/absolute/path"); |
192 | 197 |
193 EXPECT_EQ("/", p.Range(0, 1)); | 198 EXPECT_EQ("/", p.Range(0, 1)); |
194 EXPECT_EQ("/an", p.Range(0, 2)); | 199 EXPECT_EQ("/an", p.Range(0, 2)); |
195 EXPECT_EQ("/an/absolute", p.Range(0, 3)); | 200 EXPECT_EQ("/an/absolute", p.Range(0, 3)); |
196 EXPECT_EQ("/an/absolute/path", p.Range(0, 4)); | 201 EXPECT_EQ("/an/absolute/path", p.Range(0, 4)); |
197 | 202 |
198 EXPECT_EQ("an", p.Range(1, 2)); | 203 EXPECT_EQ("an", p.Range(1, 2)); |
199 EXPECT_EQ("an/absolute", p.Range(1, 3)); | 204 EXPECT_EQ("an/absolute", p.Range(1, 3)); |
200 EXPECT_EQ("an/absolute/path", p.Range(1, 4)); | 205 EXPECT_EQ("an/absolute/path", p.Range(1, 4)); |
201 | 206 |
202 EXPECT_EQ("absolute", p.Range(2, 3)); | 207 EXPECT_EQ("absolute", p.Range(2, 3)); |
203 EXPECT_EQ("absolute/path", p.Range(2, 4)); | 208 EXPECT_EQ("absolute/path", p.Range(2, 4)); |
204 | 209 |
205 EXPECT_EQ("path", p.Range(3, 4)); | 210 EXPECT_EQ("path", p.Range(3, 4)); |
| 211 |
| 212 EXPECT_EQ("", p.Range(2, 100)); |
| 213 EXPECT_EQ("", p.Range(42, 67)); |
206 } | 214 } |
207 | 215 |
208 TEST(PathTest, Assign) { | 216 TEST(PathTest, Assign) { |
209 Path p; | 217 Path p; |
210 | 218 |
211 p = "foo/bar"; | 219 p = "foo/bar"; |
212 EXPECT_EQ("foo/bar", p.Join()); | 220 EXPECT_EQ("foo/bar", p.Join()); |
213 | 221 |
214 // Should normalize. | 222 // Should normalize. |
215 p = "/foo/../bar"; | 223 p = "/foo/../bar"; |
216 EXPECT_EQ("/bar", p.Join()); | 224 EXPECT_EQ("/bar", p.Join()); |
217 | 225 |
218 p = Path("hi/planet"); | 226 p = Path("hi/planet"); |
219 EXPECT_EQ("hi/planet", p.Join()); | 227 EXPECT_EQ("hi/planet", p.Join()); |
220 } | 228 } |
221 | 229 |
222 TEST(PathTest, Equals) { | 230 TEST(PathTest, Equals) { |
223 EXPECT_TRUE(Path("/foo") == Path("/foo")); | 231 EXPECT_TRUE(Path("/foo") == Path("/foo")); |
224 EXPECT_TRUE(Path("foo/../bar") == Path("bar")); | 232 EXPECT_TRUE(Path("foo/../bar") == Path("bar")); |
225 EXPECT_TRUE(Path("one/path") != Path("another/path")); | 233 EXPECT_TRUE(Path("one/path") != Path("another/path")); |
226 } | 234 } |
227 | 235 |
OLD | NEW |