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..c217e495f9f064c34f85a2b731887d5d292388c9 |
--- /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 int minimum_icon_size_in_px, |
+ const std::vector<SkBitmap>& bitmaps) { |
+ return ManifestIconDownloader::FindClosestBitmapIndex( |
+ ideal_icon_size_in_px, minimum_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, 0, std::vector<SkBitmap>())); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, ExactIsChosen) { |
+ std::vector<SkBitmap> vector; |
mlamouri (slow - plz ping)
2015/08/21 12:59:08
nit: I should have seen that before but using |vec
Lalit Maganti
2015/08/21 13:21:34
Done.
|
+ vector.push_back(CreateDummyBitmap(10, 10)); |
+ |
+ ASSERT_EQ(0, FindBitmap(10, 0, vector)); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, BiggerIsChosen) { |
+ std::vector<SkBitmap> vector; |
+ vector.push_back(CreateDummyBitmap(20, 20)); |
+ |
+ ASSERT_EQ(0, FindBitmap(10, 0, vector)); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, SmallerBelowMinimumIsIgnored) { |
+ std::vector<SkBitmap> vector; |
+ vector.push_back(CreateDummyBitmap(10, 10)); |
+ |
+ ASSERT_EQ(-1, FindBitmap(20, 15, vector)); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, SmallerAboveMinimumIsChosen) { |
+ std::vector<SkBitmap> vector; |
+ vector.push_back(CreateDummyBitmap(15, 15)); |
+ |
+ ASSERT_EQ(0, FindBitmap(20, 15, 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, 0, 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, 0, 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, 0, 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, 0, 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, 0, 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, 0, vector)); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, NonSquareHeightIsIgnored) { |
+ std::vector<SkBitmap> vector; |
+ vector.push_back(CreateDummyBitmap(15, 10)); |
+ |
+ ASSERT_EQ(-1, FindBitmap(10, 0, vector)); |
+} |
+ |
+TEST_F(ManifestIconDownloaderTest, NonSquareWidthIsIgnored) { |
mlamouri (slow - plz ping)
2015/08/21 12:59:08
nit: NonSquareHeightIsIgnored/NonSquareWidthIsIgno
Lalit Maganti
2015/08/21 13:21:34
Done.
|
+ std::vector<SkBitmap> vector; |
+ vector.push_back(CreateDummyBitmap(15, 10)); |
+ |
+ ASSERT_EQ(-1, FindBitmap(15, 0, vector)); |
+} |