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

Side by Side Diff: chrome/test/webdriver/http_response.cc

Issue 23526047: Delete old chromedriver code, and remove mongoose webserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 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 | « chrome/test/webdriver/http_response.h ('k') | chrome/test/webdriver/http_response_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/test/webdriver/http_response.h"
6
7 #include "base/format_macros.h"
8 #include "base/strings/string_util.h"
9 #include "base/strings/stringprintf.h"
10
11 namespace webdriver {
12
13 const int HttpResponse::kOk = 200;
14 const int HttpResponse::kNoContent = 204;
15 const int HttpResponse::kSeeOther = 303;
16 const int HttpResponse::kNotModified = 304;
17 const int HttpResponse::kBadRequest = 400;
18 const int HttpResponse::kForbidden = 403;
19 const int HttpResponse::kNotFound = 404;
20 const int HttpResponse::kMethodNotAllowed = 405;
21 const int HttpResponse::kInternalServerError = 500;
22 const int HttpResponse::kNotImplemented = 501;
23
24 namespace {
25
26 const char* kContentLengthHeader = "content-length";
27
28 } // namespace
29
30 HttpResponse::HttpResponse()
31 : status_(kOk) {
32 }
33
34 HttpResponse::HttpResponse(int status)
35 : status_(status) {
36 }
37
38 HttpResponse::~HttpResponse() {
39 }
40
41 void HttpResponse::AddHeader(const std::string& name,
42 const std::string& value) {
43 std::string lower_case_name(StringToLowerASCII(name));
44 HeaderMap::iterator header = headers_.find(lower_case_name);
45 if (header == headers_.end()) {
46 headers_[lower_case_name] = value;
47 } else {
48 header->second.append("," + value);
49 }
50 }
51
52 bool HttpResponse::GetHeader(const std::string& name,
53 std::string* value) const {
54 std::string lower_case_name(StringToLowerASCII(name));
55 HeaderMap::const_iterator header = headers_.find(lower_case_name);
56
57 if (header == headers_.end()) {
58 return false;
59 }
60
61 if (value) {
62 *value = header->second;
63 }
64
65 return true;
66 }
67
68 bool HttpResponse::RemoveHeader(const std::string& name) {
69 std::string lower_case_name(StringToLowerASCII(name));
70 HeaderMap::iterator header = headers_.find(lower_case_name);
71
72 if (header == headers_.end()) {
73 return false;
74 }
75
76 headers_.erase(header);
77 return true;
78 }
79
80 void HttpResponse::ClearHeaders() {
81 headers_.clear();
82 }
83
84 void HttpResponse::SetMimeType(const std::string& mime_type) {
85 UpdateHeader("Content-Type", mime_type);
86 }
87
88 std::string HttpResponse::GetReasonPhrase() const {
89 switch (status_) {
90 case kOk:
91 return "OK";
92 case kNoContent:
93 return "No Content";
94 case kSeeOther:
95 return "See Other";
96 case kNotModified:
97 return "Not Modified";
98 case kBadRequest:
99 return "Bad Request";
100 case kForbidden:
101 return "Forbidden";
102 case kNotFound:
103 return "Not Found";
104 case kMethodNotAllowed:
105 return "Method Not Allowed";
106 case kInternalServerError:
107 return "Internal Server Error";
108 case kNotImplemented:
109 return "Not Implemented";
110 default:
111 return "Unknown";
112 }
113 }
114
115 void HttpResponse::GetData(std::string* data) const {
116 *data += base::StringPrintf("HTTP/1.1 %d %s\r\n",
117 status_, GetReasonPhrase().c_str());
118
119 typedef HttpResponse::HeaderMap::const_iterator HeaderIter;
120 for (HeaderIter header = headers_.begin(); header != headers_.end();
121 ++header) {
122 *data += header->first + ":" + header->second + "\r\n";
123 }
124 std::string length;
125 if (!GetHeader(kContentLengthHeader, &length)) {
126 *data += base::StringPrintf(
127 "%s:%" PRIuS "\r\n", kContentLengthHeader, body_.length());
128 }
129 *data += "\r\n";
130
131 if (body_.length())
132 *data += body_;
133 }
134
135 int HttpResponse::status() const {
136 return status_;
137 }
138
139 void HttpResponse::set_status(int status) {
140 status_ = status;
141 }
142
143 const std::string& HttpResponse::body() const {
144 return body_;
145 }
146
147 void HttpResponse::set_body(const std::string& body) {
148 body_ = body;
149 }
150
151 void HttpResponse::UpdateHeader(const std::string& name,
152 const std::string& new_value) {
153 RemoveHeader(name);
154 AddHeader(name, new_value);
155 }
156
157 } // namespace webdriver
OLDNEW
« no previous file with comments | « chrome/test/webdriver/http_response.h ('k') | chrome/test/webdriver/http_response_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698