OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/renderer/manifest/manifest_parser.h" | 5 #include "content/renderer/manifest/manifest_parser.h" |
6 | 6 |
7 #include "base/strings/string_util.h" | 7 #include "base/strings/string_util.h" |
8 #include "content/public/common/manifest.h" | 8 #include "content/public/common/manifest.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 TEST_F(ManifestParserTest, EmptyStringNull) { | 36 TEST_F(ManifestParserTest, EmptyStringNull) { |
37 Manifest manifest = ParseManifest(""); | 37 Manifest manifest = ParseManifest(""); |
38 | 38 |
39 // A parsing error is equivalent to an empty manifest. | 39 // A parsing error is equivalent to an empty manifest. |
40 ASSERT_TRUE(manifest.IsEmpty()); | 40 ASSERT_TRUE(manifest.IsEmpty()); |
41 ASSERT_TRUE(manifest.name.is_null()); | 41 ASSERT_TRUE(manifest.name.is_null()); |
42 ASSERT_TRUE(manifest.short_name.is_null()); | 42 ASSERT_TRUE(manifest.short_name.is_null()); |
43 ASSERT_TRUE(manifest.start_url.is_empty()); | 43 ASSERT_TRUE(manifest.start_url.is_empty()); |
44 ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED); | 44 ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED); |
| 45 ASSERT_EQ(manifest.orientation, blink::WebScreenOrientationLockDefault); |
45 } | 46 } |
46 | 47 |
47 TEST_F(ManifestParserTest, ValidNoContentParses) { | 48 TEST_F(ManifestParserTest, ValidNoContentParses) { |
48 Manifest manifest = ParseManifest("{}"); | 49 Manifest manifest = ParseManifest("{}"); |
49 | 50 |
50 // Check that all the fields are null in that case. | 51 // Check that all the fields are null in that case. |
51 ASSERT_TRUE(manifest.IsEmpty()); | 52 ASSERT_TRUE(manifest.IsEmpty()); |
52 ASSERT_TRUE(manifest.name.is_null()); | 53 ASSERT_TRUE(manifest.name.is_null()); |
53 ASSERT_TRUE(manifest.short_name.is_null()); | 54 ASSERT_TRUE(manifest.short_name.is_null()); |
54 ASSERT_TRUE(manifest.start_url.is_empty()); | 55 ASSERT_TRUE(manifest.start_url.is_empty()); |
55 ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED); | 56 ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED); |
| 57 ASSERT_EQ(manifest.orientation, blink::WebScreenOrientationLockDefault); |
56 } | 58 } |
57 | 59 |
58 TEST_F(ManifestParserTest, NameParseRules) { | 60 TEST_F(ManifestParserTest, NameParseRules) { |
59 // Smoke test. | 61 // Smoke test. |
60 { | 62 { |
61 Manifest manifest = ParseManifest("{ \"name\": \"foo\" }"); | 63 Manifest manifest = ParseManifest("{ \"name\": \"foo\" }"); |
62 ASSERT_TRUE(EqualsASCII(manifest.name.string(), "foo")); | 64 ASSERT_TRUE(EqualsASCII(manifest.name.string(), "foo")); |
63 ASSERT_FALSE(manifest.IsEmpty()); | 65 ASSERT_FALSE(manifest.IsEmpty()); |
64 } | 66 } |
65 | 67 |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER); | 223 EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER); |
222 } | 224 } |
223 | 225 |
224 // Case insensitive. | 226 // Case insensitive. |
225 { | 227 { |
226 Manifest manifest = ParseManifest("{ \"display\": \"BROWSER\" }"); | 228 Manifest manifest = ParseManifest("{ \"display\": \"BROWSER\" }"); |
227 EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER); | 229 EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER); |
228 } | 230 } |
229 } | 231 } |
230 | 232 |
| 233 TEST_F(ManifestParserTest, OrientationParserRules) { |
| 234 // Smoke test. |
| 235 { |
| 236 Manifest manifest = ParseManifest("{ \"orientation\": \"natural\" }"); |
| 237 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockNatural); |
| 238 EXPECT_FALSE(manifest.IsEmpty()); |
| 239 } |
| 240 |
| 241 // Trim whitespaces. |
| 242 { |
| 243 Manifest manifest = ParseManifest("{ \"orientation\": \"natural\" }"); |
| 244 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockNatural); |
| 245 } |
| 246 |
| 247 // Don't parse if name isn't a string. |
| 248 { |
| 249 Manifest manifest = ParseManifest("{ \"orientation\": {} }"); |
| 250 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockDefault); |
| 251 } |
| 252 |
| 253 // Don't parse if name isn't a string. |
| 254 { |
| 255 Manifest manifest = ParseManifest("{ \"orientation\": 42 }"); |
| 256 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockDefault); |
| 257 } |
| 258 |
| 259 // Parse fails if string isn't known. |
| 260 { |
| 261 Manifest manifest = ParseManifest("{ \"orientation\": \"naturalish\" }"); |
| 262 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockDefault); |
| 263 } |
| 264 |
| 265 // Accept 'any'. |
| 266 { |
| 267 Manifest manifest = ParseManifest("{ \"orientation\": \"any\" }"); |
| 268 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockAny); |
| 269 } |
| 270 |
| 271 // Accept 'natural'. |
| 272 { |
| 273 Manifest manifest = ParseManifest("{ \"orientation\": \"natural\" }"); |
| 274 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockNatural); |
| 275 } |
| 276 |
| 277 // Accept 'landscape'. |
| 278 { |
| 279 Manifest manifest = ParseManifest("{ \"orientation\": \"landscape\" }"); |
| 280 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockLandscape); |
| 281 } |
| 282 |
| 283 // Accept 'landscape-primary'. |
| 284 { |
| 285 Manifest manifest = |
| 286 ParseManifest("{ \"orientation\": \"landscape-primary\" }"); |
| 287 EXPECT_EQ(manifest.orientation, |
| 288 blink::WebScreenOrientationLockLandscapePrimary); |
| 289 } |
| 290 |
| 291 // Accept 'landscape-secondary'. |
| 292 { |
| 293 Manifest manifest = |
| 294 ParseManifest("{ \"orientation\": \"landscape-secondary\" }"); |
| 295 EXPECT_EQ(manifest.orientation, |
| 296 blink::WebScreenOrientationLockLandscapeSecondary); |
| 297 } |
| 298 |
| 299 // Accept 'portrait'. |
| 300 { |
| 301 Manifest manifest = ParseManifest("{ \"orientation\": \"portrait\" }"); |
| 302 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockPortrait); |
| 303 } |
| 304 |
| 305 // Accept 'portrait-primary'. |
| 306 { |
| 307 Manifest manifest = |
| 308 ParseManifest("{ \"orientation\": \"portrait-primary\" }"); |
| 309 EXPECT_EQ(manifest.orientation, |
| 310 blink::WebScreenOrientationLockPortraitPrimary); |
| 311 } |
| 312 |
| 313 // Accept 'portrait-secondary'. |
| 314 { |
| 315 Manifest manifest = |
| 316 ParseManifest("{ \"orientation\": \"portrait-secondary\" }"); |
| 317 EXPECT_EQ(manifest.orientation, |
| 318 blink::WebScreenOrientationLockPortraitSecondary); |
| 319 } |
| 320 |
| 321 // Case insensitive. |
| 322 { |
| 323 Manifest manifest = ParseManifest("{ \"orientation\": \"LANDSCAPE\" }"); |
| 324 EXPECT_EQ(manifest.orientation, blink::WebScreenOrientationLockLandscape); |
| 325 } |
| 326 } |
| 327 |
231 } // namespace content | 328 } // namespace content |
OLD | NEW |