| Index: chrome/browser/themes/browser_theme_pack_unittest.cc
|
| diff --git a/chrome/browser/themes/browser_theme_pack_unittest.cc b/chrome/browser/themes/browser_theme_pack_unittest.cc
|
| index 1c8bd788e0117123027e457cbdd2e92e321dc9c2..5516ddcaae93852ca4e02402b579ac66c35d8ddf 100644
|
| --- a/chrome/browser/themes/browser_theme_pack_unittest.cc
|
| +++ b/chrome/browser/themes/browser_theme_pack_unittest.cc
|
| @@ -189,7 +189,7 @@ class BrowserThemePackTest : public ::testing::Test {
|
| }
|
| test_path = test_path.AppendASCII("extensions");
|
| test_path = test_path.AppendASCII("theme_hidpi");
|
| - return base::FilePath(test_path);
|
| + return test_path;
|
| }
|
|
|
| // Verifies the data in star gazing. We do this multiple times for different
|
| @@ -247,17 +247,18 @@ class BrowserThemePackTest : public ::testing::Test {
|
| EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_FRAME_INCOGNITO));
|
| EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_FRAME_INCOGNITO_INACTIVE));
|
| EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_TOOLBAR));
|
| + // TODO(sschmitz): uncomment next two lines when ntp test data available.
|
| + // EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_NTP_BACKGROUND));
|
| + // EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_NTP_ATTRIBUTION));
|
|
|
| // The high DPI theme does not define the following images:
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_TAB_BACKGROUND));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_TAB_BACKGROUND));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_TAB_BACKGROUND_INCOGNITO));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_TAB_BACKGROUND_V));
|
| - EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_NTP_BACKGROUND));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_FRAME_OVERLAY));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_FRAME_OVERLAY_INACTIVE));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_BUTTON_BACKGROUND));
|
| - EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_NTP_ATTRIBUTION));
|
| EXPECT_FALSE(pack->HasCustomImage(IDR_THEME_WINDOW_CONTROL_BACKGROUND));
|
|
|
| // Compare some known pixel colors at know locations for a theme
|
| @@ -350,6 +351,140 @@ class BrowserThemePackTest : public ::testing::Test {
|
| rep4.sk_bitmap().unlockPixels();
|
| }
|
|
|
| + void VerifyHiDpiNtpTheme(BrowserThemePack* pack) {
|
| + // The theme extension for this test uses the same image several times
|
| + // in the input (manifest.json).
|
| + // This (raw png) image has size 120x120. It has a black square
|
| + // starting at (6,6).
|
| + // For the NTP background this image is specified for scales: 100, 140
|
| + // and 200 percent.
|
| + // For the NTP attribution this image is specified only for scale: 150
|
| + // percent.
|
| + EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_NTP_BACKGROUND));
|
| + EXPECT_TRUE(pack->HasCustomImage(IDR_THEME_NTP_ATTRIBUTION));
|
| +
|
| + // The background image has the same png input for 100%, 140%, 200%.
|
| + int idr = IDR_THEME_NTP_BACKGROUND;
|
| + gfx::Image image = pack->GetImageNamed(idr);
|
| + EXPECT_FALSE(image.IsEmpty());
|
| + EXPECT_EQ(120, image.Size().width());
|
| + EXPECT_EQ(120, image.Size().height());
|
| +
|
| + const gfx::ImageSkia* image_skia = image.ToImageSkia();
|
| + ASSERT_TRUE(image_skia);
|
| +
|
| + // 100% was in input.
|
| + const gfx::ImageSkiaRep& rep100 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_100P);
|
| + ASSERT_FALSE(rep100.is_null());
|
| + EXPECT_EQ(120, rep100.sk_bitmap().width());
|
| + EXPECT_EQ(120, rep100.sk_bitmap().height());
|
| + rep100.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep100.sk_bitmap().getColor(5, 5));
|
| + EXPECT_EQ(SK_ColorBLACK, rep100.sk_bitmap().getColor(6, 6));
|
| + rep100.sk_bitmap().unlockPixels();
|
| +
|
| + // 133% not in input, was scaled from 200%.
|
| + const gfx::ImageSkiaRep& rep133 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_133P);
|
| + ASSERT_FALSE(rep133.is_null());
|
| + EXPECT_EQ(80, rep133.sk_bitmap().width());
|
| + EXPECT_EQ(80, rep133.sk_bitmap().height());
|
| + rep133.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep133.sk_bitmap().getColor(3, 3));
|
| + EXPECT_EQ(SK_ColorBLACK, rep133.sk_bitmap().getColor(4, 4));
|
| + rep133.sk_bitmap().unlockPixels();
|
| +
|
| + // 140% was in input.
|
| + const gfx::ImageSkiaRep& rep140 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_140P);
|
| + ASSERT_FALSE(rep140.is_null());
|
| + EXPECT_EQ(120, rep140.sk_bitmap().width());
|
| + EXPECT_EQ(120, rep140.sk_bitmap().height());
|
| + rep140.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep140.sk_bitmap().getColor(5, 5));
|
| + EXPECT_EQ(SK_ColorBLACK, rep140.sk_bitmap().getColor(6, 6));
|
| + rep140.sk_bitmap().unlockPixels();
|
| +
|
| + // 150% not in input, was scaled from 200%.
|
| + const gfx::ImageSkiaRep& rep150 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_150P);
|
| + ASSERT_FALSE(rep150.is_null());
|
| + EXPECT_EQ(90, rep150.sk_bitmap().width());
|
| + EXPECT_EQ(90, rep150.sk_bitmap().height());
|
| + rep150.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep150.sk_bitmap().getColor(4, 4));
|
| + EXPECT_EQ(SK_ColorBLACK, rep150.sk_bitmap().getColor(5, 5));
|
| + rep150.sk_bitmap().unlockPixels();
|
| +
|
| + // 180% not in input, was scaled from 200%.
|
| + const gfx::ImageSkiaRep& rep180 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_180P);
|
| + ASSERT_FALSE(rep180.is_null());
|
| + EXPECT_EQ(108, rep180.sk_bitmap().width());
|
| + EXPECT_EQ(108, rep180.sk_bitmap().height());
|
| + rep180.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep180.sk_bitmap().getColor(4, 4));
|
| + EXPECT_EQ(SK_ColorBLACK, rep180.sk_bitmap().getColor(5, 5));
|
| + rep180.sk_bitmap().unlockPixels();
|
| +
|
| + // 200% was in input.
|
| + const gfx::ImageSkiaRep& rep200 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_200P);
|
| + ASSERT_FALSE(rep200.is_null());
|
| + EXPECT_EQ(120, rep200.sk_bitmap().width());
|
| + EXPECT_EQ(120, rep200.sk_bitmap().height());
|
| + rep200.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rep200.sk_bitmap().getColor(5, 5));
|
| + EXPECT_EQ(SK_ColorBLACK, rep200.sk_bitmap().getColor(6, 6));
|
| + rep200.sk_bitmap().unlockPixels();
|
| +
|
| + // Now process the image for NTP attribution.
|
| + // The attribution image has only an input for 150%.
|
| +
|
| + idr = IDR_THEME_NTP_ATTRIBUTION;
|
| + image = pack->GetImageNamed(idr);
|
| + EXPECT_FALSE(image.IsEmpty());
|
| + EXPECT_EQ(80, image.Size().width());
|
| + EXPECT_EQ(80, image.Size().height());
|
| +
|
| + image_skia = image.ToImageSkia();
|
| + ASSERT_TRUE(image_skia);
|
| +
|
| + // 100% was not in input, scaled from 150
|
| + const gfx::ImageSkiaRep& rpr100 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_100P);
|
| + ASSERT_FALSE(rpr100.is_null());
|
| + EXPECT_EQ(80, rpr100.sk_bitmap().width());
|
| + EXPECT_EQ(80, rpr100.sk_bitmap().height());
|
| + rpr100.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rpr100.sk_bitmap().getColor(3, 3));
|
| + EXPECT_EQ(SK_ColorBLACK, rpr100.sk_bitmap().getColor(4, 4));
|
| + rpr100.sk_bitmap().unlockPixels();
|
| +
|
| + // 150% was in input
|
| + const gfx::ImageSkiaRep& rpr150 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_150P);
|
| + ASSERT_FALSE(rpr150.is_null());
|
| + EXPECT_EQ(120, rpr150.sk_bitmap().width());
|
| + EXPECT_EQ(120, rpr150.sk_bitmap().height());
|
| + rpr150.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rpr150.sk_bitmap().getColor(5, 5));
|
| + EXPECT_EQ(SK_ColorBLACK, rpr150.sk_bitmap().getColor(6, 6));
|
| + rpr150.sk_bitmap().unlockPixels();
|
| +
|
| + // 200% was not in input, scaled from 150
|
| + const gfx::ImageSkiaRep& rpr200 = image_skia->GetRepresentation(
|
| + ui::SCALE_FACTOR_200P);
|
| + ASSERT_FALSE(rpr200.is_null());
|
| + EXPECT_EQ(160, rpr200.sk_bitmap().width());
|
| + EXPECT_EQ(160, rpr200.sk_bitmap().height());
|
| + rpr200.sk_bitmap().lockPixels();
|
| + EXPECT_EQ(SK_ColorWHITE, rpr200.sk_bitmap().getColor(7, 7));
|
| + EXPECT_EQ(SK_ColorBLACK, rpr200.sk_bitmap().getColor(8, 8));
|
| + rpr200.sk_bitmap().unlockPixels();
|
| + }
|
| +
|
| base::MessageLoop message_loop;
|
| content::TestBrowserThread fake_ui_thread;
|
| content::TestBrowserThread fake_file_thread;
|
| @@ -585,6 +720,10 @@ TEST_F(BrowserThemePackTest, CanBuildAndReadPack) {
|
| TEST_F(BrowserThemePackTest, HiDpiThemeTest) {
|
| std::vector<ui::ScaleFactor> scale_factors;
|
| scale_factors.push_back(ui::SCALE_FACTOR_100P);
|
| + scale_factors.push_back(ui::SCALE_FACTOR_133P);
|
| + scale_factors.push_back(ui::SCALE_FACTOR_140P);
|
| + scale_factors.push_back(ui::SCALE_FACTOR_150P);
|
| + scale_factors.push_back(ui::SCALE_FACTOR_180P);
|
| scale_factors.push_back(ui::SCALE_FACTOR_200P);
|
| ui::test::ScopedSetSupportedScaleFactors test_scale_factors(scale_factors);
|
| base::ScopedTempDir dir;
|
| @@ -598,6 +737,8 @@ TEST_F(BrowserThemePackTest, HiDpiThemeTest) {
|
| BuildFromUnpackedExtension(hidpi_path, pack);
|
| ASSERT_TRUE(pack->WriteToDisk(file));
|
| VerifyHiDpiTheme(pack.get());
|
| + // TODO(sschmitz): uncomment the next line when test data available.
|
| + // VerifyHiDpiNtpTheme(pack.get());
|
| }
|
|
|
| // Part 2: Try to read back the data pack that we just wrote to disk.
|
| @@ -606,5 +747,7 @@ TEST_F(BrowserThemePackTest, HiDpiThemeTest) {
|
| BrowserThemePack::BuildFromDataPack(file, "gllekhaobjnhgeag");
|
| ASSERT_TRUE(pack.get());
|
| VerifyHiDpiTheme(pack.get());
|
| + // TODO(sschmitz): uncomment the next line when test data available.
|
| + // VerifyHiDpiNtpTheme(pack.get());
|
| }
|
| }
|
|
|