| 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
|
|
|