| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/gpu/gpu_control_list.h" | 5 #include "content/browser/gpu/gpu_control_list.h" |
| 6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
| 7 | 7 |
| 8 namespace content { | 8 namespace content { |
| 9 | 9 |
| 10 class VersionInfoTest : public testing::Test { | 10 class VersionInfoTest : public testing::Test { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 "any", | 25 "any", |
| 26 "between" | 26 "between" |
| 27 }; | 27 }; |
| 28 for (size_t i = 0; i < arraysize(op); ++i) { | 28 for (size_t i = 0; i < arraysize(op); ++i) { |
| 29 std::string string1; | 29 std::string string1; |
| 30 std::string string2; | 30 std::string string2; |
| 31 if (op[i] != "any") | 31 if (op[i] != "any") |
| 32 string1 = "8.9"; | 32 string1 = "8.9"; |
| 33 if (op[i] == "between") | 33 if (op[i] == "between") |
| 34 string2 = "9.0"; | 34 string2 = "9.0"; |
| 35 VersionInfo info(op[i], "", string1, string2); | 35 VersionInfo info(op[i], std::string(), string1, string2); |
| 36 EXPECT_TRUE(info.IsValid()); | 36 EXPECT_TRUE(info.IsValid()); |
| 37 } | 37 } |
| 38 | 38 |
| 39 const std::string style[] = { | 39 const std::string style[] = { |
| 40 "lexical", | 40 "lexical", |
| 41 "numerical", | 41 "numerical", |
| 42 "" // Default, same as "numerical" | 42 "" // Default, same as "numerical" |
| 43 }; | 43 }; |
| 44 for (size_t i =0; i < arraysize(style); ++i) { | 44 for (size_t i =0; i < arraysize(style); ++i) { |
| 45 VersionInfo info("=", style[i], "8.9", ""); | 45 VersionInfo info("=", style[i], "8.9", std::string()); |
| 46 EXPECT_TRUE(info.IsValid()); | 46 EXPECT_TRUE(info.IsValid()); |
| 47 if (style[i] == "lexical") | 47 if (style[i] == "lexical") |
| 48 EXPECT_TRUE(info.IsLexical()); | 48 EXPECT_TRUE(info.IsLexical()); |
| 49 else | 49 else |
| 50 EXPECT_FALSE(info.IsLexical()); | 50 EXPECT_FALSE(info.IsLexical()); |
| 51 } | 51 } |
| 52 | 52 |
| 53 const std::string number[] = { | 53 const std::string number[] = { |
| 54 "10", | 54 "10", |
| 55 "10.9", | 55 "10.9", |
| 56 "10.0", | 56 "10.0", |
| 57 "10.0.9", | 57 "10.0.9", |
| 58 "0.8", | 58 "0.8", |
| 59 // Leading 0s are valid. | 59 // Leading 0s are valid. |
| 60 "10.09", | 60 "10.09", |
| 61 // Whitespaces are ignored. | 61 // Whitespaces are ignored. |
| 62 " 10.9", | 62 " 10.9", |
| 63 "10.9 ", | 63 "10.9 ", |
| 64 "10 .9", | 64 "10 .9", |
| 65 "10. 9", | 65 "10. 9", |
| 66 }; | 66 }; |
| 67 for (size_t i =0; i < arraysize(number); ++i) { | 67 for (size_t i =0; i < arraysize(number); ++i) { |
| 68 VersionInfo info("=", "", number[i], ""); | 68 VersionInfo info("=", std::string(), number[i], std::string()); |
| 69 EXPECT_TRUE(info.IsValid()); | 69 EXPECT_TRUE(info.IsValid()); |
| 70 } | 70 } |
| 71 } | 71 } |
| 72 | 72 |
| 73 TEST_F(VersionInfoTest, InvalidVersionInfo) { | 73 TEST_F(VersionInfoTest, InvalidVersionInfo) { |
| 74 const std::string op[] = { | 74 const std::string op[] = { |
| 75 "=", | 75 "=", |
| 76 "<", | 76 "<", |
| 77 "<=", | 77 "<=", |
| 78 ">", | 78 ">", |
| 79 ">=", | 79 ">=", |
| 80 "any", | 80 "any", |
| 81 "between" | 81 "between" |
| 82 }; | 82 }; |
| 83 for (size_t i = 0; i < arraysize(op); ++i) { | 83 for (size_t i = 0; i < arraysize(op); ++i) { |
| 84 { | 84 { |
| 85 VersionInfo info(op[i], "", "8.9", ""); | 85 VersionInfo info(op[i], std::string(), "8.9", std::string()); |
| 86 if (op[i] == "between") | 86 if (op[i] == "between") |
| 87 EXPECT_FALSE(info.IsValid()); | 87 EXPECT_FALSE(info.IsValid()); |
| 88 else | 88 else |
| 89 EXPECT_TRUE(info.IsValid()); | 89 EXPECT_TRUE(info.IsValid()); |
| 90 } | 90 } |
| 91 { | 91 { |
| 92 VersionInfo info(op[i], "", "", ""); | 92 VersionInfo info(op[i], std::string(), std::string(), std::string()); |
| 93 if (op[i] == "any") | 93 if (op[i] == "any") |
| 94 EXPECT_TRUE(info.IsValid()); | 94 EXPECT_TRUE(info.IsValid()); |
| 95 else | 95 else |
| 96 EXPECT_FALSE(info.IsValid()); | 96 EXPECT_FALSE(info.IsValid()); |
| 97 } | 97 } |
| 98 { | 98 { |
| 99 VersionInfo info(op[i], "", "8.9", "9.0"); | 99 VersionInfo info(op[i], std::string(), "8.9", "9.0"); |
| 100 EXPECT_TRUE(info.IsValid()); | 100 EXPECT_TRUE(info.IsValid()); |
| 101 } | 101 } |
| 102 } | 102 } |
| 103 | 103 |
| 104 const std::string number[] = { | 104 const std::string number[] = { |
| 105 "8.E", | 105 "8.E", |
| 106 "8-9", | 106 "8-9", |
| 107 }; | 107 }; |
| 108 for (size_t i = 0; i < arraysize(number); ++i) { | 108 for (size_t i = 0; i < arraysize(number); ++i) { |
| 109 VersionInfo info("=", "", number[i], ""); | 109 VersionInfo info("=", std::string(), number[i], std::string()); |
| 110 EXPECT_FALSE(info.IsValid()); | 110 EXPECT_FALSE(info.IsValid()); |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 | 113 |
| 114 TEST_F(VersionInfoTest, VersionComparison) { | 114 TEST_F(VersionInfoTest, VersionComparison) { |
| 115 { | 115 { |
| 116 VersionInfo info("any", "", "", ""); | 116 VersionInfo info("any", std::string(), std::string(), std::string()); |
| 117 EXPECT_TRUE(info.Contains("0")); | 117 EXPECT_TRUE(info.Contains("0")); |
| 118 EXPECT_TRUE(info.Contains("8.9")); | 118 EXPECT_TRUE(info.Contains("8.9")); |
| 119 EXPECT_TRUE(info.Contains("100")); | 119 EXPECT_TRUE(info.Contains("100")); |
| 120 } | 120 } |
| 121 { | 121 { |
| 122 VersionInfo info(">", "", "8.9", ""); | 122 VersionInfo info(">", std::string(), "8.9", std::string()); |
| 123 EXPECT_FALSE(info.Contains("7")); | 123 EXPECT_FALSE(info.Contains("7")); |
| 124 EXPECT_FALSE(info.Contains("8.9")); | 124 EXPECT_FALSE(info.Contains("8.9")); |
| 125 EXPECT_FALSE(info.Contains("8.9.1")); | 125 EXPECT_FALSE(info.Contains("8.9.1")); |
| 126 EXPECT_TRUE(info.Contains("9")); | 126 EXPECT_TRUE(info.Contains("9")); |
| 127 } | 127 } |
| 128 { | 128 { |
| 129 VersionInfo info(">=", "", "8.9", ""); | 129 VersionInfo info(">=", std::string(), "8.9", std::string()); |
| 130 EXPECT_FALSE(info.Contains("7")); | 130 EXPECT_FALSE(info.Contains("7")); |
| 131 EXPECT_TRUE(info.Contains("8.9")); | 131 EXPECT_TRUE(info.Contains("8.9")); |
| 132 EXPECT_TRUE(info.Contains("8.9.1")); | 132 EXPECT_TRUE(info.Contains("8.9.1")); |
| 133 EXPECT_TRUE(info.Contains("9")); | 133 EXPECT_TRUE(info.Contains("9")); |
| 134 } | 134 } |
| 135 { | 135 { |
| 136 VersionInfo info("=", "", "8.9", ""); | 136 VersionInfo info("=", std::string(), "8.9", std::string()); |
| 137 EXPECT_FALSE(info.Contains("7")); | 137 EXPECT_FALSE(info.Contains("7")); |
| 138 EXPECT_TRUE(info.Contains("8")); | 138 EXPECT_TRUE(info.Contains("8")); |
| 139 EXPECT_TRUE(info.Contains("8.9")); | 139 EXPECT_TRUE(info.Contains("8.9")); |
| 140 EXPECT_TRUE(info.Contains("8.9.1")); | 140 EXPECT_TRUE(info.Contains("8.9.1")); |
| 141 EXPECT_FALSE(info.Contains("9")); | 141 EXPECT_FALSE(info.Contains("9")); |
| 142 } | 142 } |
| 143 { | 143 { |
| 144 VersionInfo info("<", "", "8.9", ""); | 144 VersionInfo info("<", std::string(), "8.9", std::string()); |
| 145 EXPECT_TRUE(info.Contains("7")); | 145 EXPECT_TRUE(info.Contains("7")); |
| 146 EXPECT_TRUE(info.Contains("8.8")); | 146 EXPECT_TRUE(info.Contains("8.8")); |
| 147 EXPECT_FALSE(info.Contains("8")); | 147 EXPECT_FALSE(info.Contains("8")); |
| 148 EXPECT_FALSE(info.Contains("8.9")); | 148 EXPECT_FALSE(info.Contains("8.9")); |
| 149 EXPECT_FALSE(info.Contains("8.9.1")); | 149 EXPECT_FALSE(info.Contains("8.9.1")); |
| 150 EXPECT_FALSE(info.Contains("9")); | 150 EXPECT_FALSE(info.Contains("9")); |
| 151 } | 151 } |
| 152 { | 152 { |
| 153 VersionInfo info("<=", "", "8.9", ""); | 153 VersionInfo info("<=", std::string(), "8.9", std::string()); |
| 154 EXPECT_TRUE(info.Contains("7")); | 154 EXPECT_TRUE(info.Contains("7")); |
| 155 EXPECT_TRUE(info.Contains("8.8")); | 155 EXPECT_TRUE(info.Contains("8.8")); |
| 156 EXPECT_TRUE(info.Contains("8")); | 156 EXPECT_TRUE(info.Contains("8")); |
| 157 EXPECT_TRUE(info.Contains("8.9")); | 157 EXPECT_TRUE(info.Contains("8.9")); |
| 158 EXPECT_TRUE(info.Contains("8.9.1")); | 158 EXPECT_TRUE(info.Contains("8.9.1")); |
| 159 EXPECT_FALSE(info.Contains("9")); | 159 EXPECT_FALSE(info.Contains("9")); |
| 160 } | 160 } |
| 161 { | 161 { |
| 162 VersionInfo info("between", "", "8.9", "9.1"); | 162 VersionInfo info("between", std::string(), "8.9", "9.1"); |
| 163 EXPECT_FALSE(info.Contains("7")); | 163 EXPECT_FALSE(info.Contains("7")); |
| 164 EXPECT_FALSE(info.Contains("8.8")); | 164 EXPECT_FALSE(info.Contains("8.8")); |
| 165 EXPECT_TRUE(info.Contains("8")); | 165 EXPECT_TRUE(info.Contains("8")); |
| 166 EXPECT_TRUE(info.Contains("8.9")); | 166 EXPECT_TRUE(info.Contains("8.9")); |
| 167 EXPECT_TRUE(info.Contains("8.9.1")); | 167 EXPECT_TRUE(info.Contains("8.9.1")); |
| 168 EXPECT_TRUE(info.Contains("9")); | 168 EXPECT_TRUE(info.Contains("9")); |
| 169 EXPECT_TRUE(info.Contains("9.1")); | 169 EXPECT_TRUE(info.Contains("9.1")); |
| 170 EXPECT_TRUE(info.Contains("9.1.9")); | 170 EXPECT_TRUE(info.Contains("9.1.9")); |
| 171 EXPECT_FALSE(info.Contains("9.2")); | 171 EXPECT_FALSE(info.Contains("9.2")); |
| 172 EXPECT_FALSE(info.Contains("10")); | 172 EXPECT_FALSE(info.Contains("10")); |
| 173 } | 173 } |
| 174 } | 174 } |
| 175 | 175 |
| 176 TEST_F(VersionInfoTest, DateComparison) { | 176 TEST_F(VersionInfoTest, DateComparison) { |
| 177 // When we use '-' as splitter, we assume a format of mm-dd-yyyy | 177 // When we use '-' as splitter, we assume a format of mm-dd-yyyy |
| 178 // or mm-yyyy, i.e., a date. | 178 // or mm-yyyy, i.e., a date. |
| 179 { | 179 { |
| 180 VersionInfo info("=", "", "1976.3.21", ""); | 180 VersionInfo info("=", std::string(), "1976.3.21", std::string()); |
| 181 EXPECT_TRUE(info.Contains("3-21-1976", '-')); | 181 EXPECT_TRUE(info.Contains("3-21-1976", '-')); |
| 182 EXPECT_TRUE(info.Contains("3-1976", '-')); | 182 EXPECT_TRUE(info.Contains("3-1976", '-')); |
| 183 EXPECT_TRUE(info.Contains("03-1976", '-')); | 183 EXPECT_TRUE(info.Contains("03-1976", '-')); |
| 184 EXPECT_FALSE(info.Contains("21-3-1976", '-')); | 184 EXPECT_FALSE(info.Contains("21-3-1976", '-')); |
| 185 } | 185 } |
| 186 { | 186 { |
| 187 VersionInfo info(">", "", "1976.3.21", ""); | 187 VersionInfo info(">", std::string(), "1976.3.21", std::string()); |
| 188 EXPECT_TRUE(info.Contains("3-22-1976", '-')); | 188 EXPECT_TRUE(info.Contains("3-22-1976", '-')); |
| 189 EXPECT_TRUE(info.Contains("4-1976", '-')); | 189 EXPECT_TRUE(info.Contains("4-1976", '-')); |
| 190 EXPECT_TRUE(info.Contains("04-1976", '-')); | 190 EXPECT_TRUE(info.Contains("04-1976", '-')); |
| 191 EXPECT_FALSE(info.Contains("3-1976", '-')); | 191 EXPECT_FALSE(info.Contains("3-1976", '-')); |
| 192 EXPECT_FALSE(info.Contains("2-1976", '-')); | 192 EXPECT_FALSE(info.Contains("2-1976", '-')); |
| 193 } | 193 } |
| 194 { | 194 { |
| 195 VersionInfo info("between", "", "1976.3.21", "2012.12.25"); | 195 VersionInfo info("between", std::string(), "1976.3.21", "2012.12.25"); |
| 196 EXPECT_FALSE(info.Contains("3-20-1976", '-')); | 196 EXPECT_FALSE(info.Contains("3-20-1976", '-')); |
| 197 EXPECT_TRUE(info.Contains("3-21-1976", '-')); | 197 EXPECT_TRUE(info.Contains("3-21-1976", '-')); |
| 198 EXPECT_TRUE(info.Contains("3-22-1976", '-')); | 198 EXPECT_TRUE(info.Contains("3-22-1976", '-')); |
| 199 EXPECT_TRUE(info.Contains("3-1976", '-')); | 199 EXPECT_TRUE(info.Contains("3-1976", '-')); |
| 200 EXPECT_TRUE(info.Contains("4-1976", '-')); | 200 EXPECT_TRUE(info.Contains("4-1976", '-')); |
| 201 EXPECT_TRUE(info.Contains("1-1-2000", '-')); | 201 EXPECT_TRUE(info.Contains("1-1-2000", '-')); |
| 202 EXPECT_TRUE(info.Contains("1-2000", '-')); | 202 EXPECT_TRUE(info.Contains("1-2000", '-')); |
| 203 EXPECT_TRUE(info.Contains("2000", '-')); | 203 EXPECT_TRUE(info.Contains("2000", '-')); |
| 204 EXPECT_TRUE(info.Contains("11-2012", '-')); | 204 EXPECT_TRUE(info.Contains("11-2012", '-')); |
| 205 EXPECT_TRUE(info.Contains("12-2012", '-')); | 205 EXPECT_TRUE(info.Contains("12-2012", '-')); |
| 206 EXPECT_TRUE(info.Contains("12-24-2012", '-')); | 206 EXPECT_TRUE(info.Contains("12-24-2012", '-')); |
| 207 EXPECT_TRUE(info.Contains("12-25-2012", '-')); | 207 EXPECT_TRUE(info.Contains("12-25-2012", '-')); |
| 208 EXPECT_FALSE(info.Contains("12-26-2012", '-')); | 208 EXPECT_FALSE(info.Contains("12-26-2012", '-')); |
| 209 EXPECT_FALSE(info.Contains("1-2013", '-')); | 209 EXPECT_FALSE(info.Contains("1-2013", '-')); |
| 210 EXPECT_FALSE(info.Contains("2013", '-')); | 210 EXPECT_FALSE(info.Contains("2013", '-')); |
| 211 } | 211 } |
| 212 } | 212 } |
| 213 | 213 |
| 214 TEST_F(VersionInfoTest, LexicalComparison) { | 214 TEST_F(VersionInfoTest, LexicalComparison) { |
| 215 // When we use lexical style, we assume a format major.minor.*. | 215 // When we use lexical style, we assume a format major.minor.*. |
| 216 // We apply numerical comparison to major, lexical comparison to others. | 216 // We apply numerical comparison to major, lexical comparison to others. |
| 217 { | 217 { |
| 218 VersionInfo info("<", "lexical", "8.201", ""); | 218 VersionInfo info("<", "lexical", "8.201", std::string()); |
| 219 EXPECT_TRUE(info.Contains("8.001.100")); | 219 EXPECT_TRUE(info.Contains("8.001.100")); |
| 220 EXPECT_TRUE(info.Contains("8.109")); | 220 EXPECT_TRUE(info.Contains("8.109")); |
| 221 EXPECT_TRUE(info.Contains("8.10900")); | 221 EXPECT_TRUE(info.Contains("8.10900")); |
| 222 EXPECT_TRUE(info.Contains("8.109.100")); | 222 EXPECT_TRUE(info.Contains("8.109.100")); |
| 223 EXPECT_TRUE(info.Contains("8.2")); | 223 EXPECT_TRUE(info.Contains("8.2")); |
| 224 EXPECT_TRUE(info.Contains("8.20")); | 224 EXPECT_TRUE(info.Contains("8.20")); |
| 225 EXPECT_TRUE(info.Contains("8.200")); | 225 EXPECT_TRUE(info.Contains("8.200")); |
| 226 EXPECT_TRUE(info.Contains("8.20.100")); | 226 EXPECT_TRUE(info.Contains("8.20.100")); |
| 227 EXPECT_FALSE(info.Contains("8.201")); | 227 EXPECT_FALSE(info.Contains("8.201")); |
| 228 EXPECT_FALSE(info.Contains("8.2010")); | 228 EXPECT_FALSE(info.Contains("8.2010")); |
| 229 EXPECT_FALSE(info.Contains("8.21")); | 229 EXPECT_FALSE(info.Contains("8.21")); |
| 230 EXPECT_FALSE(info.Contains("8.21.100")); | 230 EXPECT_FALSE(info.Contains("8.21.100")); |
| 231 EXPECT_FALSE(info.Contains("9.002")); | 231 EXPECT_FALSE(info.Contains("9.002")); |
| 232 EXPECT_FALSE(info.Contains("9.201")); | 232 EXPECT_FALSE(info.Contains("9.201")); |
| 233 EXPECT_FALSE(info.Contains("12")); | 233 EXPECT_FALSE(info.Contains("12")); |
| 234 EXPECT_FALSE(info.Contains("12.201")); | 234 EXPECT_FALSE(info.Contains("12.201")); |
| 235 } | 235 } |
| 236 { | 236 { |
| 237 VersionInfo info("<", "lexical", "9.002", ""); | 237 VersionInfo info("<", "lexical", "9.002", std::string()); |
| 238 EXPECT_TRUE(info.Contains("8.001.100")); | 238 EXPECT_TRUE(info.Contains("8.001.100")); |
| 239 EXPECT_TRUE(info.Contains("8.109")); | 239 EXPECT_TRUE(info.Contains("8.109")); |
| 240 EXPECT_TRUE(info.Contains("8.10900")); | 240 EXPECT_TRUE(info.Contains("8.10900")); |
| 241 EXPECT_TRUE(info.Contains("8.109.100")); | 241 EXPECT_TRUE(info.Contains("8.109.100")); |
| 242 EXPECT_TRUE(info.Contains("8.2")); | 242 EXPECT_TRUE(info.Contains("8.2")); |
| 243 EXPECT_TRUE(info.Contains("8.20")); | 243 EXPECT_TRUE(info.Contains("8.20")); |
| 244 EXPECT_TRUE(info.Contains("8.200")); | 244 EXPECT_TRUE(info.Contains("8.200")); |
| 245 EXPECT_TRUE(info.Contains("8.20.100")); | 245 EXPECT_TRUE(info.Contains("8.20.100")); |
| 246 EXPECT_TRUE(info.Contains("8.201")); | 246 EXPECT_TRUE(info.Contains("8.201")); |
| 247 EXPECT_TRUE(info.Contains("8.2010")); | 247 EXPECT_TRUE(info.Contains("8.2010")); |
| 248 EXPECT_TRUE(info.Contains("8.21")); | 248 EXPECT_TRUE(info.Contains("8.21")); |
| 249 EXPECT_TRUE(info.Contains("8.21.100")); | 249 EXPECT_TRUE(info.Contains("8.21.100")); |
| 250 EXPECT_FALSE(info.Contains("9.002")); | 250 EXPECT_FALSE(info.Contains("9.002")); |
| 251 EXPECT_FALSE(info.Contains("9.201")); | 251 EXPECT_FALSE(info.Contains("9.201")); |
| 252 EXPECT_FALSE(info.Contains("12")); | 252 EXPECT_FALSE(info.Contains("12")); |
| 253 EXPECT_FALSE(info.Contains("12.201")); | 253 EXPECT_FALSE(info.Contains("12.201")); |
| 254 } | 254 } |
| 255 } | 255 } |
| 256 | 256 |
| 257 } // namespace content | 257 } // namespace content |
| 258 | 258 |
| OLD | NEW |