summaryrefslogtreecommitdiff
path: root/chromium/net/test/embedded_test_server/http_response.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/test/embedded_test_server/http_response.h')
-rw-r--r--chromium/net/test/embedded_test_server/http_response.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/chromium/net/test/embedded_test_server/http_response.h b/chromium/net/test/embedded_test_server/http_response.h
new file mode 100644
index 00000000000..422a52553ea
--- /dev/null
+++ b/chromium/net/test/embedded_test_server/http_response.h
@@ -0,0 +1,71 @@
+// Copyright (c) 2012 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.
+
+#ifndef NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_
+#define NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "net/http/http_status_code.h"
+
+namespace net {
+namespace test_server {
+
+// Interface for HTTP response implementations.
+class HttpResponse{
+ public:
+ virtual ~HttpResponse();
+
+ // Returns raw contents to be written to the network socket
+ // in response. If you intend to make this a valid HTTP response,
+ // it should start with "HTTP/x.x" line, followed by response headers.
+ virtual std::string ToResponseString() const = 0;
+};
+
+// This class is used to handle basic HTTP responses with commonly used
+// response headers such as "Content-Type".
+class BasicHttpResponse : public HttpResponse {
+ public:
+ BasicHttpResponse();
+ virtual ~BasicHttpResponse();
+
+ // The response code.
+ HttpStatusCode code() const { return code_; }
+ void set_code(HttpStatusCode code) { code_ = code; }
+
+ // The content of the response.
+ const std::string& content() const { return content_; }
+ void set_content(const std::string& content) { content_ = content; }
+
+ // The content type.
+ const std::string& content_type() const { return content_type_; }
+ void set_content_type(const std::string& content_type) {
+ content_type_ = content_type;
+ }
+
+ // Adds a custom header.
+ void AddCustomHeader(const std::string& key, const std::string& value) {
+ custom_headers_.push_back(std::make_pair(key, value));
+ }
+
+ // Generates and returns a http response string.
+ virtual std::string ToResponseString() const OVERRIDE;
+
+ private:
+ HttpStatusCode code_;
+ std::string content_;
+ std::string content_type_;
+ std::vector<std::pair<std::string, std::string> > custom_headers_;
+
+ DISALLOW_COPY_AND_ASSIGN(BasicHttpResponse);
+};
+
+} // namespace test_server
+} // namespace net
+
+#endif // NET_TEST_EMBEDDED_TEST_SERVER_HTTP_RESPONSE_H_