Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(471)

Side by Side Diff: net/base/mime_sniffer_unittest.cc

Issue 6592089: Adding sniffing of MHTML files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding unit-tests Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/mime_sniffer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "googleurl/src/gurl.h" 6 #include "googleurl/src/gurl.h"
7 #include "net/base/mime_sniffer.h" 7 #include "net/base/mime_sniffer.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace { 10 namespace {
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 "http://www.example.com/foo.crx?monkey", 150 "http://www.example.com/foo.crx?monkey",
151 "", "application/octet-stream" }, 151 "", "application/octet-stream" },
152 { "PADDING_Cr24\x02\x00\x00\x00", sizeof("PADDING_Cr24\x02\x00\x00\x00")-1, 152 { "PADDING_Cr24\x02\x00\x00\x00", sizeof("PADDING_Cr24\x02\x00\x00\x00")-1,
153 "http://www.example.com/foo.crx?monkey", 153 "http://www.example.com/foo.crx?monkey",
154 "", "application/octet-stream" }, 154 "", "application/octet-stream" },
155 }; 155 };
156 156
157 TestArray(tests, arraysize(tests)); 157 TestArray(tests, arraysize(tests));
158 } 158 }
159 159
160 TEST(MimeSnifferTest, MHTMLTest) {
161 // Simple MHT file.
162 EXPECT_EQ("multipart/related",
163 SniffMimeType("From: Chrome\r\n",
164 "file://c/Users/Q/foo.mht",
165 ""));
166 // Simple MHTML file.
167 EXPECT_EQ("multipart/related",
168 SniffMimeType("From: Chrome\r\n",
169 "file://c/Users/Q/foo.mhtml",
170 ""));
171 // File with bad extension.
172 EXPECT_EQ("text/plain",
173 SniffMimeType("From: Chrome\r\n",
174 "file://c/Users/Q/foo.mhtm",
175 ""));
176 // MHTML should not be sniffed, regardless of the extension.
177 EXPECT_FALSE(net::ShouldSniffMimeType(
178 GURL("http://www.example.com/foo.mht"), "multipart/related"));
179 EXPECT_FALSE(net::ShouldSniffMimeType(
180 GURL("http://www.example.com/foo.mhtml"), "multipart/related"));
181 EXPECT_FALSE(net::ShouldSniffMimeType(
182 GURL("http://www.example.com/foo"), "multipart/related"));
183 // MHTML served as plain-text is not recognized.
184 EXPECT_EQ("text/plain",
185 SniffMimeType("From: Chrome\r\n",
186 "http://www.example.com/foo",
187 "text/plain"));
188 }
189
160 TEST(MimeSnifferTest, MozillaCompatibleTest) { 190 TEST(MimeSnifferTest, MozillaCompatibleTest) {
161 SnifferTest tests[] = { 191 SnifferTest tests[] = {
162 { " \n <hTmL>\n <hea", sizeof(" \n <hTmL>\n <hea")-1, 192 { " \n <hTmL>\n <hea", sizeof(" \n <hTmL>\n <hea")-1,
163 "http://www.example.com/", 193 "http://www.example.com/",
164 "", "text/html" }, 194 "", "text/html" },
165 { " \n <hTmL>\n <hea", sizeof(" \n <hTmL>\n <hea")-1, 195 { " \n <hTmL>\n <hea", sizeof(" \n <hTmL>\n <hea")-1,
166 "http://www.example.com/", 196 "http://www.example.com/",
167 "text/plain", "text/plain" }, 197 "text/plain", "text/plain" },
168 { "BMjlakdsfk", sizeof("BMjlakdsfk")-1, 198 { "BMjlakdsfk", sizeof("BMjlakdsfk")-1,
169 "http://www.example.com/foo", 199 "http://www.example.com/foo",
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 content.resize(1024); 415 content.resize(1024);
386 std::fill(content.begin(), content.end(), 'x'); 416 std::fill(content.begin(), content.end(), 'x');
387 content[1000] = 0x01; 417 content[1000] = 0x01;
388 418
389 // content.size() >= 1024 so the sniff is unambiguous. 419 // content.size() >= 1024 so the sniff is unambiguous.
390 std::string mime_type; 420 std::string mime_type;
391 EXPECT_TRUE(net::SniffMimeType(content.data(), content.size(), GURL(), 421 EXPECT_TRUE(net::SniffMimeType(content.data(), content.size(), GURL(),
392 "text/plain", &mime_type)); 422 "text/plain", &mime_type));
393 EXPECT_EQ("application/octet-stream", mime_type); 423 EXPECT_EQ("application/octet-stream", mime_type);
394 } 424 }
OLDNEW
« no previous file with comments | « net/base/mime_sniffer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698