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

Unified Diff: components/favicon/core/large_icon_service_unittest.cc

Issue 2698473004: Split FaviconService and FaviconServiceImpl. (Closed)
Patch Set: Revert changes in ios/.../history_collection_view_controller_unittest.mm Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/favicon/core/large_icon_service.h ('k') | components/favicon/core/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/favicon/core/large_icon_service_unittest.cc
diff --git a/components/favicon/core/large_icon_service_unittest.cc b/components/favicon/core/large_icon_service_unittest.cc
index e3bc5f9c5607166ac290dbe40bf4dcfc75f9bbcb..7e0b7dce22f8fe4b62c1afa9432d1e814f285379 100644
--- a/components/favicon/core/large_icon_service_unittest.cc
+++ b/components/favicon/core/large_icon_service_unittest.cc
@@ -15,9 +15,10 @@
#include "base/task/cancelable_task_tracker.h"
#include "base/threading/thread_task_runner_handle.h"
#include "components/favicon/core/favicon_client.h"
-#include "components/favicon/core/favicon_service.h"
+#include "components/favicon/core/test/mock_favicon_service.h"
#include "components/favicon_base/fallback_icon_style.h"
#include "components/favicon_base/favicon_types.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -29,9 +30,10 @@
namespace favicon {
namespace {
+using testing::_;
+
const char kDummyUrl[] = "http://www.example.com";
const char kDummyIconUrl[] = "http://www.example.com/touch_icon.png";
-
const SkColor kTestColor = SK_ColorRED;
favicon_base::FaviconRawBitmapResult CreateTestBitmap(
@@ -54,71 +56,16 @@ favicon_base::FaviconRawBitmapResult CreateTestBitmap(
return result;
}
-// A mock FaviconService that emits pre-programmed response.
-class MockFaviconService : public FaviconService {
- public:
- MockFaviconService() : FaviconService(nullptr, nullptr) {
- }
-
- ~MockFaviconService() override {
- }
-
- base::CancelableTaskTracker::TaskId GetLargestRawFaviconForPageURL(
- const GURL& page_url,
- const std::vector<int>& icon_types,
- int minimum_size_in_pixels,
- const favicon_base::FaviconRawBitmapCallback& callback,
- base::CancelableTaskTracker* tracker) override {
- favicon_base::FaviconRawBitmapResult mock_result =
- mock_result_queue_.front();
- mock_result_queue_.pop_front();
- return tracker->PostTask(base::ThreadTaskRunnerHandle::Get().get(),
- FROM_HERE, base::Bind(callback, mock_result));
- }
-
- void InjectResult(const favicon_base::FaviconRawBitmapResult& mock_result) {
- mock_result_queue_.push_back(mock_result);
- }
-
- bool HasUnusedResults() {
- return !mock_result_queue_.empty();
- }
-
- private:
- std::deque<favicon_base::FaviconRawBitmapResult> mock_result_queue_;
-
- DISALLOW_COPY_AND_ASSIGN(MockFaviconService);
-};
-
-// This class provides access to LargeIconService internals, using the current
-// thread's task runner for testing.
-class TestLargeIconService : public LargeIconService {
- public:
- explicit TestLargeIconService(MockFaviconService* mock_favicon_service)
- : LargeIconService(mock_favicon_service,
- base::ThreadTaskRunnerHandle::Get()) {}
- ~TestLargeIconService() override {
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestLargeIconService);
-};
-
class LargeIconServiceTest : public testing::Test {
public:
- LargeIconServiceTest() : is_callback_invoked_(false) {
- }
+ LargeIconServiceTest()
+ : large_icon_service_(&mock_favicon_service_,
+ base::ThreadTaskRunnerHandle::Get()),
+ is_callback_invoked_(false) {}
~LargeIconServiceTest() override {
}
- void SetUp() override {
- testing::Test::SetUp();
- mock_favicon_service_.reset(new MockFaviconService());
- large_icon_service_.reset(
- new TestLargeIconService(mock_favicon_service_.get()));
- }
-
void ResultCallback(const favicon_base::LargeIconResult& result) {
is_callback_invoked_ = true;
@@ -135,15 +82,21 @@ class LargeIconServiceTest : public testing::Test {
EXPECT_EQ(*expected_fallback_icon_style_,
*result.fallback_icon_style);
}
- // Ensure all mock results have been consumed.
- EXPECT_FALSE(mock_favicon_service_->HasUnusedResults());
+ }
+
+ void InjectMockResult(
+ const GURL& page_url,
+ const favicon_base::FaviconRawBitmapResult& mock_result) {
+ EXPECT_CALL(mock_favicon_service_,
+ GetLargestRawFaviconForPageURL(page_url, _, _, _, _))
+ .WillOnce(PostReply<5>(mock_result));
}
protected:
base::MessageLoopForIO loop_;
- std::unique_ptr<MockFaviconService> mock_favicon_service_;
- std::unique_ptr<TestLargeIconService> large_icon_service_;
+ testing::StrictMock<MockFaviconService> mock_favicon_service_;
+ LargeIconService large_icon_service_;
base::CancelableTaskTracker cancelable_task_tracker_;
favicon_base::FaviconRawBitmapResult expected_bitmap_;
@@ -157,9 +110,9 @@ class LargeIconServiceTest : public testing::Test {
};
TEST_F(LargeIconServiceTest, SameSize) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(24, 24, kTestColor));
expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
- large_icon_service_->GetLargeIconOrFallbackStyle(
+ large_icon_service_.GetLargeIconOrFallbackStyle(
GURL(kDummyUrl),
24, // |min_source_size_in_pixel|
24, // |desired_size_in_pixel|
@@ -170,12 +123,10 @@ TEST_F(LargeIconServiceTest, SameSize) {
}
TEST_F(LargeIconServiceTest, ScaleDown) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(32, 32, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(32, 32, kTestColor));
expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 24,
- 24,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 24, 24,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -183,9 +134,9 @@ TEST_F(LargeIconServiceTest, ScaleDown) {
}
TEST_F(LargeIconServiceTest, ScaleUp) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(16, 16, kTestColor));
expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
- large_icon_service_->GetLargeIconOrFallbackStyle(
+ large_icon_service_.GetLargeIconOrFallbackStyle(
GURL(kDummyUrl),
14, // Lowered requirement so stored bitmap is admitted.
24,
@@ -197,12 +148,10 @@ TEST_F(LargeIconServiceTest, ScaleUp) {
// |desired_size_in_pixel| == 0 means retrieve original image without scaling.
TEST_F(LargeIconServiceTest, NoScale) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(24, 24, kTestColor));
expected_bitmap_ = CreateTestBitmap(24, 24, kTestColor);
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 16,
- 0,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 16, 0,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -210,14 +159,12 @@ TEST_F(LargeIconServiceTest, NoScale) {
}
TEST_F(LargeIconServiceTest, FallbackSinceIconTooSmall) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(16, 16, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(16, 16, kTestColor));
expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
expected_fallback_icon_style_->background_color = kTestColor;
expected_fallback_icon_style_->is_default_background_color = false;
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 24,
- 24,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 24, 24,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -225,14 +172,12 @@ TEST_F(LargeIconServiceTest, FallbackSinceIconTooSmall) {
}
TEST_F(LargeIconServiceTest, FallbackSinceIconNotSquare) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(24, 32, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(24, 32, kTestColor));
expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
expected_fallback_icon_style_->background_color = kTestColor;
expected_fallback_icon_style_->is_default_background_color = false;
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 24,
- 24,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 24, 24,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -240,13 +185,11 @@ TEST_F(LargeIconServiceTest, FallbackSinceIconNotSquare) {
}
TEST_F(LargeIconServiceTest, FallbackSinceIconMissing) {
- mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult());
+ InjectMockResult(GURL(kDummyUrl), favicon_base::FaviconRawBitmapResult());
// Expect default fallback style, including background.
expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 24,
- 24,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 24, 24,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -254,13 +197,11 @@ TEST_F(LargeIconServiceTest, FallbackSinceIconMissing) {
}
TEST_F(LargeIconServiceTest, FallbackSinceIconMissingNoScale) {
- mock_favicon_service_->InjectResult(favicon_base::FaviconRawBitmapResult());
+ InjectMockResult(GURL(kDummyUrl), favicon_base::FaviconRawBitmapResult());
// Expect default fallback style, including background.
expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 24,
- 0,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 24, 0,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
@@ -270,14 +211,12 @@ TEST_F(LargeIconServiceTest, FallbackSinceIconMissingNoScale) {
// Oddball case where we demand a high resolution icon to scale down. Generates
// fallback even though an icon with the final size is available.
TEST_F(LargeIconServiceTest, FallbackSinceTooPicky) {
- mock_favicon_service_->InjectResult(CreateTestBitmap(24, 24, kTestColor));
+ InjectMockResult(GURL(kDummyUrl), CreateTestBitmap(24, 24, kTestColor));
expected_fallback_icon_style_.reset(new favicon_base::FallbackIconStyle);
expected_fallback_icon_style_->background_color = kTestColor;
expected_fallback_icon_style_->is_default_background_color = false;
- large_icon_service_->GetLargeIconOrFallbackStyle(
- GURL(kDummyUrl),
- 32,
- 24,
+ large_icon_service_.GetLargeIconOrFallbackStyle(
+ GURL(kDummyUrl), 32, 24,
base::Bind(&LargeIconServiceTest::ResultCallback, base::Unretained(this)),
&cancelable_task_tracker_);
base::RunLoop().RunUntilIdle();
« no previous file with comments | « components/favicon/core/large_icon_service.h ('k') | components/favicon/core/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698