| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/suggestions/suggestions_service.h" | 5 #include "components/suggestions/suggestions_service.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| 11 | 11 |
| 12 #include "base/bind.h" | 12 #include "base/bind.h" |
| 13 #include "base/feature_list.h" | 13 #include "base/feature_list.h" |
| 14 #include "base/macros.h" | 14 #include "base/macros.h" |
| 15 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/run_loop.h" |
| 16 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h" | 17 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h" |
| 17 #include "components/suggestions/blacklist_store.h" | 18 #include "components/suggestions/blacklist_store.h" |
| 18 #include "components/suggestions/image_manager.h" | 19 #include "components/suggestions/image_manager.h" |
| 19 #include "components/suggestions/proto/suggestions.pb.h" | 20 #include "components/suggestions/proto/suggestions.pb.h" |
| 20 #include "components/suggestions/suggestions_store.h" | 21 #include "components/suggestions/suggestions_store.h" |
| 21 #include "components/sync_driver/fake_sync_service.h" | 22 #include "components/sync_driver/fake_sync_service.h" |
| 22 #include "components/sync_driver/sync_service.h" | 23 #include "components/sync_driver/sync_service.h" |
| 23 #include "net/base/escape.h" | 24 #include "net/base/escape.h" |
| 24 #include "net/http/http_response_headers.h" | 25 #include "net/http/http_response_headers.h" |
| 25 #include "net/http/http_status_code.h" | 26 #include "net/http/http_status_code.h" |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 EXPECT_CALL(*mock_blacklist_store_, RemoveUrl(Eq(blacklisted_url))) | 503 EXPECT_CALL(*mock_blacklist_store_, RemoveUrl(Eq(blacklisted_url))) |
| 503 .WillOnce(Return(true)); | 504 .WillOnce(Return(true)); |
| 504 | 505 |
| 505 Blacklist(suggestions_service.get(), blacklisted_url); | 506 Blacklist(suggestions_service.get(), blacklisted_url); |
| 506 EXPECT_EQ(1, suggestions_data_callback_count_); | 507 EXPECT_EQ(1, suggestions_data_callback_count_); |
| 507 | 508 |
| 508 // Wait on the upload task. This only works when the scheduling task is not | 509 // Wait on the upload task. This only works when the scheduling task is not |
| 509 // for future execution (note how both the SuggestionsService's scheduling | 510 // for future execution (note how both the SuggestionsService's scheduling |
| 510 // delay and the BlacklistStore's candidacy delay are zero). Then wait on | 511 // delay and the BlacklistStore's candidacy delay are zero). Then wait on |
| 511 // the blacklist request, then again on the next blacklist scheduling task. | 512 // the blacklist request, then again on the next blacklist scheduling task. |
| 512 base::MessageLoop::current()->RunUntilIdle(); | 513 base::RunLoop().RunUntilIdle(); |
| 513 io_message_loop_.RunUntilIdle(); | 514 io_message_loop_.RunUntilIdle(); |
| 514 base::MessageLoop::current()->RunUntilIdle(); | 515 base::RunLoop().RunUntilIdle(); |
| 515 | 516 |
| 516 EXPECT_EQ(2, suggestions_data_callback_count_); | 517 EXPECT_EQ(2, suggestions_data_callback_count_); |
| 517 EXPECT_FALSE(blacklisting_failed_); | 518 EXPECT_FALSE(blacklisting_failed_); |
| 518 CheckSuggestionsData(); | 519 CheckSuggestionsData(); |
| 519 } | 520 } |
| 520 | 521 |
| 521 TEST_F(SuggestionsServiceTest, BlacklistURLFails) { | 522 TEST_F(SuggestionsServiceTest, BlacklistURLFails) { |
| 522 std::unique_ptr<SuggestionsService> suggestions_service( | 523 std::unique_ptr<SuggestionsService> suggestions_service( |
| 523 CreateSuggestionsServiceWithMocks()); | 524 CreateSuggestionsServiceWithMocks()); |
| 524 ASSERT_TRUE(suggestions_service != nullptr); | 525 ASSERT_TRUE(suggestions_service != nullptr); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 | 583 |
| 583 // Blacklist call, first request attempt. | 584 // Blacklist call, first request attempt. |
| 584 Blacklist(suggestions_service.get(), blacklisted_url); | 585 Blacklist(suggestions_service.get(), blacklisted_url); |
| 585 EXPECT_EQ(1, suggestions_data_callback_count_); | 586 EXPECT_EQ(1, suggestions_data_callback_count_); |
| 586 EXPECT_FALSE(blacklisting_failed_); | 587 EXPECT_FALSE(blacklisting_failed_); |
| 587 | 588 |
| 588 // Wait for the first scheduling, the first request, the second scheduling, | 589 // Wait for the first scheduling, the first request, the second scheduling, |
| 589 // second request and the third scheduling. Again, note that calling | 590 // second request and the third scheduling. Again, note that calling |
| 590 // RunUntilIdle on the MessageLoop only works when the task is not posted for | 591 // RunUntilIdle on the MessageLoop only works when the task is not posted for |
| 591 // the future. | 592 // the future. |
| 592 base::MessageLoop::current()->RunUntilIdle(); | 593 base::RunLoop().RunUntilIdle(); |
| 593 io_message_loop_.RunUntilIdle(); | 594 io_message_loop_.RunUntilIdle(); |
| 594 base::MessageLoop::current()->RunUntilIdle(); | 595 base::RunLoop().RunUntilIdle(); |
| 595 io_message_loop_.RunUntilIdle(); | 596 io_message_loop_.RunUntilIdle(); |
| 596 base::MessageLoop::current()->RunUntilIdle(); | 597 base::RunLoop().RunUntilIdle(); |
| 597 CheckSuggestionsData(); | 598 CheckSuggestionsData(); |
| 598 } | 599 } |
| 599 | 600 |
| 600 TEST_F(SuggestionsServiceTest, UndoBlacklistURL) { | 601 TEST_F(SuggestionsServiceTest, UndoBlacklistURL) { |
| 601 std::unique_ptr<SuggestionsService> suggestions_service( | 602 std::unique_ptr<SuggestionsService> suggestions_service( |
| 602 CreateSuggestionsServiceWithMocks()); | 603 CreateSuggestionsServiceWithMocks()); |
| 603 ASSERT_TRUE(suggestions_service != nullptr); | 604 ASSERT_TRUE(suggestions_service != nullptr); |
| 604 // Ensure scheduling the request doesn't happen before undo. | 605 // Ensure scheduling the request doesn't happen before undo. |
| 605 base::TimeDelta delay = base::TimeDelta::FromHours(1); | 606 base::TimeDelta delay = base::TimeDelta::FromHours(1); |
| 606 suggestions_service->set_blacklist_delay(delay); | 607 suggestions_service->set_blacklist_delay(delay); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 suggestions_service->GetPageThumbnail(test_url, dummy_callback); | 750 suggestions_service->GetPageThumbnail(test_url, dummy_callback); |
| 750 | 751 |
| 751 EXPECT_CALL(*mock_thumbnail_manager_, AddImageURL(test_url, thumbnail_url)); | 752 EXPECT_CALL(*mock_thumbnail_manager_, AddImageURL(test_url, thumbnail_url)); |
| 752 EXPECT_CALL(*mock_thumbnail_manager_, GetImageForURL(test_url, _)); | 753 EXPECT_CALL(*mock_thumbnail_manager_, GetImageForURL(test_url, _)); |
| 753 suggestions_service->GetPageThumbnailWithURL(test_url, thumbnail_url, | 754 suggestions_service->GetPageThumbnailWithURL(test_url, thumbnail_url, |
| 754 dummy_callback); | 755 dummy_callback); |
| 755 | 756 |
| 756 } | 757 } |
| 757 | 758 |
| 758 } // namespace suggestions | 759 } // namespace suggestions |
| OLD | NEW |