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

Side by Side Diff: content/browser/geofencing/geofencing_manager_unittest.cc

Issue 1549113002: Switch to standard integer types in content/browser/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 12 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 <stdint.h>
6
5 #include "base/callback.h" 7 #include "base/callback.h"
6 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
7 #include "content/browser/geofencing/geofencing_manager.h" 9 #include "content/browser/geofencing/geofencing_manager.h"
8 #include "content/browser/geofencing/geofencing_service.h" 10 #include "content/browser/geofencing/geofencing_service.h"
9 #include "content/browser/service_worker/embedded_worker_test_helper.h" 11 #include "content/browser/service_worker/embedded_worker_test_helper.h"
10 #include "content/browser/service_worker/service_worker_context_wrapper.h" 12 #include "content/browser/service_worker/service_worker_context_wrapper.h"
11 #include "content/public/test/test_browser_thread_bundle.h" 13 #include "content/public/test/test_browser_thread_bundle.h"
12 #include "content/public/test/test_utils.h" 14 #include "content/public/test/test_utils.h"
13 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/WebKit/public/platform/WebCircularGeofencingRegion.h" 17 #include "third_party/WebKit/public/platform/WebCircularGeofencingRegion.h"
16 18
17 using blink::WebCircularGeofencingRegion; 19 using blink::WebCircularGeofencingRegion;
18 typedef std::map<std::string, WebCircularGeofencingRegion> RegionMap; 20 typedef std::map<std::string, WebCircularGeofencingRegion> RegionMap;
19 21
20 namespace { 22 namespace {
21 23
22 static const char* kTestRegionId = "region-id"; 24 static const char* kTestRegionId = "region-id";
23 static const int64 kTestGeofencingRegistrationId = 42; 25 static const int64_t kTestGeofencingRegistrationId = 42;
24 static const int64 kTestGeofencingRegistrationId2 = 43; 26 static const int64_t kTestGeofencingRegistrationId2 = 43;
25 27
26 bool RegionsMatch(const WebCircularGeofencingRegion& expected, 28 bool RegionsMatch(const WebCircularGeofencingRegion& expected,
27 const WebCircularGeofencingRegion& arg) { 29 const WebCircularGeofencingRegion& arg) {
28 return testing::Matches(expected.latitude)(arg.latitude) && 30 return testing::Matches(expected.latitude)(arg.latitude) &&
29 testing::Matches(expected.longitude)(arg.longitude) && 31 testing::Matches(expected.longitude)(arg.longitude) &&
30 testing::Matches(expected.radius)(arg.radius); 32 testing::Matches(expected.radius)(arg.radius);
31 } 33 }
32 } 34 }
33 35
34 namespace content { 36 namespace content {
35 37
36 class TestGeofencingService : public GeofencingService { 38 class TestGeofencingService : public GeofencingService {
37 public: 39 public:
38 TestGeofencingService() : is_available_(false) {} 40 TestGeofencingService() : is_available_(false) {}
39 41
40 bool IsServiceAvailable() override { return is_available_; } 42 bool IsServiceAvailable() override { return is_available_; }
41 43
42 void SetIsServiceAvailable(bool is_available) { 44 void SetIsServiceAvailable(bool is_available) {
43 is_available_ = is_available; 45 is_available_ = is_available;
44 } 46 }
45 47
46 MOCK_METHOD2(RegisterRegion, 48 MOCK_METHOD2(RegisterRegion,
47 int64(const WebCircularGeofencingRegion& region, 49 int64_t(const WebCircularGeofencingRegion& region,
48 GeofencingRegistrationDelegate* delegate)); 50 GeofencingRegistrationDelegate* delegate));
49 MOCK_METHOD1(UnregisterRegion, void(int64 geofencing_registration_id)); 51 MOCK_METHOD1(UnregisterRegion, void(int64_t geofencing_registration_id));
50 52
51 private: 53 private:
52 bool is_available_; 54 bool is_available_;
53 }; 55 };
54 56
55 ACTION_P(SaveDelegate, delegate) { 57 ACTION_P(SaveDelegate, delegate) {
56 *delegate = arg1; 58 *delegate = arg1;
57 } 59 }
58 60
59 ACTION_P(QuitRunner, runner) { 61 ACTION_P(QuitRunner, runner) {
(...skipping 21 matching lines...) Expand all
81 return result_; 83 return result_;
82 } 84 }
83 85
84 private: 86 private:
85 bool was_called_; 87 bool was_called_;
86 GeofencingStatus result_; 88 GeofencingStatus result_;
87 scoped_refptr<MessageLoopRunner> runner_; 89 scoped_refptr<MessageLoopRunner> runner_;
88 }; 90 };
89 91
90 void SaveResponseCallback(bool* called, 92 void SaveResponseCallback(bool* called,
91 int64* store_registration_id, 93 int64_t* store_registration_id,
92 ServiceWorkerStatusCode status, 94 ServiceWorkerStatusCode status,
93 const std::string& status_message, 95 const std::string& status_message,
94 int64 registration_id) { 96 int64_t registration_id) {
95 EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status); 97 EXPECT_EQ(SERVICE_WORKER_OK, status) << ServiceWorkerStatusToString(status);
96 *called = true; 98 *called = true;
97 *store_registration_id = registration_id; 99 *store_registration_id = registration_id;
98 } 100 }
99 101
100 ServiceWorkerContextCore::RegistrationCallback MakeRegisteredCallback( 102 ServiceWorkerContextCore::RegistrationCallback MakeRegisteredCallback(
101 bool* called, 103 bool* called,
102 int64* store_registration_id) { 104 int64_t* store_registration_id) {
103 return base::Bind(&SaveResponseCallback, called, store_registration_id); 105 return base::Bind(&SaveResponseCallback, called, store_registration_id);
104 } 106 }
105 107
106 void CallCompletedCallback(bool* called, ServiceWorkerStatusCode) { 108 void CallCompletedCallback(bool* called, ServiceWorkerStatusCode) {
107 *called = true; 109 *called = true;
108 } 110 }
109 111
110 ServiceWorkerContextCore::UnregistrationCallback MakeUnregisteredCallback( 112 ServiceWorkerContextCore::UnregistrationCallback MakeUnregisteredCallback(
111 bool* called) { 113 bool* called) {
112 return base::Bind(&CallCompletedCallback, called); 114 return base::Bind(&CallCompletedCallback, called);
(...skipping 27 matching lines...) Expand all
140 service_ = nullptr; 142 service_ = nullptr;
141 helper_.reset(); 143 helper_.reset();
142 } 144 }
143 145
144 void SetHasProviderForTests() { service_->SetIsServiceAvailable(true); } 146 void SetHasProviderForTests() { service_->SetIsServiceAvailable(true); }
145 147
146 scoped_refptr<ServiceWorkerRegistration> RegisterServiceWorker( 148 scoped_refptr<ServiceWorkerRegistration> RegisterServiceWorker(
147 const std::string& name) { 149 const std::string& name) {
148 GURL pattern("http://www.example.com/" + name); 150 GURL pattern("http://www.example.com/" + name);
149 GURL script_url("http://www.example.com/service_worker.js"); 151 GURL script_url("http://www.example.com/service_worker.js");
150 int64 registration_id = kInvalidServiceWorkerRegistrationId; 152 int64_t registration_id = kInvalidServiceWorkerRegistrationId;
151 bool called = false; 153 bool called = false;
152 helper_->context()->RegisterServiceWorker( 154 helper_->context()->RegisterServiceWorker(
153 pattern, script_url, nullptr, 155 pattern, script_url, nullptr,
154 MakeRegisteredCallback(&called, &registration_id)); 156 MakeRegisteredCallback(&called, &registration_id));
155 157
156 EXPECT_FALSE(called); 158 EXPECT_FALSE(called);
157 base::RunLoop().RunUntilIdle(); 159 base::RunLoop().RunUntilIdle();
158 EXPECT_TRUE(called); 160 EXPECT_TRUE(called);
159 scoped_refptr<ServiceWorkerRegistration> worker( 161 scoped_refptr<ServiceWorkerRegistration> worker(
160 new ServiceWorkerRegistration(pattern, registration_id, 162 new ServiceWorkerRegistration(pattern, registration_id,
161 helper_->context()->AsWeakPtr())); 163 helper_->context()->AsWeakPtr()));
162 // ServiceWorkerRegistration posts a notification task on construction. 164 // ServiceWorkerRegistration posts a notification task on construction.
163 base::RunLoop().RunUntilIdle(); 165 base::RunLoop().RunUntilIdle();
164 return worker; 166 return worker;
165 } 167 }
166 168
167 void UnregisterServiceWorker( 169 void UnregisterServiceWorker(
168 const scoped_refptr<ServiceWorkerRegistration>& registration) { 170 const scoped_refptr<ServiceWorkerRegistration>& registration) {
169 bool called = false; 171 bool called = false;
170 helper_->context()->UnregisterServiceWorker( 172 helper_->context()->UnregisterServiceWorker(
171 registration->pattern(), MakeUnregisteredCallback(&called)); 173 registration->pattern(), MakeUnregisteredCallback(&called));
172 174
173 EXPECT_FALSE(called); 175 EXPECT_FALSE(called);
174 base::RunLoop().RunUntilIdle(); 176 base::RunLoop().RunUntilIdle();
175 EXPECT_TRUE(called); 177 EXPECT_TRUE(called);
176 } 178 }
177 179
178 GeofencingStatus RegisterRegionSync( 180 GeofencingStatus RegisterRegionSync(
179 int64 service_worker_registration_id, 181 int64_t service_worker_registration_id,
180 const std::string& id, 182 const std::string& id,
181 const WebCircularGeofencingRegion& region) { 183 const WebCircularGeofencingRegion& region) {
182 StatusCatcher result; 184 StatusCatcher result;
183 manager_->RegisterRegion( 185 manager_->RegisterRegion(
184 service_worker_registration_id, 186 service_worker_registration_id,
185 id, 187 id,
186 region, 188 region,
187 base::Bind(&StatusCatcher::Done, base::Unretained(&result))); 189 base::Bind(&StatusCatcher::Done, base::Unretained(&result)));
188 return result.Wait(); 190 return result.Wait();
189 } 191 }
190 192
191 GeofencingStatus RegisterRegionSyncWithServiceResult( 193 GeofencingStatus RegisterRegionSyncWithServiceResult(
192 int64 service_worker_registration_id, 194 int64_t service_worker_registration_id,
193 const std::string& id, 195 const std::string& id,
194 const WebCircularGeofencingRegion& region, 196 const WebCircularGeofencingRegion& region,
195 GeofencingStatus service_status, 197 GeofencingStatus service_status,
196 int64 geofencing_registration_id) { 198 int64_t geofencing_registration_id) {
197 StatusCatcher result; 199 StatusCatcher result;
198 GeofencingRegistrationDelegate* delegate = 0; 200 GeofencingRegistrationDelegate* delegate = 0;
199 EXPECT_CALL( 201 EXPECT_CALL(
200 *service_, 202 *service_,
201 RegisterRegion(WebCircularGeofencingRegionEq(region), testing::_)) 203 RegisterRegion(WebCircularGeofencingRegionEq(region), testing::_))
202 .WillOnce(testing::DoAll(SaveDelegate(&delegate), 204 .WillOnce(testing::DoAll(SaveDelegate(&delegate),
203 testing::Return(geofencing_registration_id))); 205 testing::Return(geofencing_registration_id)));
204 manager_->RegisterRegion( 206 manager_->RegisterRegion(
205 service_worker_registration_id, 207 service_worker_registration_id,
206 id, 208 id,
207 region, 209 region,
208 base::Bind(&StatusCatcher::Done, base::Unretained(&result))); 210 base::Bind(&StatusCatcher::Done, base::Unretained(&result)));
209 CHECK(delegate); 211 CHECK(delegate);
210 delegate->RegistrationFinished(geofencing_registration_id, service_status); 212 delegate->RegistrationFinished(geofencing_registration_id, service_status);
211 return result.Wait(); 213 return result.Wait();
212 } 214 }
213 215
214 GeofencingStatus UnregisterRegionSync(int64 service_worker_registration_id, 216 GeofencingStatus UnregisterRegionSync(
215 const std::string& id, 217 int64_t service_worker_registration_id,
216 bool should_call_service, 218 const std::string& id,
217 int64 geofencing_registration_id = 0) { 219 bool should_call_service,
220 int64_t geofencing_registration_id = 0) {
218 StatusCatcher result; 221 StatusCatcher result;
219 if (should_call_service) { 222 if (should_call_service) {
220 EXPECT_CALL(*service_, UnregisterRegion(geofencing_registration_id)); 223 EXPECT_CALL(*service_, UnregisterRegion(geofencing_registration_id));
221 } 224 }
222 manager_->UnregisterRegion( 225 manager_->UnregisterRegion(
223 service_worker_registration_id, 226 service_worker_registration_id,
224 id, 227 id,
225 base::Bind(&StatusCatcher::Done, base::Unretained(&result))); 228 base::Bind(&StatusCatcher::Done, base::Unretained(&result)));
226 return result.Wait(); 229 return result.Wait();
227 } 230 }
228 231
229 void VerifyRegions(int64 service_worker_registration_id, 232 void VerifyRegions(int64_t service_worker_registration_id,
230 const RegionMap& expected_regions) { 233 const RegionMap& expected_regions) {
231 RegionMap regions; 234 RegionMap regions;
232 EXPECT_EQ(GEOFENCING_STATUS_OK, 235 EXPECT_EQ(GEOFENCING_STATUS_OK,
233 manager_->GetRegisteredRegions(service_worker_registration_id, 236 manager_->GetRegisteredRegions(service_worker_registration_id,
234 &regions)); 237 &regions));
235 EXPECT_EQ(expected_regions.size(), regions.size()); 238 EXPECT_EQ(expected_regions.size(), regions.size());
236 for (RegionMap::const_iterator it = expected_regions.begin(); 239 for (RegionMap::const_iterator it = expected_regions.begin();
237 it != expected_regions.end(); 240 it != expected_regions.end();
238 ++it) { 241 ++it) {
239 EXPECT_THAT(regions[it->first], 242 EXPECT_THAT(regions[it->first],
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 GEOFENCING_STATUS_OK, kTestGeofencingRegistrationId)); 509 GEOFENCING_STATUS_OK, kTestGeofencingRegistrationId));
507 VerifyRegions(worker1_->id(), expected_regions_); 510 VerifyRegions(worker1_->id(), expected_regions_);
508 511
509 EXPECT_CALL(*service_, UnregisterRegion(kTestGeofencingRegistrationId)); 512 EXPECT_CALL(*service_, UnregisterRegion(kTestGeofencingRegistrationId));
510 513
511 manager_->SetMockProvider(GeofencingMockState::SERVICE_AVAILABLE); 514 manager_->SetMockProvider(GeofencingMockState::SERVICE_AVAILABLE);
512 VerifyRegions(worker1_->id(), RegionMap()); 515 VerifyRegions(worker1_->id(), RegionMap());
513 } 516 }
514 517
515 } // namespace content 518 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/geofencing/geofencing_manager.cc ('k') | content/browser/geofencing/geofencing_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698