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

Side by Side Diff: sync/notifier/gcm_network_channel_unittest.cc

Issue 182333003: Build correct URL for cacheinvalidation endpoint. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@RollCacheInvalidations
Patch Set: Created 6 years, 9 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "google_apis/gaia/google_service_auth_error.h" 6 #include "google_apis/gaia/google_service_auth_error.h"
7 #include "net/url_request/test_url_fetcher_factory.h" 7 #include "net/url_request/test_url_fetcher_factory.h"
8 #include "net/url_request/url_request_test_util.h" 8 #include "net/url_request/url_request_test_util.h"
9 #include "sync/notifier/gcm_network_channel.h" 9 #include "sync/notifier/gcm_network_channel.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 namespace syncer { 12 namespace syncer {
13 namespace {
14 13
15 class TestGCMNetworkChannelDelegate : public GCMNetworkChannelDelegate { 14 class TestGCMNetworkChannelDelegate : public GCMNetworkChannelDelegate {
16 public: 15 public:
17 TestGCMNetworkChannelDelegate() 16 TestGCMNetworkChannelDelegate()
18 : register_call_count_(0) {} 17 : register_call_count_(0) {}
19 18
20 virtual void RequestToken(RequestTokenCallback callback) OVERRIDE { 19 virtual void RequestToken(RequestTokenCallback callback) OVERRIDE {
21 request_token_callback = callback; 20 request_token_callback = callback;
22 } 21 }
23 22
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 this, &GCMNetworkChannelTest::OnIncomingMessage)); 100 this, &GCMNetworkChannelTest::OnIncomingMessage));
102 url_fetcher_factory_.reset(new net::FakeURLFetcherFactory(NULL, 101 url_fetcher_factory_.reset(new net::FakeURLFetcherFactory(NULL,
103 base::Bind(&GCMNetworkChannelTest::CreateURLFetcher, 102 base::Bind(&GCMNetworkChannelTest::CreateURLFetcher,
104 base::Unretained(this)))); 103 base::Unretained(this))));
105 } 104 }
106 105
107 virtual void TearDown() { 106 virtual void TearDown() {
108 gcm_network_channel_->RemoveObserver(this); 107 gcm_network_channel_->RemoveObserver(this);
109 } 108 }
110 109
110 static GURL BuildUrl(const std::string& registration_id) {
111 return GCMNetworkChannel::BuildUrl(registration_id);
112 }
113
111 virtual void OnNetworkChannelStateChanged( 114 virtual void OnNetworkChannelStateChanged(
112 InvalidatorState invalidator_state) OVERRIDE { 115 InvalidatorState invalidator_state) OVERRIDE {
113 } 116 }
114 117
115 void OnIncomingMessage(std::string incoming_message) { 118 void OnIncomingMessage(std::string incoming_message) {
116 } 119 }
117 120
118 GCMNetworkChannel* network_channel() { 121 GCMNetworkChannel* network_channel() {
119 return gcm_network_channel_.get(); 122 return gcm_network_channel_.get();
120 } 123 }
(...skipping 29 matching lines...) Expand all
150 private: 153 private:
151 base::MessageLoop message_loop_; 154 base::MessageLoop message_loop_;
152 TestGCMNetworkChannelDelegate* delegate_; 155 TestGCMNetworkChannelDelegate* delegate_;
153 scoped_ptr<GCMNetworkChannel> gcm_network_channel_; 156 scoped_ptr<GCMNetworkChannel> gcm_network_channel_;
154 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; 157 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
155 scoped_ptr<net::FakeURLFetcherFactory> url_fetcher_factory_; 158 scoped_ptr<net::FakeURLFetcherFactory> url_fetcher_factory_;
156 int url_fetchers_created_count_; 159 int url_fetchers_created_count_;
157 }; 160 };
158 161
159 TEST_F(GCMNetworkChannelTest, HappyCase) { 162 TEST_F(GCMNetworkChannelTest, HappyCase) {
160 GURL url("http://invalid.url.com"); 163 url_fetcher_factory()->SetFakeResponse(BuildUrl("registration.id"),
161 url_fetcher_factory()->SetFakeResponse(url, std::string(), net::HTTP_OK, 164 std::string(),
165 net::HTTP_OK,
162 net::URLRequestStatus::SUCCESS); 166 net::URLRequestStatus::SUCCESS);
163 167
164 // After construction GCMNetworkChannel should have called Register. 168 // After construction GCMNetworkChannel should have called Register.
165 EXPECT_FALSE(delegate()->register_callback.is_null()); 169 EXPECT_FALSE(delegate()->register_callback.is_null());
166 // Return valid registration id. 170 // Return valid registration id.
167 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS); 171 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS);
168 172
169 network_channel()->SendMessage("abra.cadabra"); 173 network_channel()->SendMessage("abra.cadabra");
170 // SendMessage should have triggered RequestToken. No HTTP request should be 174 // SendMessage should have triggered RequestToken. No HTTP request should be
171 // started yet. 175 // started yet.
(...skipping 28 matching lines...) Expand all
200 // GcmNetworkChannel should give up trying. 204 // GcmNetworkChannel should give up trying.
201 EXPECT_EQ(2, delegate()->register_call_count_); 205 EXPECT_EQ(2, delegate()->register_call_count_);
202 206
203 network_channel()->SendMessage("abra.cadabra"); 207 network_channel()->SendMessage("abra.cadabra");
204 // SendMessage shouldn't trigger RequestToken. 208 // SendMessage shouldn't trigger RequestToken.
205 EXPECT_TRUE(delegate()->request_token_callback.is_null()); 209 EXPECT_TRUE(delegate()->request_token_callback.is_null());
206 EXPECT_EQ(0, url_fetchers_created_count()); 210 EXPECT_EQ(0, url_fetchers_created_count());
207 } 211 }
208 212
209 TEST_F(GCMNetworkChannelTest, RegisterFinishesAfterSendMessage) { 213 TEST_F(GCMNetworkChannelTest, RegisterFinishesAfterSendMessage) {
210 GURL url("http://invalid.url.com"); 214 url_fetcher_factory()->SetFakeResponse(BuildUrl("registration.id"),
211 url_fetcher_factory()->SetFakeResponse(url, "", net::HTTP_OK, 215 "",
212 net::URLRequestStatus::SUCCESS); 216 net::HTTP_OK,
217 net::URLRequestStatus::SUCCESS);
213 218
214 // After construction GCMNetworkChannel should have called Register. 219 // After construction GCMNetworkChannel should have called Register.
215 EXPECT_FALSE(delegate()->register_callback.is_null()); 220 EXPECT_FALSE(delegate()->register_callback.is_null());
216 221
217 network_channel()->SendMessage("abra.cadabra"); 222 network_channel()->SendMessage("abra.cadabra");
218 // SendMessage shouldn't trigger RequestToken. 223 // SendMessage shouldn't trigger RequestToken.
219 EXPECT_TRUE(delegate()->request_token_callback.is_null()); 224 EXPECT_TRUE(delegate()->request_token_callback.is_null());
220 EXPECT_EQ(url_fetchers_created_count(), 0); 225 EXPECT_EQ(url_fetchers_created_count(), 0);
221 226
222 // Return valid registration id. 227 // Return valid registration id.
(...skipping 22 matching lines...) Expand all
245 // RequestToken returns failure. 250 // RequestToken returns failure.
246 delegate()->request_token_callback.Run( 251 delegate()->request_token_callback.Run(
247 GoogleServiceAuthError::FromConnectionError(1), ""); 252 GoogleServiceAuthError::FromConnectionError(1), "");
248 253
249 // Should be no HTTP requests. 254 // Should be no HTTP requests.
250 EXPECT_EQ(url_fetchers_created_count(), 0); 255 EXPECT_EQ(url_fetchers_created_count(), 0);
251 } 256 }
252 257
253 TEST_F(GCMNetworkChannelTest, AuthErrorFromServer) { 258 TEST_F(GCMNetworkChannelTest, AuthErrorFromServer) {
254 // Setup fake response to return AUTH_ERROR. 259 // Setup fake response to return AUTH_ERROR.
255 GURL url("http://invalid.url.com"); 260 url_fetcher_factory()->SetFakeResponse(BuildUrl("registration.id"),
256 url_fetcher_factory()->SetFakeResponse(url, "", net::HTTP_UNAUTHORIZED, 261 "",
257 net::URLRequestStatus::SUCCESS); 262 net::HTTP_UNAUTHORIZED,
263 net::URLRequestStatus::SUCCESS);
258 264
259 // After construction GCMNetworkChannel should have called Register. 265 // After construction GCMNetworkChannel should have called Register.
260 EXPECT_FALSE(delegate()->register_callback.is_null()); 266 EXPECT_FALSE(delegate()->register_callback.is_null());
261 // Return valid registration id. 267 // Return valid registration id.
262 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS); 268 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS);
263 269
264 network_channel()->SendMessage("abra.cadabra"); 270 network_channel()->SendMessage("abra.cadabra");
265 // SendMessage should have triggered RequestToken. No HTTP request should be 271 // SendMessage should have triggered RequestToken. No HTTP request should be
266 // started yet. 272 // started yet.
267 EXPECT_FALSE(delegate()->request_token_callback.is_null()); 273 EXPECT_FALSE(delegate()->request_token_callback.is_null());
(...skipping 16 matching lines...) Expand all
284 290
285 TEST_F(GCMNetworkChannelTest, RequestTokenNeverCompletes) { 291 TEST_F(GCMNetworkChannelTest, RequestTokenNeverCompletes) {
286 network_channel()->SendMessage("abra.cadabra"); 292 network_channel()->SendMessage("abra.cadabra");
287 // Return valid registration id. 293 // Return valid registration id.
288 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS); 294 delegate()->register_callback.Run("registration.id", gcm::GCMClient::SUCCESS);
289 // RequestToken should be called by now. Let's not complete and see what 295 // RequestToken should be called by now. Let's not complete and see what
290 // happens. 296 // happens.
291 EXPECT_FALSE(delegate()->request_token_callback.is_null()); 297 EXPECT_FALSE(delegate()->request_token_callback.is_null());
292 } 298 }
293 299
294 } // namespace
295 } // namespace syncer 300 } // namespace syncer
OLDNEW
« sync/notifier/gcm_network_channel.cc ('K') | « sync/notifier/gcm_network_channel.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698