| Index: net/base/mime_util_unittest.cc
|
| diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc
|
| index 61719889034a7ea3c7610f836063b082d23c16e7..bb783af90f36f9e649385619792ee839b171f165 100644
|
| --- a/net/base/mime_util_unittest.cc
|
| +++ b/net/base/mime_util_unittest.cc
|
| @@ -283,41 +283,77 @@ TEST(MimeUtilTest, ParseCodecString) {
|
| EXPECT_EQ("mp4a.40.2", codecs_out[1]);
|
| }
|
|
|
| -TEST(MimeUtilTest, TestIsMimeType) {
|
| +TEST(MimeUtilTest, TestParseMimeTypeWithoutParameter) {
|
| std::string nonAscii("application/nonutf8");
|
| - EXPECT_TRUE(IsMimeType(nonAscii));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter(nonAscii, NULL, NULL));
|
| #if defined(OS_WIN)
|
| nonAscii.append(base::WideToUTF8(std::wstring(L"\u2603")));
|
| #else
|
| nonAscii.append("\u2603"); // unicode snowman
|
| #endif
|
| - EXPECT_FALSE(IsMimeType(nonAscii));
|
| -
|
| - EXPECT_TRUE(IsMimeType("application/mime"));
|
| - EXPECT_TRUE(IsMimeType("application/json"));
|
| - EXPECT_TRUE(IsMimeType("application/x-suggestions+json"));
|
| - EXPECT_TRUE(IsMimeType("application/+json"));
|
| - EXPECT_TRUE(IsMimeType("audio/mime"));
|
| - EXPECT_TRUE(IsMimeType("example/mime"));
|
| - EXPECT_TRUE(IsMimeType("image/mime"));
|
| - EXPECT_TRUE(IsMimeType("message/mime"));
|
| - EXPECT_TRUE(IsMimeType("model/mime"));
|
| - EXPECT_TRUE(IsMimeType("multipart/mime"));
|
| - EXPECT_TRUE(IsMimeType("text/mime"));
|
| - EXPECT_TRUE(IsMimeType("TEXT/mime"));
|
| - EXPECT_TRUE(IsMimeType("Text/mime"));
|
| - EXPECT_TRUE(IsMimeType("TeXt/mime"));
|
| - EXPECT_TRUE(IsMimeType("video/mime"));
|
| - EXPECT_TRUE(IsMimeType("video/mime;parameter"));
|
| - EXPECT_TRUE(IsMimeType("*/*"));
|
| - EXPECT_TRUE(IsMimeType("*"));
|
| -
|
| - EXPECT_TRUE(IsMimeType("x-video/mime"));
|
| - EXPECT_TRUE(IsMimeType("X-Video/mime"));
|
| - EXPECT_FALSE(IsMimeType("x-video/"));
|
| - EXPECT_FALSE(IsMimeType("x-/mime"));
|
| - EXPECT_FALSE(IsMimeType("mime/looking"));
|
| - EXPECT_FALSE(IsMimeType("text/"));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter(nonAscii, NULL, NULL));
|
| +
|
| + std::string top_level_type;
|
| + std::string subtype;
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter(
|
| + "application/mime", &top_level_type, &subtype));
|
| + EXPECT_EQ("application", top_level_type);
|
| + EXPECT_EQ("mime", subtype);
|
| +
|
| + // Various allowed subtype forms.
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("application/json", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter(
|
| + "application/x-suggestions+json", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("application/+json", NULL, NULL));
|
| +
|
| + // Upper case letters are allowed.
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("text/mime", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("TEXT/mime", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("Text/mime", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("TeXt/mime", NULL, NULL));
|
| +
|
| + // Experimental types are also considered to be valid.
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("x-video/mime", NULL, NULL));
|
| + EXPECT_TRUE(ParseMimeTypeWithoutParameter("X-Video/mime", NULL, NULL));
|
| +
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("text", NULL, NULL));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("text/", NULL, NULL));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("text/ ", NULL, NULL));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("te(xt/ ", NULL, NULL));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("text/()plain", NULL, NULL));
|
| +
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("x-video", NULL, NULL));
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("x-video/", NULL, NULL));
|
| +
|
| + EXPECT_FALSE(ParseMimeTypeWithoutParameter("application/a/b/c", NULL, NULL));
|
| +
|
| + //EXPECT_TRUE(ParseMimeTypeWithoutParameter("video/mime;parameter"));
|
| +}
|
| +
|
| +TEST(MimeUtilTest, TestIsValidTopLevelMimeType) {
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("application"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("audio"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("example"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("image"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("message"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("model"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("multipart"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("text"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("video"));
|
| +
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("TEXT"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("Text"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("TeXt"));
|
| +
|
| + EXPECT_FALSE(IsValidTopLevelMimeType("mime"));
|
| + EXPECT_FALSE(IsValidTopLevelMimeType(""));
|
| + EXPECT_FALSE(IsValidTopLevelMimeType("/"));
|
| + EXPECT_FALSE(IsValidTopLevelMimeType(" "));
|
| +
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("x-video"));
|
| + EXPECT_TRUE(IsValidTopLevelMimeType("X-video"));
|
| +
|
| + EXPECT_FALSE(IsValidTopLevelMimeType("x-"));
|
| }
|
|
|
| TEST(MimeUtilTest, TestToIANAMediaType) {
|
|
|