summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2020-12-15 22:10:59 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2020-12-16 12:43:18 +0100
commit2ecdaa672b0362eb314afeea811c72cfa06bb20a (patch)
tree60a5cac2df7668fc3ea134b4c867778bbfdcacd7
parent8bd229c4e42e92545db11832b29bf97540707c32 (diff)
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>
-rw-r--r--vcl/qa/cppunit/jpeg/JpegReaderTest.cxx29
-rw-r--r--vcl/qa/cppunit/jpeg/data/tdf138950.jpegbin0 -> 60662 bytes
2 files changed, 29 insertions, 0 deletions
diff --git a/vcl/qa/cppunit/jpeg/JpegReaderTest.cxx b/vcl/qa/cppunit/jpeg/JpegReaderTest.cxx
index 78124beef5f3..9c01583d1f8c 100644
--- a/vcl/qa/cppunit/jpeg/JpegReaderTest.cxx
+++ b/vcl/qa/cppunit/jpeg/JpegReaderTest.cxx
@@ -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();
diff --git a/vcl/qa/cppunit/jpeg/data/tdf138950.jpeg b/vcl/qa/cppunit/jpeg/data/tdf138950.jpeg
new file mode 100644
index 000000000000..d0296077c6bb
--- /dev/null
+++ b/vcl/qa/cppunit/jpeg/data/tdf138950.jpeg
Binary files differ