| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/json/json_reader.h" | 5 #include "base/json/json_reader.h" |
| 6 #include "base/json/json_writer.h" | 6 #include "base/json/json_writer.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 EXPECT_TRUE(NULL != provider.get()); | 337 EXPECT_TRUE(NULL != provider.get()); |
| 338 provider.reset(); | 338 provider.reset(); |
| 339 SUCCEED(); | 339 SUCCEED(); |
| 340 } | 340 } |
| 341 | 341 |
| 342 TEST_F(GeolocationNetworkProviderTest, StartProvider) { | 342 TEST_F(GeolocationNetworkProviderTest, StartProvider) { |
| 343 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); | 343 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); |
| 344 EXPECT_TRUE(provider->StartProvider(false)); | 344 EXPECT_TRUE(provider->StartProvider(false)); |
| 345 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); | 345 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
| 346 ASSERT_TRUE(fetcher != NULL); | 346 ASSERT_TRUE(fetcher != NULL); |
| 347 CheckRequestIsValid(*fetcher, 0, 0, 0, ""); | 347 CheckRequestIsValid(*fetcher, 0, 0, 0, std::string()); |
| 348 } | 348 } |
| 349 | 349 |
| 350 TEST_F(GeolocationNetworkProviderTest, StartProviderDefaultUrl) { | 350 TEST_F(GeolocationNetworkProviderTest, StartProviderDefaultUrl) { |
| 351 test_server_url_ = GeolocationArbitratorImpl::DefaultNetworkProviderURL(); | 351 test_server_url_ = GeolocationArbitratorImpl::DefaultNetworkProviderURL(); |
| 352 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); | 352 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); |
| 353 EXPECT_TRUE(provider->StartProvider(false)); | 353 EXPECT_TRUE(provider->StartProvider(false)); |
| 354 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); | 354 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
| 355 ASSERT_TRUE(fetcher != NULL); | 355 ASSERT_TRUE(fetcher != NULL); |
| 356 CheckRequestIsValid(*fetcher, 0, 0, 0, ""); | 356 CheckRequestIsValid(*fetcher, 0, 0, 0, std::string()); |
| 357 } | 357 } |
| 358 | 358 |
| 359 | |
| 360 TEST_F(GeolocationNetworkProviderTest, StartProviderLongRequest) { | 359 TEST_F(GeolocationNetworkProviderTest, StartProviderLongRequest) { |
| 361 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); | 360 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); |
| 362 EXPECT_TRUE(provider->StartProvider(false)); | 361 EXPECT_TRUE(provider->StartProvider(false)); |
| 363 const int kFirstScanAps = 20; | 362 const int kFirstScanAps = 20; |
| 364 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); | 363 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); |
| 365 main_message_loop_.RunUntilIdle(); | 364 main_message_loop_.RunUntilIdle(); |
| 366 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); | 365 net::TestURLFetcher* fetcher = get_url_fetcher_and_advance_id(); |
| 367 ASSERT_TRUE(fetcher != NULL); | 366 ASSERT_TRUE(fetcher != NULL); |
| 368 // The request url should have been shortened to less than 2048 characters | 367 // The request url should have been shortened to less than 2048 characters |
| 369 // in length by not including access points with the lowest signal strength | 368 // in length by not including access points with the lowest signal strength |
| 370 // in the request. | 369 // in the request. |
| 371 EXPECT_LT(fetcher->GetOriginalURL().spec().size(), size_t(2048)); | 370 EXPECT_LT(fetcher->GetOriginalURL().spec().size(), size_t(2048)); |
| 372 CheckRequestIsValid(*fetcher, 0, 16, 4, ""); | 371 CheckRequestIsValid(*fetcher, 0, 16, 4, std::string()); |
| 373 } | 372 } |
| 374 | 373 |
| 375 TEST_F(GeolocationNetworkProviderTest, MultiRegistrations) { | 374 TEST_F(GeolocationNetworkProviderTest, MultiRegistrations) { |
| 376 // TODO(joth): Strictly belongs in a base-class unit test file. | 375 // TODO(joth): Strictly belongs in a base-class unit test file. |
| 377 MessageLoopQuitListener listener; | 376 MessageLoopQuitListener listener; |
| 378 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); | 377 scoped_ptr<LocationProviderBase> provider(CreateProvider(true)); |
| 379 EXPECT_FALSE(provider->has_listeners()); | 378 EXPECT_FALSE(provider->has_listeners()); |
| 380 provider->RegisterListener(&listener); | 379 provider->RegisterListener(&listener); |
| 381 EXPECT_TRUE(provider->has_listeners()); | 380 EXPECT_TRUE(provider->has_listeners()); |
| 382 provider->RegisterListener(&listener); | 381 provider->RegisterListener(&listener); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 411 provider->GetPosition(&position); | 410 provider->GetPosition(&position); |
| 412 EXPECT_FALSE(position.Validate()); | 411 EXPECT_FALSE(position.Validate()); |
| 413 | 412 |
| 414 // Now wifi data arrives -- SetData will notify listeners. | 413 // Now wifi data arrives -- SetData will notify listeners. |
| 415 const int kFirstScanAps = 6; | 414 const int kFirstScanAps = 6; |
| 416 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); | 415 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); |
| 417 main_message_loop_.RunUntilIdle(); | 416 main_message_loop_.RunUntilIdle(); |
| 418 fetcher = get_url_fetcher_and_advance_id(); | 417 fetcher = get_url_fetcher_and_advance_id(); |
| 419 ASSERT_TRUE(fetcher != NULL); | 418 ASSERT_TRUE(fetcher != NULL); |
| 420 // The request should have the wifi data. | 419 // The request should have the wifi data. |
| 421 CheckRequestIsValid(*fetcher, 0, kFirstScanAps, 0, ""); | 420 CheckRequestIsValid(*fetcher, 0, kFirstScanAps, 0, std::string()); |
| 422 | 421 |
| 423 // Send a reply with good position fix. | 422 // Send a reply with good position fix. |
| 424 const char* kReferenceNetworkResponse = | 423 const char* kReferenceNetworkResponse = |
| 425 "{" | 424 "{" |
| 426 " \"accessToken\": \"" REFERENCE_ACCESS_TOKEN "\"," | 425 " \"accessToken\": \"" REFERENCE_ACCESS_TOKEN "\"," |
| 427 " \"accuracy\": 1200.4," | 426 " \"accuracy\": 1200.4," |
| 428 " \"location\": {" | 427 " \"location\": {" |
| 429 " \"lat\": 51.0," | 428 " \"lat\": 51.0," |
| 430 " \"lng\": -0.1" | 429 " \"lng\": -0.1" |
| 431 " }" | 430 " }" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kThirdScanAps)); | 464 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kThirdScanAps)); |
| 466 main_message_loop_.RunUntilIdle(); | 465 main_message_loop_.RunUntilIdle(); |
| 467 fetcher = get_url_fetcher_and_advance_id(); | 466 fetcher = get_url_fetcher_and_advance_id(); |
| 468 EXPECT_TRUE(fetcher); | 467 EXPECT_TRUE(fetcher); |
| 469 CheckRequestIsValid(*fetcher, 0, kThirdScanAps, 0, REFERENCE_ACCESS_TOKEN); | 468 CheckRequestIsValid(*fetcher, 0, kThirdScanAps, 0, REFERENCE_ACCESS_TOKEN); |
| 470 // ...reply with a network error. | 469 // ...reply with a network error. |
| 471 | 470 |
| 472 fetcher->set_url(test_server_url_); | 471 fetcher->set_url(test_server_url_); |
| 473 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED, -1)); | 472 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED, -1)); |
| 474 fetcher->set_response_code(200); // should be ignored | 473 fetcher->set_response_code(200); // should be ignored |
| 475 fetcher->SetResponseString(""); | 474 fetcher->SetResponseString(std::string()); |
| 476 fetcher->delegate()->OnURLFetchComplete(fetcher); | 475 fetcher->delegate()->OnURLFetchComplete(fetcher); |
| 477 | 476 |
| 478 // Error means we now no longer have a fix. | 477 // Error means we now no longer have a fix. |
| 479 provider->GetPosition(&position); | 478 provider->GetPosition(&position); |
| 480 EXPECT_FALSE(position.Validate()); | 479 EXPECT_FALSE(position.Validate()); |
| 481 | 480 |
| 482 // Wifi scan returns to original set: should be serviced from cache. | 481 // Wifi scan returns to original set: should be serviced from cache. |
| 483 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); | 482 wifi_data_provider_->SetData(CreateReferenceWifiScanData(kFirstScanAps)); |
| 484 main_message_loop_.RunUntilIdle(); | 483 main_message_loop_.RunUntilIdle(); |
| 485 EXPECT_FALSE(get_url_fetcher_and_advance_id()); // No new request created. | 484 EXPECT_FALSE(get_url_fetcher_and_advance_id()); // No new request created. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 EXPECT_TRUE(cache.FindPosition(CreateReferenceWifiScanData(1))); | 575 EXPECT_TRUE(cache.FindPosition(CreateReferenceWifiScanData(1))); |
| 577 } else { | 576 } else { |
| 578 const int evicted = i - kCacheSize; | 577 const int evicted = i - kCacheSize; |
| 579 EXPECT_FALSE(cache.FindPosition(CreateReferenceWifiScanData(evicted))); | 578 EXPECT_FALSE(cache.FindPosition(CreateReferenceWifiScanData(evicted))); |
| 580 EXPECT_TRUE(cache.FindPosition(CreateReferenceWifiScanData(evicted + 1))); | 579 EXPECT_TRUE(cache.FindPosition(CreateReferenceWifiScanData(evicted + 1))); |
| 581 } | 580 } |
| 582 } | 581 } |
| 583 } | 582 } |
| 584 | 583 |
| 585 } // namespace content | 584 } // namespace content |
| OLD | NEW |