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 |