OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2011 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/common/string_ordinal.h" | |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 | |
8 namespace { | |
9 | |
10 // Tests the CreateBetween StringOrdinal function by calling | |
11 // on the small_value with the large_value as the parameter and | |
akalin
2011/10/20 19:47:54
two spaces before 'parameter' -> one space
| |
12 // vice-versa. | |
13 void TestCreateBetween(StringOrdinal small_value, | |
akalin
2011/10/20 19:47:54
move this fn closer to where it's used
| |
14 StringOrdinal large_value, | |
15 const std::string& expected_result) { | |
16 StringOrdinal result = small_value.CreateBetween(large_value); | |
17 EXPECT_EQ(expected_result, result.ToString()); | |
18 | |
19 result = large_value.CreateBetween(small_value); | |
20 EXPECT_EQ(expected_result, result.ToString()); | |
21 } | |
22 | |
23 TEST(StringOrdinalTest, IsValid) { | |
24 EXPECT_TRUE(StringOrdinal("b").IsValid()); | |
25 EXPECT_TRUE(StringOrdinal("ab").IsValid()); | |
26 | |
27 EXPECT_FALSE(StringOrdinal("aa").IsValid()); | |
28 EXPECT_FALSE(StringOrdinal().IsValid()); | |
29 } | |
30 | |
31 TEST(StringOrdinalTest, LessThan) { | |
32 StringOrdinal small("b"); | |
33 StringOrdinal middle("n"); | |
34 StringOrdinal big("z"); | |
35 | |
36 EXPECT_TRUE(small.LessThan(middle)); | |
37 EXPECT_TRUE(small.LessThan(big)); | |
38 EXPECT_TRUE(middle.LessThan(big)); | |
39 | |
40 EXPECT_FALSE(big.LessThan(small)); | |
41 EXPECT_FALSE(big.LessThan(middle)); | |
42 EXPECT_FALSE(middle.LessThan(small)); | |
43 } | |
44 | |
45 TEST(StringOrdinalTest, CreateBetweenSingleDigit) { | |
46 TestCreateBetween(StringOrdinal("b"), StringOrdinal("d"), "c"); | |
47 TestCreateBetween(StringOrdinal("b"), StringOrdinal("e"), "c"); | |
48 TestCreateBetween(StringOrdinal("b"), StringOrdinal("f"), "d"); | |
49 TestCreateBetween(StringOrdinal("c"), StringOrdinal("d"), "cn"); | |
50 } | |
51 | |
52 TEST(StringOrdinalTest, CreateBetweenDifferentLengths) { | |
53 TestCreateBetween(StringOrdinal("b"), StringOrdinal("bb"), "ban"); | |
54 TestCreateBetween(StringOrdinal("b"), StringOrdinal("db"), "c"); | |
55 TestCreateBetween(StringOrdinal("bz"), StringOrdinal("c"), "bzn"); | |
56 TestCreateBetween(StringOrdinal("baaaaaab"), StringOrdinal("d"), "c"); | |
57 TestCreateBetween(StringOrdinal("baaaaaac"), StringOrdinal("d"), "c"); | |
58 TestCreateBetween(StringOrdinal("b"), StringOrdinal("daaaaaaab"), "c"); | |
59 } | |
60 | |
61 TEST(StringOrdinalTest, CreateBetweenOverflow) { | |
62 TestCreateBetween(StringOrdinal("ab"), StringOrdinal("bb"), "ao"); | |
63 TestCreateBetween(StringOrdinal("bb"), StringOrdinal("cb"), "bo"); | |
64 TestCreateBetween(StringOrdinal("bbb"), StringOrdinal("bcb"), "bbo"); | |
65 TestCreateBetween(StringOrdinal("aab"), StringOrdinal("zzz"), "n"); | |
66 TestCreateBetween(StringOrdinal("yyy"), StringOrdinal("zzz"), "zml"); | |
67 TestCreateBetween(StringOrdinal("yab"), StringOrdinal("zzz"), "z"); | |
68 TestCreateBetween(StringOrdinal("aaz"), StringOrdinal("zzz"), "n"); | |
69 } | |
70 | |
71 TEST(StringOrdinalTest, CreateAfter) { | |
72 StringOrdinal result = StringOrdinal("y").CreateAfter(); | |
73 EXPECT_EQ("yn", result.ToString()); | |
74 | |
75 result = StringOrdinal("zy").CreateAfter(); | |
76 EXPECT_EQ("zyn", result.ToString()); | |
77 | |
78 result = StringOrdinal("zzzy").CreateAfter(); | |
79 EXPECT_EQ("zzzyn", result.ToString()); | |
80 | |
81 result = StringOrdinal("yy").CreateAfter(); | |
82 EXPECT_EQ("zl", result.ToString()); | |
83 | |
84 result = StringOrdinal("yz").CreateAfter(); | |
85 EXPECT_EQ("z", result.ToString()); | |
86 | |
87 result = StringOrdinal("z").CreateAfter(); | |
88 EXPECT_EQ("zm", result.ToString()); | |
89 } | |
90 | |
91 TEST(StringOrdinalTest, CreateBefore) { | |
92 StringOrdinal result = StringOrdinal("b").CreateBefore(); | |
93 EXPECT_EQ("an", result.ToString()); | |
94 | |
95 result = StringOrdinal("bb").CreateBefore(); | |
96 EXPECT_EQ("ao", result.ToString()); | |
97 | |
98 result = StringOrdinal("bc").CreateBefore(); | |
99 EXPECT_EQ("ao", result.ToString()); | |
100 | |
101 result = StringOrdinal("bd").CreateBefore(); | |
102 EXPECT_EQ("ap", result.ToString()); | |
103 } | |
104 | |
105 TEST(StringOrdinalTest, ToString) { | |
106 StringOrdinal index("b"); | |
107 EXPECT_EQ(index.ToString(), "b"); | |
108 | |
109 index = StringOrdinal("aab"); | |
110 EXPECT_EQ(index.ToString(), "aab"); | |
111 | |
112 index = StringOrdinal("zzz"); | |
113 EXPECT_EQ(index.ToString(), "zzz"); | |
114 } | |
115 } // namespace | |
OLD | NEW |