diff options
| author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-15 16:08:57 +0200 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-15 16:08:57 +0200 |
| commit | 5466563f4b5b6b86523e3f89bb7f77e5b5270c78 (patch) | |
| tree | 8caccf7cd03a15207cde3ba282c88bf132482a91 /Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp | |
| parent | 33b26980cb24288b5a9f2590ccf32a949281bb79 (diff) | |
| download | qtwebkit-5466563f4b5b6b86523e3f89bb7f77e5b5270c78.tar.gz | |
Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)
WebKit update which introduces the QtWebKitWidgets module that contains the WK1
widgets based API. (In fact it renames QtWebKit to QtWebKitWidgets while we're
working on completing the entire split as part of
https://bugs.webkit.org/show_bug.cgi?id=99314
Diffstat (limited to 'Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp')
| -rw-r--r-- | Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp b/Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp index 358983b83..52905bab1 100644 --- a/Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp +++ b/Source/WebKit/chromium/tests/WebSocketExtensionDispatcherTest.cpp @@ -27,9 +27,11 @@ #include "WebSocketExtensionDispatcher.h" +#include "WebSocketExtensionParser.h" #include "WebSocketExtensionProcessor.h" #include <gtest/gtest.h> +#include <wtf/text/CString.h> #include <wtf/text/StringHash.h> using namespace WebCore; @@ -103,10 +105,10 @@ TEST_F(WebSocketExtensionDispatcherTest, TestParameters) EXPECT_EQ(2, m_parsedParameters[0].size()); HashMap<String, String>::iterator parameter = m_parsedParameters[0].find("max-channels"); EXPECT_TRUE(parameter != m_parsedParameters[0].end()); - EXPECT_EQ("4", parameter->second); + EXPECT_EQ("4", parameter->value); parameter = m_parsedParameters[0].find("flow-control"); EXPECT_TRUE(parameter != m_parsedParameters[0].end()); - EXPECT_TRUE(parameter->second.isNull()); + EXPECT_TRUE(parameter->value.isNull()); } TEST_F(WebSocketExtensionDispatcherTest, TestMultiple) @@ -131,12 +133,12 @@ TEST_F(WebSocketExtensionDispatcherTest, TestMultiple) const HashMap<String, String>& parsedParameters = m_parsedParameters[i]; EXPECT_EQ(expected[i].parameters.size(), m_parsedParameters[i].size()); for (HashMap<String, String>::const_iterator iterator = expectedParameters.begin(); iterator != expectedParameters.end(); ++iterator) { - HashMap<String, String>::const_iterator parsed = parsedParameters.find(iterator->first); + HashMap<String, String>::const_iterator parsed = parsedParameters.find(iterator->key); EXPECT_TRUE(parsed != parsedParameters.end()); - if (iterator->second.isNull()) - EXPECT_TRUE(parsed->second.isNull()); + if (iterator->value.isNull()) + EXPECT_TRUE(parsed->value.isNull()); else - EXPECT_EQ(iterator->second, parsed->second); + EXPECT_EQ(iterator->value, parsed->value); } } } @@ -176,4 +178,34 @@ TEST_F(WebSocketExtensionDispatcherTest, TestInvalid) } } +// Tests for the most complex example at http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-01#section-3.1 +TEST_F(WebSocketExtensionDispatcherTest, TestPerMessageCompressExample) +{ + addMockProcessor("permessage-compress"); + addMockProcessor("bar"); + EXPECT_TRUE(m_extensions.processHeaderValue("permessage-compress; method=\"foo; x=\\\"Hello World\\\", bar\"")); + EXPECT_EQ(1U, m_parsedExtensionTokens.size()); + EXPECT_EQ("permessage-compress", m_parsedExtensionTokens[0]); + String methodParameter = m_parsedParameters[0].find("method")->value; + EXPECT_EQ("foo; x=\"Hello World\", bar", methodParameter); + + CString methodValue = methodParameter.ascii(); + WebSocketExtensionParser parser(methodValue.data(), methodValue.data() + methodValue.length()); + + String token1; + HashMap<String, String> parameters1; + EXPECT_TRUE(parser.parseExtension(token1, parameters1)); + EXPECT_EQ("foo", token1); + EXPECT_EQ(1, parameters1.size()); + HashMap<String, String>::iterator xparameter = parameters1.find("x"); + EXPECT_EQ("x", xparameter->key); + EXPECT_EQ("Hello World", xparameter->value); + + String token2; + HashMap<String, String> parameters2; + EXPECT_TRUE(parser.parseExtension(token2, parameters2)); + EXPECT_EQ("bar", token2); + EXPECT_EQ(0, parameters2.size()); +} + } |
