Index: chrome/test/webdriver/webdriver_dispatch.h |
diff --git a/chrome/test/webdriver/webdriver_dispatch.h b/chrome/test/webdriver/webdriver_dispatch.h |
deleted file mode 100644 |
index 5aa5a73e35194dfdd6c306badb1b459e33827120..0000000000000000000000000000000000000000 |
--- a/chrome/test/webdriver/webdriver_dispatch.h |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-// 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 CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_ |
-#define CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "chrome/test/webdriver/commands/response.h" |
-#include "third_party/mongoose/mongoose.h" |
- |
-namespace base { |
-class DictionaryValue; |
-class WaitableEvent; |
-} |
- |
-namespace webdriver { |
- |
-class Command; |
-class HttpResponse; |
- |
-namespace mongoose { |
- |
-typedef void (HttpCallback)(struct mg_connection* connection, |
- const struct mg_request_info* request_info, |
- void* user_data); |
- |
-struct CallbackDetails { |
- CallbackDetails() { |
- } |
- |
- CallbackDetails(const std::string &uri_regex, |
- HttpCallback* func, |
- void* user_data) |
- : uri_regex_(uri_regex), |
- func_(func), |
- user_data_(user_data) { |
- } |
- |
- std::string uri_regex_; |
- HttpCallback* func_; |
- void* user_data_; |
-}; |
- |
-} // namespace mongoose |
- |
-namespace internal { |
- |
-// Converts a |Response| into a |HttpResponse| to be returned to the client. |
-// This function is exposed for testing. |
-void PrepareHttpResponse(const Response& command_response, |
- HttpResponse* const http_response); |
- |
-// Sends a |response| to a WebDriver command back to the client. |
-// |connection| is the communication pipe to the HTTP server and |
-// |request_info| contains any data sent by the user. |
-void SendResponse(struct mg_connection* const connection, |
- const std::string& request_method, |
- const Response& response); |
- |
-// Parses the request info and returns whether parsing was successful. If not, |
-// |response| has been modified with the error. |
-bool ParseRequestInfo(const struct mg_request_info* const request_info, |
- struct mg_connection* const connection, |
- std::string* method, |
- std::vector<std::string>* path_segments, |
- base::DictionaryValue** parameters, |
- Response* const response); |
- |
-// Allows the bulk of the implementation of |Dispatch| to be moved out of this |
-// header file. Takes ownership of |command|. |
-void DispatchHelper(Command* const command, |
- const std::string& method, |
- Response* const response); |
- |
-} // namespace internal |
- |
-// Template function for dispatching commands sent to the WebDriver REST |
-// service. |CommandType| must be a subtype of |webdriver::Command|. |
-template<typename CommandType> |
-void Dispatch(struct mg_connection* connection, |
- const struct mg_request_info* request_info, |
- void* user_data) { |
- std::string method; |
- std::vector<std::string> path_segments; |
- base::DictionaryValue* parameters = NULL; |
- Response response; |
- if (internal::ParseRequestInfo(request_info, |
- connection, |
- &method, |
- &path_segments, |
- ¶meters, |
- &response)) { |
- internal::DispatchHelper( |
- new CommandType(path_segments, parameters), |
- method, |
- &response); |
- } |
- internal::SendResponse(connection, |
- request_info->request_method, |
- response); |
-} |
- |
-class Dispatcher { |
- public: |
- // Creates a new dispatcher that will register all URL callbacks with the |
- // given |context|. Each callback's pattern will be prefixed with the provided |
- // |root|. |
- explicit Dispatcher(const std::string& root); |
- ~Dispatcher(); |
- |
- bool ProcessHttpRequest(struct mg_connection* conn, |
- const struct mg_request_info* request_info); |
- |
- // Registers a callback for a WebDriver command using the given URL |pattern|. |
- // The |CommandType| must be a subtype of |webdriver::Command|. |
- template<typename CommandType> |
- void Add(const std::string& pattern); |
- |
- // Registers a callback that will shutdown the server. When any HTTP request |
- // is received at this URL |pattern|, the |shutdown_event| will be signaled. |
- void AddShutdown(const std::string& pattern, |
- base::WaitableEvent* shutdown_event); |
- |
- // Registers a callback that responds to with this server's status |
- // information, as defined by the WebDriver wire protocol: |
- // http://code.google.com/p/selenium/wiki/JsonWireProtocol#GET_/status. |
- void AddStatus(const std::string& pattern); |
- |
- // Registers a callback for the given pattern that will return the current |
- // WebDriver log contents. |
- void AddLog(const std::string& pattern); |
- |
- // Registers a callback that will always respond with a |
- // "HTTP/1.1 501 Not Implemented" message. |
- void SetNotImplemented(const std::string& pattern); |
- |
- // Registers a callback that will respond for all other requests with a |
- // "HTTP/1.1 403 Forbidden" message. Should be called only after registering |
- // other callbacks. |
- void ForbidAllOtherRequests(); |
- |
- private: |
- void AddCallback(const std::string& uri_pattern, |
- webdriver::mongoose::HttpCallback callback, |
- void* user_data); |
- |
- std::vector<webdriver::mongoose::CallbackDetails> callbacks_; |
- const std::string url_base_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Dispatcher); |
-}; |
- |
- |
-template <typename CommandType> |
-void Dispatcher::Add(const std::string& pattern) { |
- AddCallback(url_base_ + pattern, &Dispatch<CommandType>, NULL); |
-} |
- |
-} // namespace webdriver |
- |
-#endif // CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_ |