Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: components/search_provider_logos/logo_tracker_unittest.cc

Issue 1144153004: components: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/search_provider_logos/logo_tracker.h" 5 #include "components/search_provider_logos/logo_tracker.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
15 #include "base/location.h"
15 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
16 #include "base/memory/scoped_vector.h" 17 #include "base/memory/scoped_vector.h"
17 #include "base/run_loop.h" 18 #include "base/run_loop.h"
19 #include "base/single_thread_task_runner.h"
18 #include "base/strings/string_piece.h" 20 #include "base/strings/string_piece.h"
19 #include "base/strings/stringprintf.h" 21 #include "base/strings/stringprintf.h"
20 #include "base/test/simple_test_clock.h" 22 #include "base/test/simple_test_clock.h"
23 #include "base/thread_task_runner_handle.h"
21 #include "base/time/time.h" 24 #include "base/time/time.h"
22 #include "base/values.h" 25 #include "base/values.h"
23 #include "components/search_provider_logos/google_logo_api.h" 26 #include "components/search_provider_logos/google_logo_api.h"
24 #include "net/base/url_util.h" 27 #include "net/base/url_util.h"
25 #include "net/http/http_response_headers.h" 28 #include "net/http/http_response_headers.h"
26 #include "net/http/http_status_code.h" 29 #include "net/http/http_status_code.h"
27 #include "net/url_request/test_url_fetcher_factory.h" 30 #include "net/url_request/test_url_fetcher_factory.h"
28 #include "net/url_request/url_request_status.h" 31 #include "net/url_request/url_request_status.h"
29 #include "net/url_request/url_request_test_util.h" 32 #include "net/url_request/url_request_test_util.h"
30 #include "testing/gmock/include/gmock/gmock.h" 33 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 public: 297 public:
295 TestLogoDelegate() {} 298 TestLogoDelegate() {}
296 ~TestLogoDelegate() override {} 299 ~TestLogoDelegate() override {}
297 300
298 void DecodeUntrustedImage( 301 void DecodeUntrustedImage(
299 const scoped_refptr<base::RefCountedString>& encoded_image, 302 const scoped_refptr<base::RefCountedString>& encoded_image,
300 base::Callback<void(const SkBitmap&)> image_decoded_callback) override { 303 base::Callback<void(const SkBitmap&)> image_decoded_callback) override {
301 SkBitmap bitmap = 304 SkBitmap bitmap =
302 gfx::Image::CreateFrom1xPNGBytes(encoded_image->front(), 305 gfx::Image::CreateFrom1xPNGBytes(encoded_image->front(),
303 encoded_image->size()).AsBitmap(); 306 encoded_image->size()).AsBitmap();
304 base::MessageLoopProxy::current()->PostTask( 307 base::ThreadTaskRunnerHandle::Get()->PostTask(
305 FROM_HERE, base::Bind(image_decoded_callback, bitmap)); 308 FROM_HERE, base::Bind(image_decoded_callback, bitmap));
306 } 309 }
307 }; 310 };
308 311
309 class LogoTrackerTest : public ::testing::Test { 312 class LogoTrackerTest : public ::testing::Test {
310 protected: 313 protected:
311 LogoTrackerTest() 314 LogoTrackerTest()
312 : message_loop_(new base::MessageLoop()), 315 : message_loop_(new base::MessageLoop()),
313 logo_url_("https://google.com/doodleoftheday?size=hp"), 316 logo_url_("https://google.com/doodleoftheday?size=hp"),
314 test_clock_(new base::SimpleTestClock()), 317 test_clock_(new base::SimpleTestClock()),
315 logo_cache_(new NiceMock<MockLogoCache>()), 318 logo_cache_(new NiceMock<MockLogoCache>()),
316 fake_url_fetcher_factory_(NULL) { 319 fake_url_fetcher_factory_(NULL) {
317 test_clock_->SetNow(base::Time::FromJsTime(INT64_C(1388686828000))); 320 test_clock_->SetNow(base::Time::FromJsTime(INT64_C(1388686828000)));
318 logo_tracker_ = new LogoTracker( 321 logo_tracker_ =
319 base::FilePath(), 322 new LogoTracker(base::FilePath(), base::ThreadTaskRunnerHandle::Get(),
320 base::MessageLoopProxy::current(), 323 base::ThreadTaskRunnerHandle::Get(),
321 base::MessageLoopProxy::current(), 324 new net::TestURLRequestContextGetter(
322 new net::TestURLRequestContextGetter(base::MessageLoopProxy::current()), 325 base::ThreadTaskRunnerHandle::Get()),
323 scoped_ptr<LogoDelegate>(new TestLogoDelegate())); 326 scoped_ptr<LogoDelegate>(new TestLogoDelegate()));
324 logo_tracker_->SetServerAPI(logo_url_, base::Bind(&GoogleParseLogoResponse), 327 logo_tracker_->SetServerAPI(logo_url_, base::Bind(&GoogleParseLogoResponse),
325 base::Bind(&GoogleAppendQueryparamsToLogoURL), 328 base::Bind(&GoogleAppendQueryparamsToLogoURL),
326 false); 329 false);
327 logo_tracker_->SetClockForTests(scoped_ptr<base::Clock>(test_clock_)); 330 logo_tracker_->SetClockForTests(scoped_ptr<base::Clock>(test_clock_));
328 logo_tracker_->SetLogoCacheForTests(scoped_ptr<LogoCache>(logo_cache_)); 331 logo_tracker_->SetLogoCacheForTests(scoped_ptr<LogoCache>(logo_cache_));
329 } 332 }
330 333
331 virtual void TearDown() { 334 virtual void TearDown() {
332 // logo_tracker_ owns logo_cache_, which gets destructed on the file thread 335 // logo_tracker_ owns logo_cache_, which gets destructed on the file thread
333 // after logo_tracker_'s destruction. Ensure that logo_cache_ is actually 336 // after logo_tracker_'s destruction. Ensure that logo_cache_ is actually
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 683
681 // Tests that deal with multiple listeners. 684 // Tests that deal with multiple listeners.
682 685
683 void EnqueueObservers(LogoTracker* logo_tracker, 686 void EnqueueObservers(LogoTracker* logo_tracker,
684 const ScopedVector<MockLogoObserver>& observers, 687 const ScopedVector<MockLogoObserver>& observers,
685 size_t start_index) { 688 size_t start_index) {
686 if (start_index >= observers.size()) 689 if (start_index >= observers.size())
687 return; 690 return;
688 691
689 logo_tracker->GetLogo(observers[start_index]); 692 logo_tracker->GetLogo(observers[start_index]);
690 base::MessageLoop::current()->PostTask(FROM_HERE, 693 base::ThreadTaskRunnerHandle::Get()->PostTask(
691 base::Bind(&EnqueueObservers, 694 FROM_HERE, base::Bind(&EnqueueObservers, logo_tracker,
692 logo_tracker, 695 base::ConstRef(observers), start_index + 1));
693 base::ConstRef(observers),
694 start_index + 1));
695 } 696 }
696 697
697 TEST_F(LogoTrackerTest, SupportOverlappingLogoRequests) { 698 TEST_F(LogoTrackerTest, SupportOverlappingLogoRequests) {
698 Logo cached_logo = GetSampleLogo(logo_url_, test_clock_->Now()); 699 Logo cached_logo = GetSampleLogo(logo_url_, test_clock_->Now());
699 logo_cache_->EncodeAndSetCachedLogo(cached_logo); 700 logo_cache_->EncodeAndSetCachedLogo(cached_logo);
700 ON_CALL(*logo_cache_, SetCachedLogo(_)).WillByDefault(Return()); 701 ON_CALL(*logo_cache_, SetCachedLogo(_)).WillByDefault(Return());
701 702
702 Logo fresh_logo = GetSampleLogo2(logo_url_, test_clock_->Now()); 703 Logo fresh_logo = GetSampleLogo2(logo_url_, test_clock_->Now());
703 std::string response = ServerResponse(fresh_logo); 704 std::string response = ServerResponse(fresh_logo);
704 SetServerResponse(response); 705 SetServerResponse(response);
(...skipping 29 matching lines...) Expand all
734 MockLogoObserver listener2; 735 MockLogoObserver listener2;
735 listener2.ExpectFreshLogo(&logo); 736 listener2.ExpectFreshLogo(&logo);
736 logo_tracker_->GetLogo(&listener2); 737 logo_tracker_->GetLogo(&listener2);
737 738
738 base::RunLoop().RunUntilIdle(); 739 base::RunLoop().RunUntilIdle();
739 } 740 }
740 741
741 } // namespace 742 } // namespace
742 743
743 } // namespace search_provider_logos 744 } // namespace search_provider_logos
OLDNEW
« no previous file with comments | « components/search_engines/keyword_web_data_service.cc ('k') | components/sessions/base_session_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698