diff --git a/sd/qa/unit/data/underline.fodp b/sd/qa/unit/data/underline.fodp
new file mode 100644
index 000000000000..6fe945b3fce7
--- /dev/null
+++ b/sd/qa/unit/data/underline.fodp
@@ -0,0 +1,754 @@
+
+
+
+ 2022-04-21T09:59:24.3609835462022-04-21T10:00:11.300414659PT47S1LibreOfficeDev/7.4.0.0.alpha0$Linux_X86_64 LibreOffice_project/795a39cc0b0e640863503d4b7b1dfdc4fcd7c6a4
+
+
+ -30780
+ -441
+ 29545
+ 77170
+
+
+ view1
+ false
+ false
+ true
+ true
+ true
+ true
+ false
+ false
+ true
+ 1500
+ false
+ Hw==
+ Hw==
+
+ false
+ true
+ false
+ 0
+ 0
+ false
+ true
+ true
+ 4
+ 0
+ -30780
+ -441
+ 29546
+ 77171
+ 2000
+ 2000
+ 500
+ 500
+ 2000
+ 4
+ 2000
+ 4
+ false
+ 1500
+ true
+ false
+
+
+
+
+ true
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sob
+ 0
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soc
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sod
+ 1250
+ true
+ true
+ false
+ true
+ false
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.sog
+ true
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soh
+ 0
+ false
+ false
+ true
+ true
+ false
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ $(brandbaseurl)/share/palette%3B$(userpath)/config/standard.soe
+ false
+ 4
+ false
+ 0
+ low-resolution
+ Generic Printer
+ false
+ lAH+/0dlbmVyaWMgUHJpbnRlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU0dFTlBSVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMAtQAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9R2VuZXJpYyBQcmludGVyCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCmNvbGxhdGU9ZmFsc2UKbWFyZ2luYWRqdXN0bWVudD0wLDAsMCwwCmNvbG9yZGVwdGg9MjQKcHNsZXZlbD0wCnBkZmRldmljZT0xCmNvbG9yZGV2aWNlPTAKUFBEQ29udGV4dERhdGEKUGFnZVNpemU6QTQAABIAQ09NUEFUX0RVUExFWF9NT0RFDwBEdXBsZXhNb2RlOjpPZmY=
+ true
+ false
+ 6
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <number>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <number>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <number>
+
+
+
+
+
+
+
+
+
+
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sd/qa/unit/export-tests-ooxml3.cxx b/sd/qa/unit/export-tests-ooxml3.cxx
index 23486c66f254..7a6cad3f9124 100644
--- a/sd/qa/unit/export-tests-ooxml3.cxx
+++ b/sd/qa/unit/export-tests-ooxml3.cxx
@@ -21,6 +21,7 @@
#include
#include
+#include
#include
#include
#include
@@ -91,6 +92,7 @@ public:
void testTdf128213();
void testTdf129372();
void testShapeGlowEffect();
+ void testUnderline();
void testTdf119087();
void testTdf131554();
void testTdf132282();
@@ -170,6 +172,7 @@ public:
CPPUNIT_TEST(testTdf128213);
CPPUNIT_TEST(testTdf129372);
CPPUNIT_TEST(testShapeGlowEffect);
+ CPPUNIT_TEST(testUnderline);
CPPUNIT_TEST(testTdf119087);
CPPUNIT_TEST(testTdf131554);
CPPUNIT_TEST(testTdf132282);
@@ -1571,6 +1574,46 @@ void SdOOXMLExportTest3::testShapeGlowEffect()
CPPUNIT_ASSERT_EQUAL(sal_Int16(60), nTransparency);
}
+void SdOOXMLExportTest3::testUnderline()
+{
+ ::sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc(u"sd/qa/unit/data/underline.fodp"), FODP);
+
+ uno::Reference xShape(getShapeFromPage(0, 0, xDocShRef));
+ uno::Reference xParagraph(getParagraphFromShape(0, xShape));
+ uno::Reference xRun(getRunFromParagraph(0, xParagraph));
+ uno::Reference xPropSet(xRun, uno::UNO_QUERY_THROW);
+
+ Color nColor;
+ xPropSet->getPropertyValue("CharColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, nColor);
+
+ xPropSet->getPropertyValue("CharUnderlineColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(COL_AUTO, nColor);
+
+ sal_Int16 nUnderline;
+ xPropSet->getPropertyValue("CharUnderline") >>= nUnderline;
+ CPPUNIT_ASSERT_EQUAL(awt::FontUnderline::DOUBLE, nUnderline);
+
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX);
+
+ xShape.set(getShapeFromPage(0, 0, xDocShRef));
+ xParagraph.set(getParagraphFromShape(0, xShape));
+ xRun.set(getRunFromParagraph(0, xParagraph));
+ xPropSet.set(xRun, uno::UNO_QUERY_THROW);
+
+ xPropSet->getPropertyValue("CharColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, nColor);
+
+ xPropSet->getPropertyValue("CharUnderlineColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(COL_AUTO, nColor);
+
+ xPropSet->getPropertyValue("CharUnderline") >>= nUnderline;
+ CPPUNIT_ASSERT_EQUAL(awt::FontUnderline::DOUBLE, nUnderline);
+
+ xDocShRef->DoClose();
+}
+
void SdOOXMLExportTest3::testTdf119087()
{
::sd::DrawDocShellRef xDocShRef