summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2015-03-27 19:56:04 +0100
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2015-03-27 19:58:28 +0100
commit5b7d51af074aa1c4616a6f411892974cc28d2e00 (patch)
tree9c7980c0cfa2e91773b1d5a3fa8d1ab9d786f6f7
parent8dd2888ac75c2c2ee9ca0ed0c6abda4dab7420cc (diff)
add test for tdf#89170
Change-Id: Ia3458ae91ea20aa3f5090f9b85a5030ddde81c3c
-rw-r--r--sc/qa/unit/data/xlsx/strike-through.xlsxbin0 -> 8914 bytes
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx34
2 files changed, 34 insertions, 0 deletions
diff --git a/sc/qa/unit/data/xlsx/strike-through.xlsx b/sc/qa/unit/data/xlsx/strike-through.xlsx
new file mode 100644
index 000000000000..ca5676892761
--- /dev/null
+++ b/sc/qa/unit/data/xlsx/strike-through.xlsx
Binary files differ
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 16a0e08d2264..07b224f3dd7b 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -27,6 +27,7 @@
#include <svx/svdoole2.hxx>
#include <editeng/wghtitem.hxx>
#include <editeng/postitem.hxx>
+#include <editeng/crossedoutitem.hxx>
#include <editeng/udlnitem.hxx>
#include <editeng/editobj.hxx>
#include <editeng/borderline.hxx>
@@ -188,6 +189,7 @@ public:
void testCopyMergedNumberFormats();
void testVBAUserFunctionXLSM();
void testEmbeddedImageXLS();
+ void testEditEngStrikeThroughXLSX();
CPPUNIT_TEST_SUITE(ScFiltersTest);
CPPUNIT_TEST(testBooleanFormatXLSX);
@@ -275,6 +277,7 @@ public:
CPPUNIT_TEST(testVBAUserFunctionXLSM);
CPPUNIT_TEST(testEmbeddedImageXLS);
CPPUNIT_TEST(testErrorOnExternalReferences);
+ CPPUNIT_TEST(testEditEngStrikeThroughXLSX);
CPPUNIT_TEST_SUITE_END();
private:
@@ -2867,6 +2870,37 @@ void ScFiltersTest::testErrorOnExternalReferences()
xDocSh->DoClose();
}
+void ScFiltersTest::testEditEngStrikeThroughXLSX()
+{
+ ScDocShellRef xDocSh = loadDoc("strike-through.", XLSX);
+ CPPUNIT_ASSERT_MESSAGE("Failed to open doc", xDocSh.Is());
+
+ ScDocument& rDoc = xDocSh->GetDocument();
+
+ const EditTextObject* pObj = rDoc.GetEditText(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pObj);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pObj->GetParagraphCount());
+ CPPUNIT_ASSERT_EQUAL(OUString("this is strike through this not"), pObj->GetText(0));
+
+ std::vector<EECharAttrib> aAttribs;
+ pObj->GetCharAttribs(0, aAttribs);
+ for (std::vector<EECharAttrib>::const_iterator itr = aAttribs.begin(); itr != aAttribs.end(); ++itr)
+ {
+ if (itr->pAttr->Which() == EE_CHAR_STRIKEOUT)
+ {
+ const SvxCrossedOutItem& rItem = static_cast<const SvxCrossedOutItem&>(*itr->pAttr);
+ if (itr->nStart == 0)
+ {
+ CPPUNIT_ASSERT(rItem.GetStrikeout() != STRIKEOUT_NONE);
+ }
+ else
+ {
+ CPPUNIT_ASSERT_EQUAL(STRIKEOUT_NONE, rItem.GetStrikeout());
+ }
+ }
+ }
+}
+
ScFiltersTest::ScFiltersTest()
: ScBootstrapFixture( "/sc/qa/unit/data" )
{