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

Unified Diff: chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.cc

Issue 11038063: Support chrome_to_mobile job receiving Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix format Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.cc
diff --git a/chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.cc b/chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.cc
new file mode 100644
index 0000000000000000000000000000000000000000..71f575846cd34d11952d9fb1418d970f554719ec
--- /dev/null
+++ b/chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.cc
@@ -0,0 +1,167 @@
+// Copyright 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.
+
+#include "chrome/browser/chrome_to_mobile/common/test_cloud_print_request_factory.h"
+
+#include <string>
+
+namespace chrome_to_mobile {
+
+TestCloudPrintRequest::TestCloudPrintRequest(
+ TestCloudPrintRequestFactory* factory,
+ const GURL& url,
+ Delegate* delegate)
+ : factory_(factory),
+ url_(url),
+ delegate_(delegate),
+ has_completed_(false),
+ response_data_(std::string()),
+ mime_type_(std::string()),
+ success_(true),
+ has_oauth2_access_token_failure_(false),
+ has_cloud_print_auth_error_(false) {
+ factory_->requests_.push_back(this);
+}
+
+TestCloudPrintRequest::~TestCloudPrintRequest() {
+ // Removes itself from |factory_|.
+ std::vector<TestCloudPrintRequest*>* requests = &(factory_->requests_);
+ std::vector<TestCloudPrintRequest*>::iterator it = requests->begin();
+ for (; it != requests->end(); ++it) {
+ if (*it == this) {
+ requests->erase(it);
+ return;
+ }
+ }
+}
+
+void TestCloudPrintRequest::Complete() {
+ delegate_->OnRequestComplete(this);
+ has_completed_= true;
+}
+
+void TestCloudPrintRequest::Complete(
+ const std::string& response_data,
+ const std::string& mime_type,
+ const bool& success,
+ const bool& has_oauth2_access_token_failure,
+ const bool& has_cloud_print_auth_error) {
+ response_data_ = response_data;
+ mime_type_ = mime_type;
+ success_ = success;
+ has_oauth2_access_token_failure_ = has_oauth2_access_token_failure;
+ has_cloud_print_auth_error_ = has_cloud_print_auth_error;
+ Complete();
+}
+
+bool TestCloudPrintRequest::HasCompleted() const {
+ return has_completed_;
+}
+
+std::string TestCloudPrintRequest::GetRequestPath() const {
+ return url_.path();
+}
+
+bool TestCloudPrintRequest::HasOAuth2AccessTokenFailure() const {
+ return has_oauth2_access_token_failure_;
+}
+
+bool TestCloudPrintRequest::HasCloudPrintAuthError() const {
+ return has_cloud_print_auth_error_;
+}
+
+std::string TestCloudPrintRequest::GetResponseMimeType() const {
+ return mime_type_;
+}
+
+std::string TestCloudPrintRequest::GetResponseData(bool* success) const {
+ *success = success_;
+ return response_data_;
+}
+
+ScopedCloudPrintRequestFactory::ScopedCloudPrintRequestFactory(
+ CloudPrintRequestFactory* factory) {
+ DCHECK(!CloudPrintRequest::GetFactory());
+ CloudPrintRequest::SetFactory(factory);
+}
+
+ScopedCloudPrintRequestFactory::~ScopedCloudPrintRequestFactory() {
+ DCHECK(CloudPrintRequest::GetFactory());
+ CloudPrintRequest::SetFactory(NULL);
+}
+
+TestCloudPrintRequestFactory::TestCloudPrintRequestFactory()
+ : ScopedCloudPrintRequestFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
+}
+
+TestCloudPrintRequestFactory::~TestCloudPrintRequestFactory() {
+}
+
+CloudPrintRequest* TestCloudPrintRequestFactory::CreateAndStart(
+ const GURL& url,
+ const std::string& additional_header,
+ const net::URLFetcher::RequestType& request_type,
+ const std::string& post_data_mime_type,
+ const std::string& post_data,
+ const CloudPrintRequest::Settings& settings,
+ CloudPrintRequest::Delegate* delegate) {
+ TestCloudPrintRequest* request = new TestCloudPrintRequest(
+ this, url, delegate);
+ return request;
+}
+
+std::vector<TestCloudPrintRequest*>
+ TestCloudPrintRequestFactory::GetPendingRequests() const {
+ std::vector<TestCloudPrintRequest*> requests;
+ std::vector<TestCloudPrintRequest*>::const_iterator it = requests_.begin();
+ for (; it != requests_.end(); ++it) {
+ TestCloudPrintRequest* request = *it;
+ if (!request->HasCompleted())
+ requests.push_back(request);
+ }
+ return requests;
+}
+
+std::vector<TestCloudPrintRequest*> TestCloudPrintRequestFactory::
+ GetPendingRequestsAtPath(const std::string& path) const {
+ std::vector<TestCloudPrintRequest*> requests;
+ std::vector<TestCloudPrintRequest*>::const_iterator it = requests_.begin();
+ for (; it != requests_.end(); ++it) {
+ TestCloudPrintRequest* request = *it;
+ if (request->GetRequestPath().compare(path) == 0 &&
+ !request->HasCompleted()) {
+ requests.push_back(request);
+ }
+ }
+ return requests;
+}
+
+void TestCloudPrintRequestFactory::CompleteRequestAtPath(
+ const std::string& path, int index,
+ const std::string& response_data, const std::string& mime_type,
+ bool success, bool has_oauth2_access_token_failure,
+ bool has_cloud_print_auth_error) {
+ int count = 0;
+ std::vector<TestCloudPrintRequest*>::const_iterator it = requests_.begin();
+ for (; it != requests_.end(); ++it) {
+ TestCloudPrintRequest* request = *it;
+ if (request->GetRequestPath().compare(path) == 0 &&
+ !request->HasCompleted()) {
+ if (count++ == index) {
+ request->Complete(response_data, mime_type, success,
+ has_oauth2_access_token_failure, has_cloud_print_auth_error);
+ return;
+ }
+ }
+ }
+ NOTREACHED();
+}
+
+void TestCloudPrintRequestFactory::CompleteRequestAtPath(
+ const std::string& path, int index, bool success) {
+ CompleteRequestAtPath(
+ path, index, std::string(), std::string(), success, false, false);
+}
+
+} // namespace chrome_to_mobile

Powered by Google App Engine
This is Rietveld 408576698