| Index: content/renderer/manifest/manifest_parser_unittest.cc
|
| diff --git a/content/renderer/manifest/manifest_parser_unittest.cc b/content/renderer/manifest/manifest_parser_unittest.cc
|
| index 0e500aec9e2c2bce3f123bbd36cd2b8d1ecc2f07..2497cd2d38238b2498f99bac8fcb03e7ff14fb9f 100644
|
| --- a/content/renderer/manifest/manifest_parser_unittest.cc
|
| +++ b/content/renderer/manifest/manifest_parser_unittest.cc
|
| @@ -41,6 +41,7 @@ TEST_F(ManifestParserTest, EmptyStringNull) {
|
| ASSERT_TRUE(manifest.name.is_null());
|
| ASSERT_TRUE(manifest.short_name.is_null());
|
| ASSERT_TRUE(manifest.start_url.is_empty());
|
| + ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED);
|
| }
|
|
|
| TEST_F(ManifestParserTest, ValidNoContentParses) {
|
| @@ -51,6 +52,7 @@ TEST_F(ManifestParserTest, ValidNoContentParses) {
|
| ASSERT_TRUE(manifest.name.is_null());
|
| ASSERT_TRUE(manifest.short_name.is_null());
|
| ASSERT_TRUE(manifest.start_url.is_empty());
|
| + ASSERT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED);
|
| }
|
|
|
| TEST_F(ManifestParserTest, NameParseRules) {
|
| @@ -58,6 +60,7 @@ TEST_F(ManifestParserTest, NameParseRules) {
|
| {
|
| Manifest manifest = ParseManifest("{ \"name\": \"foo\" }");
|
| ASSERT_TRUE(EqualsASCII(manifest.name.string(), "foo"));
|
| + ASSERT_FALSE(manifest.IsEmpty());
|
| }
|
|
|
| // Trim whitespaces.
|
| @@ -84,6 +87,7 @@ TEST_F(ManifestParserTest, ShortNameParseRules) {
|
| {
|
| Manifest manifest = ParseManifest("{ \"short_name\": \"foo\" }");
|
| ASSERT_TRUE(EqualsASCII(manifest.short_name.string(), "foo"));
|
| + ASSERT_FALSE(manifest.IsEmpty());
|
| }
|
|
|
| // Trim whitespaces.
|
| @@ -111,6 +115,7 @@ TEST_F(ManifestParserTest, StartURLParseRules) {
|
| Manifest manifest = ParseManifest("{ \"start_url\": \"land.html\" }");
|
| ASSERT_EQ(manifest.start_url.spec(),
|
| default_document_url.Resolve("land.html").spec());
|
| + ASSERT_FALSE(manifest.IsEmpty());
|
| }
|
|
|
| // Whitespaces.
|
| @@ -160,4 +165,67 @@ TEST_F(ManifestParserTest, StartURLParseRules) {
|
| }
|
| }
|
|
|
| +TEST_F(ManifestParserTest, DisplayParserRules) {
|
| + // Smoke test.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"browser\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER);
|
| + EXPECT_FALSE(manifest.IsEmpty());
|
| + }
|
| +
|
| + // Trim whitespaces.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \" browser \" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER);
|
| + }
|
| +
|
| + // Don't parse if name isn't a string.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": {} }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED);
|
| + }
|
| +
|
| + // Don't parse if name isn't a string.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": 42 }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED);
|
| + }
|
| +
|
| + // Parse fails if string isn't known.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"browser_something\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_UNSPECIFIED);
|
| + }
|
| +
|
| + // Accept 'fullscreen'.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"fullscreen\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_FULLSCREEN);
|
| + }
|
| +
|
| + // Accept 'fullscreen'.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"standalone\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_STANDALONE);
|
| + }
|
| +
|
| + // Accept 'minimal-ui'.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"minimal-ui\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_MINIMAL_UI);
|
| + }
|
| +
|
| + // Accept 'browser'.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"browser\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER);
|
| + }
|
| +
|
| + // Case insensitive.
|
| + {
|
| + Manifest manifest = ParseManifest("{ \"display\": \"BROWSER\" }");
|
| + EXPECT_EQ(manifest.display, Manifest::DISPLAY_MODE_BROWSER);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|