tdf#138950: vcl_jpeg_read_write: Add unittest
Change-Id: Ia1adcac3e10d1aa17281963d27718a37bf37b953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107814 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
@@ -28,11 +28,13 @@ public:
|
||||
void testReadRGB();
|
||||
void testReadGray();
|
||||
void testReadCMYK();
|
||||
void testTdf138950();
|
||||
|
||||
CPPUNIT_TEST_SUITE(JpegReaderTest);
|
||||
CPPUNIT_TEST(testReadRGB);
|
||||
CPPUNIT_TEST(testReadGray);
|
||||
CPPUNIT_TEST(testReadCMYK);
|
||||
CPPUNIT_TEST(testTdf138950);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
};
|
||||
|
||||
@@ -162,6 +164,33 @@ void JpegReaderTest::testReadCMYK()
|
||||
CPPUNIT_ASSERT_EQUAL(4, getNumberOfImageComponents(aGraphic));
|
||||
}
|
||||
|
||||
void JpegReaderTest::testTdf138950()
|
||||
{
|
||||
Graphic aGraphic = loadJPG(getFullUrl("tdf138950.jpeg"));
|
||||
Bitmap aBitmap = aGraphic.GetBitmapEx().GetBitmap();
|
||||
Size aSize = aBitmap.GetSizePixel();
|
||||
CPPUNIT_ASSERT_EQUAL(tools::Long(720), aSize.Width());
|
||||
CPPUNIT_ASSERT_EQUAL(tools::Long(1280), aSize.Height());
|
||||
|
||||
Bitmap::ScopedReadAccess pReadAccess(aBitmap);
|
||||
int nBlackCount = 0;
|
||||
for (tools::Long nY = 0; nY < aSize.Height(); ++nY)
|
||||
{
|
||||
for (tools::Long nX = 0; nX < aSize.Width(); ++nX)
|
||||
{
|
||||
const Color aColor = pReadAccess->GetColor(nY, nX);
|
||||
if ((aColor.GetRed() == 0x00) && (aColor.GetGreen() == 0x00)
|
||||
&& (aColor.GetBlue() == 0x00))
|
||||
++nBlackCount;
|
||||
}
|
||||
}
|
||||
|
||||
// Without the fix in place, this test would have failed with
|
||||
// - Expected: 0
|
||||
// - Actual : 921600
|
||||
CPPUNIT_ASSERT_EQUAL(0, nBlackCount);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(JpegReaderTest);
|
||||
|
||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||
|
BIN
vcl/qa/cppunit/jpeg/data/tdf138950.jpeg
Normal file
BIN
vcl/qa/cppunit/jpeg/data/tdf138950.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
Reference in New Issue
Block a user