diff --git a/sw/CppunitTest_sw_htmlexport.mk b/sw/CppunitTest_sw_htmlexport.mk index 475ce41884ba..23cdef152076 100644 --- a/sw/CppunitTest_sw_htmlexport.mk +++ b/sw/CppunitTest_sw_htmlexport.mk @@ -56,6 +56,7 @@ $(eval $(call gb_CppunitTest_use_components,sw_htmlexport,\ canvas/source/factory/canvasfactory \ comphelper/util/comphelp \ configmgr/source/configmgr \ + dbaccess/util/dba \ embeddedobj/util/embobj \ filter/source/config/cache/filterconfig1 \ filter/source/storagefilterdetect/storagefd \ diff --git a/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc b/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc new file mode 100644 index 000000000000..17162a41012b Binary files /dev/null and b/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc differ diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index 1c479a01dd85..2db20efe992f 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -200,6 +200,26 @@ DECLARE_HTMLEXPORT_TEST(testExportImageProperties, "HTMLImage.odt") assertXPath(pDoc, "/html/body/p/a/font/img", "usemap", "#map1"); } +DECLARE_HTMLEXPORT_TEST(testExportCheckboxRadioButtonState, "checkbox-radiobutton.doc") +{ + htmlDocPtr pDoc = parseHtml(maTempFile); + CPPUNIT_ASSERT(pDoc); + + assertXPath(pDoc, "/html/body", 1); + assertXPath(pDoc, "/html/body/p[1]/input", "type", "checkbox"); + assertXPath(pDoc, "/html/body/p[1]/input", "checked", "checked"); + assertXPath(pDoc, "/html/body/p[2]/input", "type", "checkbox"); + assertXPathNoAttribute(pDoc, "/html/body/p[2]/input", "checked"); + assertXPath(pDoc, "/html/body/form/p[1]/input", "type", "checkbox"); + assertXPath(pDoc, "/html/body/form/p[1]/input", "checked", "checked"); + assertXPath(pDoc, "/html/body/form/p[2]/input", "type", "checkbox"); + assertXPathNoAttribute(pDoc, "/html/body/form/p[2]/input", "checked"); + assertXPath(pDoc, "/html/body/form/p[3]/input", "type", "radio"); + assertXPath(pDoc, "/html/body/form/p[3]/input", "checked", "checked"); + assertXPath(pDoc, "/html/body/form/p[4]/input", "type", "radio"); + assertXPathNoAttribute(pDoc, "/html/body/form/p[4]/input", "checked"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx index 4fc3adf8620b..781704f5f20e 100644 --- a/sw/source/filter/html/htmlforw.cxx +++ b/sw/source/filter/html/htmlforw.cxx @@ -752,6 +752,9 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt, TRISTATE_FALSE != *(sal_Int16*) aTmp.getValue() ) { sOptions += " " + OString(OOO_STRING_SVTOOLS_HTML_O_checked); + sOptions += "=\""; + sOptions += OString(OOO_STRING_SVTOOLS_HTML_O_checked); + sOptions += "\""; } aTmp = xPropSet->getPropertyValue( "RefValue" ); @@ -970,7 +973,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt, sOut = "\""; } - sOut = sOptions; + sOut += " " + sOptions; if( TYPE_IMAGE == eType ) {