From 5b7d51af074aa1c4616a6f411892974cc28d2e00 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Fri, 27 Mar 2015 19:56:04 +0100 Subject: add test for tdf#89170 Change-Id: Ia3458ae91ea20aa3f5090f9b85a5030ddde81c3c --- sc/qa/unit/data/xlsx/strike-through.xlsx | Bin 0 -> 8914 bytes sc/qa/unit/subsequent_filters-test.cxx | 34 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 sc/qa/unit/data/xlsx/strike-through.xlsx (limited to 'sc/qa/unit') 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 Binary files /dev/null and b/sc/qa/unit/data/xlsx/strike-through.xlsx 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 #include #include +#include #include #include #include @@ -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 aAttribs; + pObj->GetCharAttribs(0, aAttribs); + for (std::vector::const_iterator itr = aAttribs.begin(); itr != aAttribs.end(); ++itr) + { + if (itr->pAttr->Which() == EE_CHAR_STRIKEOUT) + { + const SvxCrossedOutItem& rItem = static_cast(*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" ) { -- cgit