diff options
author | tyoshino@google.com <tyoshino@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 11:19:56 +0000 |
---|---|---|
committer | tyoshino@google.com <tyoshino@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 11:19:56 +0000 |
commit | 7ee45785e32196ea2b4b32ef3aed93c4a962aa2f (patch) | |
tree | 345ffffbc492c869288cfe25fd7b7a7592338d0e /net/websockets/websocket_net_log_params_unittest.cc | |
parent | 250bad43d9d53cefbe36fd53506b2ea45f9c2ae2 (diff) | |
download | chromium_src-7ee45785e32196ea2b4b32ef3aed93c4a962aa2f.zip chromium_src-7ee45785e32196ea2b4b32ef3aed93c4a962aa2f.tar.gz chromium_src-7ee45785e32196ea2b4b32ef3aed93c4a962aa2f.tar.bz2 |
Stop using SplitStringDontTrim in NetLogWebSocketHandshakeParameter::ToValue()
Since key3 may contain some line feeds, we cannot use SplitStringDontTrim.
We use this opportunity to make parser recongize only CR+LF as a separator.
R=ukai
BUG=62918
TEST=Doesn't crash when we open some page using WebSocket and chrome://net-internals.
Review URL: http://codereview.chromium.org/4874001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65933 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/websockets/websocket_net_log_params_unittest.cc')
-rw-r--r-- | net/websockets/websocket_net_log_params_unittest.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/net/websockets/websocket_net_log_params_unittest.cc b/net/websockets/websocket_net_log_params_unittest.cc new file mode 100644 index 0000000..7339962 --- /dev/null +++ b/net/websockets/websocket_net_log_params_unittest.cc @@ -0,0 +1,47 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <string> + +#include "base/ref_counted.h" +#include "base/scoped_ptr.h" +#include "base/values.h" +#include "net/websockets/websocket_net_log_params.h" +#include "testing/gtest/include/gtest/gtest.h" + +TEST(NetLogWebSocketHandshakeParameterTest, ToValue) { + ListValue* list = new ListValue(); + list->Append(new StringValue("GET /demo HTTP/1.1")); + list->Append(new StringValue("Host: example.com")); + list->Append(new StringValue("Connection: Upgrade")); + list->Append(new StringValue("Sec-WebSocket-Key2: 12998 5 Y3 1 .P00")); + list->Append(new StringValue("Sec-WebSocket-Protocol: sample")); + list->Append(new StringValue("Upgrade: WebSocket")); + list->Append(new StringValue("Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5")); + list->Append(new StringValue("Origin: http://example.com")); + list->Append(new StringValue("")); + list->Append(new StringValue("\\x00\\x01\\x0a\\x0d\\xff\\xfe\\x0d\\x0a")); + + DictionaryValue expected; + expected.Set("headers", list); + + const std::string key("\x00\x01\x0a\x0d\xff\xfe\x0d\x0a", 8); + const std::string testInput = + "GET /demo HTTP/1.1\r\n" + "Host: example.com\r\n" + "Connection: Upgrade\r\n" + "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" + "Sec-WebSocket-Protocol: sample\r\n" + "Upgrade: WebSocket\r\n" + "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" + "Origin: http://example.com\r\n" + "\r\n" + + key; + + scoped_refptr<net::NetLogWebSocketHandshakeParameter> parameter( + new net::NetLogWebSocketHandshakeParameter(testInput)); + scoped_ptr<Value> actual(parameter->ToValue()); + + EXPECT_TRUE(expected.Equals(actual.get())); +} |