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 "platform/network/HTTPParsers.h" | 5 #include "platform/network/HTTPParsers.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 #include "wtf/MathExtras.h" | 8 #include "wtf/MathExtras.h" |
9 #include "wtf/text/AtomicString.h" | 9 #include "wtf/text/AtomicString.h" |
10 | 10 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(" t")); | 126 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(" t")); |
127 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("t ")); | 127 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("t ")); |
128 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("t\0t", 3))); | 128 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("t\0t", 3))); |
129 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("\0", 1))); | 129 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("\0", 1))); |
130 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test \0, 6"))); | 130 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test \0, 6"))); |
131 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test "))); | 131 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test "))); |
132 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("test\r\n data")); | 132 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("test\r\n data")); |
133 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String(hiraganaA))); | 133 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String(hiraganaA))); |
134 } | 134 } |
135 | 135 |
| 136 TEST(HTTPParsersTest, ExtractMIMETypeFromMediaType) |
| 137 { |
| 138 const AtomicString textHtml("text/html", AtomicString::ConstructFromLiteral)
; |
| 139 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html; ch
arset=iso-8859-1"))); |
| 140 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html ; c
harset=iso-8859-1"))); |
| 141 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html,tex
t/plain"))); |
| 142 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html , t
ext/plain"))); |
| 143 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html\t,\
ttext/plain"))); |
| 144 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString(" text/html
"))); |
| 145 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("\ttext/html \
t"))); |
| 146 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("\r\ntext/html
\r\n"))); |
| 147 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text/html,tex
t/plain;charset=iso-8859-1"))); |
| 148 EXPECT_EQ(emptyString(), extractMIMETypeFromMediaType(AtomicString(", text/h
tml"))); |
| 149 EXPECT_EQ(emptyString(), extractMIMETypeFromMediaType(AtomicString("; text/h
tml"))); |
| 150 |
| 151 // Preserves case. |
| 152 EXPECT_EQ("tExt/hTMl", extractMIMETypeFromMediaType(AtomicString("tExt/hTMl"
))); |
| 153 |
| 154 // If no normalization is required, the same AtomicString should be returned
. |
| 155 const AtomicString& passthrough = extractMIMETypeFromMediaType(textHtml); |
| 156 EXPECT_EQ(textHtml.impl(), passthrough.impl()); |
| 157 |
| 158 // These tests cover current behavior, but are not necessarily |
| 159 // expected/wanted behavior. (See FIXME in implementation.) |
| 160 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text / html")
)); |
| 161 // U+2003, EM SPACE (UTF-8: E2 80 83) |
| 162 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString::fromUTF8("tex
t\xE2\x80\x83/ html"))); |
| 163 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text\r\n/\nht
ml"))); |
| 164 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("text\n/\nhtml
"))); |
| 165 EXPECT_EQ(textHtml, extractMIMETypeFromMediaType(AtomicString("t e x t / h t
m l"))); |
| 166 } |
| 167 |
136 } // namespace blink | 168 } // namespace blink |
OLD | NEW |