diff options
Diffstat (limited to 'chromium/net/test/embedded_test_server/http_response.h')
-rw-r--r-- | chromium/net/test/embedded_test_server/http_response.h | 71 |
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_ |