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 "base/version.h" | 5 #include "base/version.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <utility> |
9 | 10 |
10 #include "base/macros.h" | 11 #include "base/macros.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
12 | 13 |
13 namespace { | 14 namespace { |
14 | 15 |
15 TEST(VersionTest, DefaultConstructor) { | 16 TEST(VersionTest, DefaultConstructor) { |
16 Version v; | 17 Version v; |
17 EXPECT_FALSE(v.IsValid()); | 18 EXPECT_FALSE(v.IsValid()); |
18 } | 19 } |
19 | 20 |
20 TEST(VersionTest, ValueSemantics) { | 21 TEST(VersionTest, ValueSemantics) { |
21 Version v1("1.2.3.4"); | 22 Version v1("1.2.3.4"); |
22 EXPECT_TRUE(v1.IsValid()); | 23 EXPECT_TRUE(v1.IsValid()); |
23 Version v3; | 24 Version v3; |
24 EXPECT_FALSE(v3.IsValid()); | 25 EXPECT_FALSE(v3.IsValid()); |
25 { | 26 { |
26 Version v2(v1); | 27 Version v2(v1); |
27 v3 = v2; | 28 v3 = v2; |
28 EXPECT_TRUE(v2.IsValid()); | 29 EXPECT_TRUE(v2.IsValid()); |
29 EXPECT_EQ(v1, v2); | 30 EXPECT_EQ(v1, v2); |
30 } | 31 } |
31 EXPECT_EQ(v3, v1); | 32 EXPECT_EQ(v3, v1); |
32 } | 33 } |
33 | 34 |
| 35 TEST(VersionTest, MoveSemantics) { |
| 36 const std::vector<uint32_t> components = {1, 2, 3, 4}; |
| 37 Version v1(std::move(components)); |
| 38 EXPECT_TRUE(v1.IsValid()); |
| 39 Version v2("1.2.3.4"); |
| 40 EXPECT_EQ(v1, v2); |
| 41 } |
| 42 |
34 TEST(VersionTest, GetVersionFromString) { | 43 TEST(VersionTest, GetVersionFromString) { |
35 static const struct version_string { | 44 static const struct version_string { |
36 const char* input; | 45 const char* input; |
37 size_t parts; | 46 size_t parts; |
38 uint32_t firstpart; | 47 uint32_t firstpart; |
39 bool success; | 48 bool success; |
40 } cases[] = { | 49 } cases[] = { |
41 {"", 0, 0, false}, | 50 {"", 0, 0, false}, |
42 {" ", 0, 0, false}, | 51 {" ", 0, 0, false}, |
43 {"\t", 0, 0, false}, | 52 {"\t", 0, 0, false}, |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 {"*", false}, | 184 {"*", false}, |
176 {"*.2", false}, | 185 {"*.2", false}, |
177 }; | 186 }; |
178 for (size_t i = 0; i < arraysize(cases); ++i) { | 187 for (size_t i = 0; i < arraysize(cases); ++i) { |
179 EXPECT_EQ(Version::IsValidWildcardString(cases[i].version), | 188 EXPECT_EQ(Version::IsValidWildcardString(cases[i].version), |
180 cases[i].expected) << cases[i].version << "?" << cases[i].expected; | 189 cases[i].expected) << cases[i].version << "?" << cases[i].expected; |
181 } | 190 } |
182 } | 191 } |
183 | 192 |
184 } // namespace | 193 } // namespace |
OLD | NEW |