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

Side by Side Diff: sync/test/fake_server/fake_server_http_post_provider.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 4 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
OLDNEW
(Empty)
1 // Copyright 2014 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 "sync/test/fake_server/fake_server_http_post_provider.h"
6
7 #include <string>
8
9 #include "base/bind.h"
10 #include "base/location.h"
11 #include "base/memory/ref_counted.h"
12 #include "base/memory/weak_ptr.h"
13 #include "base/sequenced_task_runner.h"
14 #include "base/synchronization/waitable_event.h"
15 #include "sync/test/fake_server/fake_server.h"
16
17 using syncer::HttpPostProviderInterface;
18
19 namespace fake_server {
20
21 FakeServerHttpPostProviderFactory::FakeServerHttpPostProviderFactory(
22 const base::WeakPtr<FakeServer>& fake_server,
23 scoped_refptr<base::SequencedTaskRunner> fake_server_task_runner)
24 : fake_server_(fake_server),
25 fake_server_task_runner_(fake_server_task_runner) { }
26
27 FakeServerHttpPostProviderFactory::~FakeServerHttpPostProviderFactory() { }
28
29 void FakeServerHttpPostProviderFactory::Init(
30 const std::string& user_agent,
31 const syncer::BindToTrackerCallback& bind_to_tracker_callback) {}
32
33 HttpPostProviderInterface* FakeServerHttpPostProviderFactory::Create() {
34 FakeServerHttpPostProvider* http =
35 new FakeServerHttpPostProvider(fake_server_, fake_server_task_runner_);
36 http->AddRef();
37 return http;
38 }
39
40 void FakeServerHttpPostProviderFactory::Destroy(
41 HttpPostProviderInterface* http) {
42 static_cast<FakeServerHttpPostProvider*>(http)->Release();
43 }
44
45 FakeServerHttpPostProvider::FakeServerHttpPostProvider(
46 const base::WeakPtr<FakeServer>& fake_server,
47 scoped_refptr<base::SequencedTaskRunner> fake_server_task_runner)
48 : fake_server_(fake_server),
49 fake_server_task_runner_(fake_server_task_runner) { }
50
51 FakeServerHttpPostProvider::~FakeServerHttpPostProvider() { }
52
53 void FakeServerHttpPostProvider::SetExtraRequestHeaders(const char* headers) {
54 // TODO(pvalenzuela): Add assertions on this value.
55 extra_request_headers_.assign(headers);
56 }
57
58 void FakeServerHttpPostProvider::SetURL(const char* url, int port) {
59 // TODO(pvalenzuela): Add assertions on these values.
60 request_url_.assign(url);
61 request_port_ = port;
62 }
63
64 void FakeServerHttpPostProvider::SetPostPayload(const char* content_type,
65 int content_length,
66 const char* content) {
67 request_content_type_.assign(content_type);
68 request_content_.assign(content, content_length);
69 }
70
71 bool FakeServerHttpPostProvider::MakeSynchronousPost(int* error_code,
72 int* response_code) {
73 // It is assumed that a POST is being made to /command.
74 int post_error_code = -1;
75 int post_response_code = -1;
76 std::string post_response;
77
78 base::WaitableEvent post_complete(
79 base::WaitableEvent::ResetPolicy::AUTOMATIC,
80 base::WaitableEvent::InitialState::NOT_SIGNALED);
81 base::Closure signal_closure = base::Bind(&base::WaitableEvent::Signal,
82 base::Unretained(&post_complete));
83
84 bool result = fake_server_task_runner_->PostTask(
85 FROM_HERE,
86 base::Bind(&FakeServer::HandleCommand,
87 fake_server_,
88 base::ConstRef(request_content_),
89 base::ConstRef(signal_closure),
90 &post_error_code,
91 &post_response_code,
92 &post_response));
93
94 if (!result)
95 return false;
96
97 post_complete.Wait();
98 post_error_code_ = post_error_code;
99 post_response_code_ = post_response_code;
100 response_ = post_response;
101
102 *error_code = post_error_code_;
103 *response_code = post_response_code_;
104 return *error_code == 0;
105 }
106
107 int FakeServerHttpPostProvider::GetResponseContentLength() const {
108 return response_.length();
109 }
110
111 const char* FakeServerHttpPostProvider::GetResponseContent() const {
112 return response_.c_str();
113 }
114
115 const std::string FakeServerHttpPostProvider::GetResponseHeaderValue(
116 const std::string& name) const {
117 return std::string();
118 }
119
120 void FakeServerHttpPostProvider::Abort() {
121 }
122
123 } // namespace fake_server
OLDNEW
« no previous file with comments | « sync/test/fake_server/fake_server_http_post_provider.h ('k') | sync/test/fake_server/fake_server_network_resources.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698