Index: device/geolocation/network_location_provider_unittest.cc |
diff --git a/device/geolocation/network_location_provider_unittest.cc b/device/geolocation/network_location_provider_unittest.cc |
index 0129625bde3efff727244b917e02658ea295ce5e..3a4053d5d9d4701aa099fc4ada56ef39cff577ab 100644 |
--- a/device/geolocation/network_location_provider_unittest.cc |
+++ b/device/geolocation/network_location_provider_unittest.cc |
@@ -335,7 +335,7 @@ TEST_F(GeolocationNetworkProviderTest, CreateDestroy) { |
TEST_F(GeolocationNetworkProviderTest, StartProvider) { |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
ASSERT_TRUE(fetcher); |
CheckRequestIsValid(*fetcher, 0, 0, 0, std::string()); |
@@ -344,7 +344,7 @@ TEST_F(GeolocationNetworkProviderTest, StartProvider) { |
TEST_F(GeolocationNetworkProviderTest, StartProviderDefaultUrl) { |
test_server_url_ = LocationArbitrator::DefaultNetworkProviderURL(); |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
ASSERT_TRUE(fetcher); |
CheckRequestIsValid(*fetcher, 0, 0, 0, std::string()); |
@@ -352,7 +352,7 @@ TEST_F(GeolocationNetworkProviderTest, StartProviderDefaultUrl) { |
TEST_F(GeolocationNetworkProviderTest, StartProviderLongRequest) { |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
const int kFirstScanAps = 20; |
wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); |
base::RunLoop().RunUntilIdle(); |
@@ -367,7 +367,7 @@ TEST_F(GeolocationNetworkProviderTest, StartProviderLongRequest) { |
TEST_F(GeolocationNetworkProviderTest, MultipleWifiScansComplete) { |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
ASSERT_TRUE(fetcher); |
@@ -471,7 +471,7 @@ TEST_F(GeolocationNetworkProviderTest, NoRequestOnStartupUntilWifiData) { |
MessageLoopQuitListener listener; |
wifi_data_provider_->set_got_data(false); |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
provider->SetUpdateCallback(base::Bind( |
&MessageLoopQuitListener::OnLocationUpdate, base::Unretained(&listener))); |
@@ -489,7 +489,7 @@ TEST_F(GeolocationNetworkProviderTest, NoRequestOnStartupUntilWifiData) { |
TEST_F(GeolocationNetworkProviderTest, NewDataReplacesExistingNetworkRequest) { |
// Send initial request with empty data |
std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
EXPECT_TRUE(fetcher); |
@@ -502,7 +502,7 @@ TEST_F(GeolocationNetworkProviderTest, NewDataReplacesExistingNetworkRequest) { |
TEST_F(GeolocationNetworkProviderTest, NetworkRequestDeferredForPermission) { |
std::unique_ptr<LocationProvider> provider(CreateProvider(false)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
EXPECT_FALSE(fetcher); |
provider->OnPermissionGranted(); |
@@ -518,7 +518,7 @@ TEST_F(GeolocationNetworkProviderTest, |
access_token_store_->access_token_map_[test_server_url_] = |
base::UTF8ToUTF16(REFERENCE_ACCESS_TOKEN); |
std::unique_ptr<LocationProvider> provider(CreateProvider(false)); |
- EXPECT_TRUE(provider->StartProvider(false)); |
+ EXPECT_TRUE(provider->StartProvider(true)); |
net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
EXPECT_FALSE(fetcher); |
@@ -561,4 +561,43 @@ TEST_F(GeolocationNetworkProviderTest, NetworkPositionCache) { |
} |
} |
+TEST_F(GeolocationNetworkProviderTest, RequestLowAccuracyPosition) { |
+ std::unique_ptr<LocationProvider> provider(CreateProvider(true)); |
+ EXPECT_TRUE(provider->StartProvider(false)); |
+ net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
+ ASSERT_TRUE(fetcher); |
+ EXPECT_TRUE(IsTestServerUrl(fetcher->GetOriginalURL())); |
+ CheckRequestIsValid(*fetcher, 0, 0, 0, std::string()); |
+ |
+ // Send a reply with good position fix. |
+ const char* kReferenceNetworkResponse = |
+ "{" |
+ " \"accessToken\": \"" REFERENCE_ACCESS_TOKEN |
+ "\"," |
+ " \"accuracy\": 1200.4," |
+ " \"location\": {" |
+ " \"lat\": 51.0," |
+ " \"lng\": -0.1" |
+ " }" |
+ "}"; |
+ fetcher->set_url(test_server_url_); |
+ fetcher->set_status(net::URLRequestStatus()); |
+ fetcher->set_response_code(200); // OK |
+ fetcher->SetResponseString(kReferenceNetworkResponse); |
+ fetcher->delegate()->OnURLFetchComplete(fetcher); |
+ |
+ Geoposition position = provider->GetPosition(); |
+ EXPECT_EQ(51.0, position.latitude); |
+ EXPECT_EQ(-0.1, position.longitude); |
+ EXPECT_EQ(1200.4, position.accuracy); |
+ EXPECT_FALSE(position.timestamp.is_null()); |
+ EXPECT_TRUE(position.Validate()); |
+ |
+ // Wifi scans should not affect the provider and no new requests should be |
+ // made. |
+ wifi_data_provider_->SetData(CreateReferenceWifiScanData(5 /* ap_count */)); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_FALSE(get_url_fetcher_and_advance_id()); // No new request created. |
+} |
+ |
} // namespace device |