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

Side by Side Diff: components/wallpaper/wallpaper_color_calculator_unittest.cc

Issue 2657013002: Introduce ThreadTaskRunnerHandle::OverrideForTesting and TestMockTimeTaskRunner::ScopedContext. (Closed)
Patch Set: fix RecentTabHelperTest crash? Created 3 years, 9 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/wallpaper/wallpaper_color_calculator.h" 5 #include "components/wallpaper/wallpaper_color_calculator.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/test/null_task_runner.h" 11 #include "base/test/null_task_runner.h"
12 #include "base/test/test_mock_time_task_runner.h" 12 #include "base/test/test_mock_time_task_runner.h"
13 #include "base/threading/sequenced_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "components/wallpaper/wallpaper_color_calculator_observer.h" 14 #include "components/wallpaper/wallpaper_color_calculator_observer.h"
15 #include "skia/ext/platform_canvas.h" 15 #include "skia/ext/platform_canvas.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "third_party/skia/include/core/SkBitmap.h" 17 #include "third_party/skia/include/core/SkBitmap.h"
18 #include "third_party/skia/include/core/SkColor.h" 18 #include "third_party/skia/include/core/SkColor.h"
19 #include "ui/gfx/canvas.h" 19 #include "ui/gfx/canvas.h"
20 #include "ui/gfx/color_analysis.h" 20 #include "ui/gfx/color_analysis.h"
21 #include "ui/gfx/geometry/rect.h" 21 #include "ui/gfx/geometry/rect.h"
22 #include "ui/gfx/geometry/size.h" 22 #include "ui/gfx/geometry/size.h"
23 #include "ui/gfx/image/image_skia.h" 23 #include "ui/gfx/image/image_skia.h"
(...skipping 22 matching lines...) Expand all
46 }; 46 };
47 47
48 } // namespace 48 } // namespace
49 49
50 class WallPaperColorCalculatorTest : public testing::Test { 50 class WallPaperColorCalculatorTest : public testing::Test {
51 public: 51 public:
52 WallPaperColorCalculatorTest(); 52 WallPaperColorCalculatorTest();
53 ~WallPaperColorCalculatorTest() override; 53 ~WallPaperColorCalculatorTest() override;
54 54
55 protected: 55 protected:
56 void InstallTaskRunner(scoped_refptr<base::SequencedTaskRunner> task_runner); 56 void InstallTaskRunner(
57 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
57 58
58 gfx::ImageSkia image_; 59 gfx::ImageSkia image_;
59 60
60 std::unique_ptr<WallpaperColorCalculator> calculator_; 61 std::unique_ptr<WallpaperColorCalculator> calculator_;
61 62
62 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 63 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
63 64
64 TestWallpaperColorCalculatorObserver observer_; 65 TestWallpaperColorCalculatorObserver observer_;
65 66
66 private: 67 private:
67 // Required by PostTaskAndReplyImpl. 68 // Required by PostTaskAndReplyImpl.
68 std::unique_ptr<base::SequencedTaskRunnerHandle> task_runner_handle_; 69 std::unique_ptr<base::ThreadTaskRunnerHandle> task_runner_handle_;
69 70
70 DISALLOW_COPY_AND_ASSIGN(WallPaperColorCalculatorTest); 71 DISALLOW_COPY_AND_ASSIGN(WallPaperColorCalculatorTest);
71 }; 72 };
72 73
73 WallPaperColorCalculatorTest::WallPaperColorCalculatorTest() 74 WallPaperColorCalculatorTest::WallPaperColorCalculatorTest()
74 : task_runner_(new base::TestMockTimeTaskRunner()) { 75 : task_runner_(new base::TestMockTimeTaskRunner()) {
75 // Creates an |image_| that will yield a non-default prominent color. 76 // Creates an |image_| that will yield a non-default prominent color.
76 const gfx::Size kImageSize(300, 200); 77 const gfx::Size kImageSize(300, 200);
77 const SkColor kGray = SkColorSetRGB(10, 10, 10); 78 const SkColor kGray = SkColorSetRGB(10, 10, 10);
78 const SkColor kVibrantGreen = SkColorSetRGB(25, 200, 25); 79 const SkColor kVibrantGreen = SkColorSetRGB(25, 200, 25);
79 80
80 gfx::Canvas canvas(kImageSize, 1.0f, true); 81 gfx::Canvas canvas(kImageSize, 1.0f, true);
81 canvas.FillRect(gfx::Rect(kImageSize), kGray); 82 canvas.FillRect(gfx::Rect(kImageSize), kGray);
82 canvas.FillRect(gfx::Rect(0, 1, 300, 1), kVibrantGreen); 83 canvas.FillRect(gfx::Rect(0, 1, 300, 1), kVibrantGreen);
83 84
84 SkBitmap bitmap = skia::ReadPixels(canvas.sk_canvas()); 85 SkBitmap bitmap = skia::ReadPixels(canvas.sk_canvas());
85 image_ = gfx::ImageSkia::CreateFrom1xBitmap(bitmap); 86 image_ = gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
86 87
87 calculator_ = base::MakeUnique<WallpaperColorCalculator>( 88 calculator_ = base::MakeUnique<WallpaperColorCalculator>(
88 image_, color_utils::LumaRange::NORMAL, 89 image_, color_utils::LumaRange::NORMAL,
89 color_utils::SaturationRange::VIBRANT, nullptr); 90 color_utils::SaturationRange::VIBRANT, nullptr);
90 calculator_->AddObserver(&observer_); 91 calculator_->AddObserver(&observer_);
91 92
92 InstallTaskRunner(task_runner_); 93 InstallTaskRunner(task_runner_);
93 } 94 }
94 95
95 WallPaperColorCalculatorTest::~WallPaperColorCalculatorTest() {} 96 WallPaperColorCalculatorTest::~WallPaperColorCalculatorTest() {}
96 97
97 void WallPaperColorCalculatorTest::InstallTaskRunner( 98 void WallPaperColorCalculatorTest::InstallTaskRunner(
98 scoped_refptr<base::SequencedTaskRunner> task_runner) { 99 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
99 task_runner_handle_.reset(); 100 task_runner_handle_.reset();
100 task_runner_handle_ = 101 task_runner_handle_ =
101 base::MakeUnique<base::SequencedTaskRunnerHandle>(task_runner); 102 base::MakeUnique<base::ThreadTaskRunnerHandle>(task_runner);
102 calculator_->SetTaskRunnerForTest(task_runner); 103 calculator_->SetTaskRunnerForTest(task_runner);
103 } 104 }
104 105
105 TEST_F(WallPaperColorCalculatorTest, 106 TEST_F(WallPaperColorCalculatorTest,
106 StartCalculationReturnsFalseWhenPostingTaskFails) { 107 StartCalculationReturnsFalseWhenPostingTaskFails) {
107 scoped_refptr<base::NullTaskRunner> task_runner = new base::NullTaskRunner(); 108 scoped_refptr<base::NullTaskRunner> task_runner = new base::NullTaskRunner();
108 InstallTaskRunner(task_runner); 109 InstallTaskRunner(task_runner);
109 calculator_->set_prominent_color_for_test(SK_ColorBLACK); 110 calculator_->set_prominent_color_for_test(SK_ColorBLACK);
110 111
111 EXPECT_FALSE(calculator_->StartCalculation()); 112 EXPECT_FALSE(calculator_->StartCalculation());
(...skipping 26 matching lines...) Expand all
138 calculator_.reset(); 139 calculator_.reset();
139 140
140 EXPECT_TRUE(task_runner_->HasPendingTask()); 141 EXPECT_TRUE(task_runner_->HasPendingTask());
141 142
142 task_runner_->RunUntilIdle(); 143 task_runner_->RunUntilIdle();
143 EXPECT_FALSE(observer_.WasNotified()); 144 EXPECT_FALSE(observer_.WasNotified());
144 EXPECT_FALSE(task_runner_->HasPendingTask()); 145 EXPECT_FALSE(task_runner_->HasPendingTask());
145 } 146 }
146 147
147 } // namespace wallpaper 148 } // namespace wallpaper
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698