| 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/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/strings/string_split.h" | 6 #include "base/strings/string_split.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "net/base/mime_util.h" | 8 #include "net/base/mime_util.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 { FILE_PATH_LITERAL("pjpeg"), "image/jpeg", true }, | 26 { FILE_PATH_LITERAL("pjpeg"), "image/jpeg", true }, |
| 27 #if defined(OS_ANDROID) | 27 #if defined(OS_ANDROID) |
| 28 { FILE_PATH_LITERAL("m3u8"), "application/x-mpegurl", true }, | 28 { FILE_PATH_LITERAL("m3u8"), "application/x-mpegurl", true }, |
| 29 #endif | 29 #endif |
| 30 { FILE_PATH_LITERAL("not an extension / for sure"), "", false }, | 30 { FILE_PATH_LITERAL("not an extension / for sure"), "", false }, |
| 31 }; | 31 }; |
| 32 | 32 |
| 33 std::string mime_type; | 33 std::string mime_type; |
| 34 bool rv; | 34 bool rv; |
| 35 | 35 |
| 36 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 36 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 37 rv = GetMimeTypeFromExtension(tests[i].extension, &mime_type); | 37 rv = GetMimeTypeFromExtension(tests[i].extension, &mime_type); |
| 38 EXPECT_EQ(tests[i].valid, rv); | 38 EXPECT_EQ(tests[i].valid, rv); |
| 39 if (rv) | 39 if (rv) |
| 40 EXPECT_EQ(tests[i].mime_type, mime_type); | 40 EXPECT_EQ(tests[i].mime_type, mime_type); |
| 41 } | 41 } |
| 42 } | 42 } |
| 43 | 43 |
| 44 TEST(MimeUtilTest, FileTest) { | 44 TEST(MimeUtilTest, FileTest) { |
| 45 const struct { | 45 const struct { |
| 46 const base::FilePath::CharType* file_path; | 46 const base::FilePath::CharType* file_path; |
| 47 const char* mime_type; | 47 const char* mime_type; |
| 48 bool valid; | 48 bool valid; |
| 49 } tests[] = { | 49 } tests[] = { |
| 50 { FILE_PATH_LITERAL("c:\\foo\\bar.css"), "text/css", true }, | 50 { FILE_PATH_LITERAL("c:\\foo\\bar.css"), "text/css", true }, |
| 51 { FILE_PATH_LITERAL("c:\\blah"), "", false }, | 51 { FILE_PATH_LITERAL("c:\\blah"), "", false }, |
| 52 { FILE_PATH_LITERAL("/usr/local/bin/mplayer"), "", false }, | 52 { FILE_PATH_LITERAL("/usr/local/bin/mplayer"), "", false }, |
| 53 { FILE_PATH_LITERAL("/home/foo/bar.css"), "text/css", true }, | 53 { FILE_PATH_LITERAL("/home/foo/bar.css"), "text/css", true }, |
| 54 { FILE_PATH_LITERAL("/blah."), "", false }, | 54 { FILE_PATH_LITERAL("/blah."), "", false }, |
| 55 { FILE_PATH_LITERAL("c:\\blah."), "", false }, | 55 { FILE_PATH_LITERAL("c:\\blah."), "", false }, |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 std::string mime_type; | 58 std::string mime_type; |
| 59 bool rv; | 59 bool rv; |
| 60 | 60 |
| 61 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 61 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 62 rv = GetMimeTypeFromFile(base::FilePath(tests[i].file_path), | 62 rv = GetMimeTypeFromFile(base::FilePath(tests[i].file_path), |
| 63 &mime_type); | 63 &mime_type); |
| 64 EXPECT_EQ(tests[i].valid, rv); | 64 EXPECT_EQ(tests[i].valid, rv); |
| 65 if (rv) | 65 if (rv) |
| 66 EXPECT_EQ(tests[i].mime_type, mime_type); | 66 EXPECT_EQ(tests[i].mime_type, mime_type); |
| 67 } | 67 } |
| 68 } | 68 } |
| 69 | 69 |
| 70 TEST(MimeUtilTest, LookupTypes) { | 70 TEST(MimeUtilTest, LookupTypes) { |
| 71 EXPECT_FALSE(IsUnsupportedTextMimeType("text/banana")); | 71 EXPECT_FALSE(IsUnsupportedTextMimeType("text/banana")); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 { "avc1.42E01E, mp4a.40.2", 2, { "avc1", "mp4a" } }, | 267 { "avc1.42E01E, mp4a.40.2", 2, { "avc1", "mp4a" } }, |
| 268 { "\"mp4v.20.240, mp4a.40.2\"", 2, { "mp4v", "mp4a" } }, | 268 { "\"mp4v.20.240, mp4a.40.2\"", 2, { "mp4v", "mp4a" } }, |
| 269 { "mp4v.20.8, samr", 2, { "mp4v", "samr" } }, | 269 { "mp4v.20.8, samr", 2, { "mp4v", "samr" } }, |
| 270 { "\"theora, vorbis\"", 2, { "theora", "vorbis" } }, | 270 { "\"theora, vorbis\"", 2, { "theora", "vorbis" } }, |
| 271 { "", 0, { } }, | 271 { "", 0, { } }, |
| 272 { "\"\"", 0, { } }, | 272 { "\"\"", 0, { } }, |
| 273 { "\" \"", 0, { } }, | 273 { "\" \"", 0, { } }, |
| 274 { ",", 2, { "", "" } }, | 274 { ",", 2, { "", "" } }, |
| 275 }; | 275 }; |
| 276 | 276 |
| 277 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 277 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 278 std::vector<std::string> codecs_out; | 278 std::vector<std::string> codecs_out; |
| 279 ParseCodecString(tests[i].original, &codecs_out, true); | 279 ParseCodecString(tests[i].original, &codecs_out, true); |
| 280 ASSERT_EQ(tests[i].expected_size, codecs_out.size()); | 280 ASSERT_EQ(tests[i].expected_size, codecs_out.size()); |
| 281 for (size_t j = 0; j < tests[i].expected_size; ++j) | 281 for (size_t j = 0; j < tests[i].expected_size; ++j) |
| 282 EXPECT_EQ(tests[i].results[j], codecs_out[j]); | 282 EXPECT_EQ(tests[i].results[j], codecs_out[j]); |
| 283 } | 283 } |
| 284 | 284 |
| 285 // Test without stripping the codec type. | 285 // Test without stripping the codec type. |
| 286 std::vector<std::string> codecs_out; | 286 std::vector<std::string> codecs_out; |
| 287 ParseCodecString("avc1.42E01E, mp4a.40.2", &codecs_out, false); | 287 ParseCodecString("avc1.42E01E, mp4a.40.2", &codecs_out, false); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 { "video/*", 6, "mp4" }, | 394 { "video/*", 6, "mp4" }, |
| 395 #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_IOS) | 395 #if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_IOS) |
| 396 { "video/*", 6, "mpg" }, | 396 { "video/*", 6, "mpg" }, |
| 397 #else | 397 #else |
| 398 { "video/*", 6, "mpeg" }, | 398 { "video/*", 6, "mpeg" }, |
| 399 #endif | 399 #endif |
| 400 { "audio/*", 6, "oga" }, | 400 { "audio/*", 6, "oga" }, |
| 401 { "aUDIo/*", 6, "wav" }, | 401 { "aUDIo/*", 6, "wav" }, |
| 402 }; | 402 }; |
| 403 | 403 |
| 404 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 404 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 405 std::vector<base::FilePath::StringType> extensions; | 405 std::vector<base::FilePath::StringType> extensions; |
| 406 GetExtensionsForMimeType(tests[i].mime_type, &extensions); | 406 GetExtensionsForMimeType(tests[i].mime_type, &extensions); |
| 407 ASSERT_TRUE(tests[i].min_expected_size <= extensions.size()); | 407 ASSERT_TRUE(tests[i].min_expected_size <= extensions.size()); |
| 408 | 408 |
| 409 if (!tests[i].contained_result) | 409 if (!tests[i].contained_result) |
| 410 continue; | 410 continue; |
| 411 | 411 |
| 412 bool found = false; | 412 bool found = false; |
| 413 for (size_t j = 0; !found && j < extensions.size(); ++j) { | 413 for (size_t j = 0; !found && j < extensions.size(); ++j) { |
| 414 #if defined(OS_WIN) | 414 #if defined(OS_WIN) |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 std::string post_data; | 453 std::string post_data; |
| 454 AddMultipartValueForUpload("value name", "value", "boundary", | 454 AddMultipartValueForUpload("value name", "value", "boundary", |
| 455 "content type", &post_data); | 455 "content type", &post_data); |
| 456 AddMultipartValueForUpload("value name", "value", "boundary", | 456 AddMultipartValueForUpload("value name", "value", "boundary", |
| 457 "", &post_data); | 457 "", &post_data); |
| 458 AddMultipartFinalDelimiterForUpload("boundary", &post_data); | 458 AddMultipartFinalDelimiterForUpload("boundary", &post_data); |
| 459 EXPECT_STREQ(ref_output, post_data.c_str()); | 459 EXPECT_STREQ(ref_output, post_data.c_str()); |
| 460 } | 460 } |
| 461 | 461 |
| 462 } // namespace net | 462 } // namespace net |
| OLD | NEW |