Chromium Code Reviews| Index: chrome/browser/manifest/manifest_icon_downloader_unittest.cc |
| diff --git a/chrome/browser/manifest/manifest_icon_downloader_unittest.cc b/chrome/browser/manifest/manifest_icon_downloader_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c82f7ac38a6929be3f7ecb8eb647508d95fe4c96 |
| --- /dev/null |
| +++ b/chrome/browser/manifest/manifest_icon_downloader_unittest.cc |
| @@ -0,0 +1,128 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/manifest/manifest_icon_downloader.h" |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +class ManifestIconDownloaderTest : public testing::Test { |
| + protected: |
| + ManifestIconDownloaderTest() = default; |
| + ~ManifestIconDownloaderTest() override = default; |
| + |
| + int FindBitmap(const int ideal_icon_size_in_px, |
| + const std::vector<SkBitmap>& bitmaps) { |
| + return ManifestIconDownloader::FindClosestBitmapIndex( |
| + ideal_icon_size_in_px, bitmaps); |
| + } |
| + |
| + SkBitmap CreateDummyBitmap(int width, int height) { |
| + SkBitmap bitmap; |
| + bitmap.allocN32Pixels(width, height); |
| + bitmap.setImmutable(); |
| + return bitmap; |
| + } |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ManifestIconDownloaderTest); |
| +}; |
| + |
| +TEST_F(ManifestIconDownloaderTest, NoIcons) { |
| + ASSERT_EQ(-1, FindBitmap(0, std::vector<SkBitmap>())); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, ExactIsChosen) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + |
| + ASSERT_EQ(0, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, BiggerIsChosen) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + |
| + ASSERT_EQ(0, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, SmallerBelowIsIgnored) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + |
| + ASSERT_EQ(-1, FindBitmap(20, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, ExactIsPreferredOverBigger) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + |
| + ASSERT_EQ(1, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, ExactIsPreferredOverSmaller) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + |
| + ASSERT_EQ(0, FindBitmap(20, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, BiggerIsPreferredOverCloserSmaller) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + |
| + ASSERT_EQ(0, FindBitmap(11, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, ClosestToExactIsChosen) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(25, 25)); |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + |
| + ASSERT_EQ(1, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, ClosestToExactIsChosenUnordered) { |
|
gone
2015/08/19 22:21:08
how is this test different from ClosestToExactIsCh
Lalit Maganti
2015/08/20 16:48:00
It's not anymore because of the sorting restrictio
|
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(25, 25)); |
| + vector.push_back(CreateDummyBitmap(20, 20)); |
| + |
| + ASSERT_EQ(1, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, MixedReturnsBiggestClosest) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + vector.push_back(CreateDummyBitmap(8, 8)); |
| + vector.push_back(CreateDummyBitmap(6, 6)); |
| + |
| + ASSERT_EQ(0, FindBitmap(9, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, MixedCanReturnMiddle) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(10, 10)); |
| + vector.push_back(CreateDummyBitmap(8, 8)); |
| + vector.push_back(CreateDummyBitmap(6, 6)); |
| + |
| + ASSERT_EQ(1, FindBitmap(7, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, NonSquareHeightIsIgnored) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(15, 10)); |
| + |
| + ASSERT_EQ(-1, FindBitmap(10, vector)); |
| +} |
| + |
| +TEST_F(ManifestIconDownloaderTest, NonSquareWidthIsIgnored) { |
| + std::vector<SkBitmap> vector; |
| + vector.push_back(CreateDummyBitmap(15, 10)); |
| + |
| + ASSERT_EQ(-1, FindBitmap(15, vector)); |
| +} |