OLD | NEW |
| (Empty) |
1 // Copyright 2014 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 "mojo/public/cpp/bindings/string.h" | |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 | |
8 namespace mojo { | |
9 namespace test { | |
10 | |
11 namespace { | |
12 const char* kHelloWorld = "hello world"; | |
13 } // namespace | |
14 | |
15 TEST(StringTest, DefaultIsNotNull) { | |
16 String s; | |
17 EXPECT_FALSE(s.is_null()); | |
18 } | |
19 | |
20 TEST(StringTest, ConstructedWithNULL) { | |
21 String s(nullptr); | |
22 EXPECT_TRUE(s.is_null()); | |
23 } | |
24 | |
25 TEST(StringTest, ConstructedWithNullCharPointer) { | |
26 const char* null = nullptr; | |
27 String s(null); | |
28 EXPECT_TRUE(s.is_null()); | |
29 } | |
30 | |
31 TEST(StringTest, AssignedNULL) { | |
32 String s(""); | |
33 EXPECT_FALSE(s.is_null()); | |
34 s = nullptr; | |
35 EXPECT_TRUE(s.is_null()); | |
36 } | |
37 | |
38 TEST(StringTest, Empty) { | |
39 String s(""); | |
40 EXPECT_FALSE(s.is_null()); | |
41 EXPECT_TRUE(s.get().empty()); | |
42 } | |
43 | |
44 TEST(StringTest, Basic) { | |
45 String s(kHelloWorld); | |
46 EXPECT_EQ(std::string(kHelloWorld), s.get()); | |
47 } | |
48 | |
49 TEST(StringTest, Assignment) { | |
50 String s(kHelloWorld); | |
51 String t = s; // Makes a copy. | |
52 EXPECT_FALSE(t.is_null()); | |
53 EXPECT_EQ(std::string(kHelloWorld), t.get()); | |
54 EXPECT_FALSE(s.is_null()); | |
55 } | |
56 | |
57 TEST(StringTest, Equality) { | |
58 String s(kHelloWorld); | |
59 String t(kHelloWorld); | |
60 EXPECT_EQ(s, t); | |
61 EXPECT_TRUE(s == s); | |
62 EXPECT_FALSE(s != s); | |
63 EXPECT_TRUE(s == t); | |
64 EXPECT_FALSE(s != t); | |
65 EXPECT_TRUE(kHelloWorld == s); | |
66 EXPECT_TRUE(s == kHelloWorld); | |
67 EXPECT_TRUE("not" != s); | |
68 EXPECT_FALSE("not" == s); | |
69 EXPECT_TRUE(s != "not"); | |
70 EXPECT_FALSE(s == "not"); | |
71 | |
72 // Test null strings. | |
73 String n1; | |
74 String n2; | |
75 EXPECT_TRUE(n1 == n1); | |
76 EXPECT_FALSE(n1 != n2); | |
77 EXPECT_TRUE(n1 == n2); | |
78 EXPECT_FALSE(n1 != n2); | |
79 EXPECT_TRUE(n1 != s); | |
80 EXPECT_FALSE(n1 == s); | |
81 EXPECT_TRUE(s != n1); | |
82 EXPECT_FALSE(s == n1); | |
83 } | |
84 | |
85 TEST(StringTest, LessThanNullness) { | |
86 String null; | |
87 String null2; | |
88 EXPECT_FALSE(null < null2); | |
89 EXPECT_FALSE(null2 < null); | |
90 | |
91 String real("real"); | |
92 EXPECT_TRUE(null < real); | |
93 EXPECT_FALSE(real < null); | |
94 } | |
95 | |
96 TEST(StringTest, MoveConstructors) { | |
97 std::string std_str(kHelloWorld); | |
98 | |
99 String str1(std::move(std_str)); | |
100 EXPECT_TRUE(kHelloWorld == str1); | |
101 | |
102 String str2(std::move(str1)); | |
103 EXPECT_TRUE(kHelloWorld == str2); | |
104 EXPECT_TRUE(str1.is_null()); | |
105 } | |
106 | |
107 TEST(StringTest, MoveAssignments) { | |
108 std::string std_str(kHelloWorld); | |
109 | |
110 String str1; | |
111 str1 = std::move(std_str); | |
112 EXPECT_TRUE(kHelloWorld == str1); | |
113 | |
114 String str2; | |
115 str2 = std::move(str1); | |
116 EXPECT_TRUE(kHelloWorld == str2); | |
117 EXPECT_TRUE(str1.is_null()); | |
118 } | |
119 | |
120 TEST(StringTest, Storage) { | |
121 String str(kHelloWorld); | |
122 | |
123 EXPECT_TRUE(kHelloWorld == str.storage()); | |
124 | |
125 std::string storage = str.PassStorage(); | |
126 EXPECT_TRUE(str.is_null()); | |
127 EXPECT_TRUE(kHelloWorld == storage); | |
128 } | |
129 | |
130 } // namespace test | |
131 } // namespace mojo | |
OLD | NEW |