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

Side by Side Diff: net/test/embedded_test_server/http_request_unittest.cc

Issue 920483004: Added chunked upload support for embedded_test_server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
OLDNEW
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 "net/test/embedded_test_server/http_request.h" 5 #include "net/test/embedded_test_server/http_request.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace net { 9 namespace net {
10 namespace test_server { 10 namespace test_server {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 parser.ProcessChunk("Content-Length: 0\r\n\r\n"); 69 parser.ProcessChunk("Content-Length: 0\r\n\r\n");
70 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest()); 70 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
71 71
72 scoped_ptr<HttpRequest> request = parser.GetRequest(); 72 scoped_ptr<HttpRequest> request = parser.GetRequest();
73 EXPECT_EQ("", request->content); 73 EXPECT_EQ("", request->content);
74 EXPECT_TRUE(request->has_content); 74 EXPECT_TRUE(request->has_content);
75 EXPECT_EQ(1u, request->headers.count("Content-Length")); 75 EXPECT_EQ(1u, request->headers.count("Content-Length"));
76 EXPECT_EQ("0", request->headers["Content-Length"]); 76 EXPECT_EQ("0", request->headers["Content-Length"]);
77 } 77 }
78 78
79 TEST(HttpRequestTest, ParseRequestWithChunkedBody) {
80 HttpRequestParser parser;
81
82 parser.ProcessChunk("POST /foobar.html HTTP/1.1\r\n");
83 parser.ProcessChunk("Transfer-Encoding: chunked\r\n\r\n");
84 parser.ProcessChunk("5\r\nhello\r\n");
85 parser.ProcessChunk("1\r\n \r\n");
86 parser.ProcessChunk("5\r\nworld\r\n");
87 parser.ProcessChunk("0\r\n\r\n");
88 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
89
90 scoped_ptr<HttpRequest> request = parser.GetRequest();
91 EXPECT_EQ("hello world", request->content);
92 EXPECT_TRUE(request->has_content);
93 EXPECT_EQ(1u, request->headers.count("Transfer-Encoding"));
94 EXPECT_EQ("chunked", request->headers["Transfer-Encoding"]);
95 }
mmenke 2015/02/12 18:22:48 Another suggested test: std::string data =
xunjieli 2015/02/12 22:17:22 Done.
96
79 TEST(HttpRequestTest, ParseRequestWithoutBody) { 97 TEST(HttpRequestTest, ParseRequestWithoutBody) {
80 HttpRequestParser parser; 98 HttpRequestParser parser;
81 99
82 parser.ProcessChunk("POST /foobar.html HTTP/1.1\r\n\r\n"); 100 parser.ProcessChunk("POST /foobar.html HTTP/1.1\r\n\r\n");
83 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest()); 101 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
84 102
85 scoped_ptr<HttpRequest> request = parser.GetRequest(); 103 scoped_ptr<HttpRequest> request = parser.GetRequest();
86 EXPECT_EQ("", request->content); 104 EXPECT_EQ("", request->content);
87 EXPECT_FALSE(request->has_content); 105 EXPECT_FALSE(request->has_content);
88 } 106 }
89 107
90 TEST(HttpRequestTest, ParseGet) { 108 TEST(HttpRequestTest, ParseGet) {
91 HttpRequestParser parser; 109 HttpRequestParser parser;
92 110
93 parser.ProcessChunk("GET /foobar.html HTTP/1.1\r\n\r\n"); 111 parser.ProcessChunk("GET /foobar.html HTTP/1.1\r\n\r\n");
94 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest()); 112 ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
95 113
96 scoped_ptr<HttpRequest> request = parser.GetRequest(); 114 scoped_ptr<HttpRequest> request = parser.GetRequest();
97 EXPECT_EQ("/foobar.html", request->relative_url); 115 EXPECT_EQ("/foobar.html", request->relative_url);
98 EXPECT_EQ("GET", request->method_string); 116 EXPECT_EQ("GET", request->method_string);
99 EXPECT_EQ(METHOD_GET, request->method); 117 EXPECT_EQ(METHOD_GET, request->method);
100 EXPECT_EQ("", request->content); 118 EXPECT_EQ("", request->content);
101 EXPECT_FALSE(request->has_content); 119 EXPECT_FALSE(request->has_content);
102 } 120 }
103 121
104 } // namespace test_server 122 } // namespace test_server
105 } // namespace net 123 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698