| Index: content/browser/geolocation/geolocation_provider_unittest.cc
|
| ===================================================================
|
| --- content/browser/geolocation/geolocation_provider_unittest.cc (revision 269041)
|
| +++ content/browser/geolocation/geolocation_provider_unittest.cc (working copy)
|
| @@ -114,7 +114,7 @@
|
| protected:
|
| GeolocationProviderTest()
|
| : message_loop_(),
|
| - io_thread_(BrowserThread::IO, &message_loop_),
|
| + ui_thread_(BrowserThread::UI, &message_loop_),
|
| provider_(new LocationProviderForTestArbitrator) {
|
| }
|
|
|
| @@ -131,7 +131,7 @@
|
| void GetProvidersStarted(bool* started);
|
|
|
| base::MessageLoop message_loop_;
|
| - TestBrowserThread io_thread_;
|
| + TestBrowserThread ui_thread_;
|
| scoped_ptr<LocationProviderForTestArbitrator> provider_;
|
| };
|
|
|
| @@ -167,19 +167,25 @@
|
|
|
| // Regression test for http://crbug.com/59377
|
| TEST_F(GeolocationProviderTest, OnPermissionGrantedWithoutObservers) {
|
| - EXPECT_FALSE(provider()->LocationServicesOptedIn());
|
| + EXPECT_FALSE(provider()->user_did_opt_into_location_services_for_testing());
|
| provider()->UserDidOptIntoLocationServices();
|
| - EXPECT_TRUE(provider()->LocationServicesOptedIn());
|
| + EXPECT_TRUE(provider()->user_did_opt_into_location_services_for_testing());
|
| }
|
|
|
| +void DummyFunction(const Geoposition& position) {
|
| +}
|
| +
|
| TEST_F(GeolocationProviderTest, StartStop) {
|
| EXPECT_FALSE(provider()->IsRunning());
|
| - GeolocationProviderImpl::LocationUpdateCallback null_callback;
|
| - provider()->AddLocationUpdateCallback(null_callback, false);
|
| + GeolocationProviderImpl::LocationUpdateCallback callback =
|
| + base::Bind(&DummyFunction);
|
| + scoped_ptr<content::GeolocationProvider::Subscription> subscription =
|
| + provider()->AddLocationUpdateCallback(callback, false);
|
| EXPECT_TRUE(provider()->IsRunning());
|
| EXPECT_TRUE(ProvidersStarted());
|
|
|
| - provider()->RemoveLocationUpdateCallback(null_callback);
|
| + subscription.reset();
|
| +
|
| EXPECT_FALSE(ProvidersStarted());
|
| EXPECT_TRUE(provider()->IsRunning());
|
| }
|
| @@ -196,11 +202,12 @@
|
| &MockGeolocationObserver::OnLocationUpdate,
|
| base::Unretained(&first_observer));
|
| EXPECT_CALL(first_observer, OnLocationUpdate(GeopositionEq(first_position)));
|
| - provider()->AddLocationUpdateCallback(first_callback, false);
|
| + scoped_ptr<content::GeolocationProvider::Subscription> subscription =
|
| + provider()->AddLocationUpdateCallback(first_callback, false);
|
| SendMockLocation(first_position);
|
| base::MessageLoop::current()->Run();
|
|
|
| - provider()->RemoveLocationUpdateCallback(first_callback);
|
| + subscription.reset();
|
|
|
| Geoposition second_position;
|
| second_position.latitude = 13;
|
| @@ -216,7 +223,8 @@
|
| GeolocationProviderImpl::LocationUpdateCallback second_callback = base::Bind(
|
| &MockGeolocationObserver::OnLocationUpdate,
|
| base::Unretained(&second_observer));
|
| - provider()->AddLocationUpdateCallback(second_callback, false);
|
| + scoped_ptr<content::GeolocationProvider::Subscription> subscription2 =
|
| + provider()->AddLocationUpdateCallback(second_callback, false);
|
| base::MessageLoop::current()->RunUntilIdle();
|
|
|
| // The second observer should receive the new position now.
|
| @@ -225,7 +233,7 @@
|
| SendMockLocation(second_position);
|
| base::MessageLoop::current()->Run();
|
|
|
| - provider()->RemoveLocationUpdateCallback(second_callback);
|
| + subscription2.reset();
|
| EXPECT_FALSE(ProvidersStarted());
|
| }
|
|
|
| @@ -240,8 +248,9 @@
|
| GeolocationProviderImpl::LocationUpdateCallback callback = base::Bind(
|
| &MockGeolocationObserver::OnLocationUpdate,
|
| base::Unretained(&mock_observer));
|
| - provider()->AddLocationUpdateCallback(callback, false);
|
| - provider()->RemoveLocationUpdateCallback(callback);
|
| + scoped_ptr<content::GeolocationProvider::Subscription> subscription =
|
| + provider()->AddLocationUpdateCallback(callback, false);
|
| + subscription.reset();
|
| // Wait for the providers to be stopped now that all clients are gone.
|
| EXPECT_FALSE(ProvidersStarted());
|
| }
|
|
|