[Libreoffice-commits] core.git: sc/qa

Eike Rathke erack at redhat.com
Tue Jul 23 14:01:42 PDT 2013


 sc/qa/unit/data/ods/rich-text-cells.ods |binary
 sc/qa/unit/subsequent_filters-test.cxx  |   57 +++++++++++++++++++++++++++-----
 2 files changed, 49 insertions(+), 8 deletions(-)

New commits:
commit 038d162b175b62d67a94d4418b3a15a1a382419d
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jul 23 22:58:25 2013 +0200

    unit test for <text:s> in <text:p> and <text:span>, fdo#67094
    
    Change-Id: I033668dcdcdcc1a5710f2ddacadf9a1a5344638e

diff --git a/sc/qa/unit/data/ods/rich-text-cells.ods b/sc/qa/unit/data/ods/rich-text-cells.ods
index da3a1ed..b039c37 100644
Binary files a/sc/qa/unit/data/ods/rich-text-cells.ods and b/sc/qa/unit/data/ods/rich-text-cells.ods differ
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 3ed4d6e..79d31c8 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -1660,18 +1660,20 @@ void ScFiltersTest::testRichTextContentODS()
 
     // first line is bold.
     pEditText->GetCharAttribs(0, aAttribs);
-    bool bHasBold = false;
-    for (it = aAttribs.begin(), itEnd = aAttribs.end(); it != itEnd; ++it)
     {
-        if (it->pAttr->Which() == EE_CHAR_WEIGHT)
+        bool bHasBold = false;
+        for (it = aAttribs.begin(), itEnd = aAttribs.end(); it != itEnd; ++it)
         {
-            const SvxWeightItem& rItem = static_cast<const SvxWeightItem&>(*it->pAttr);
-            bHasBold = (rItem.GetWeight() == WEIGHT_BOLD);
-            if (bHasBold)
-                break;
+            if (it->pAttr->Which() == EE_CHAR_WEIGHT)
+            {
+                const SvxWeightItem& rItem = static_cast<const SvxWeightItem&>(*it->pAttr);
+                bHasBold = (rItem.GetWeight() == WEIGHT_BOLD);
+                if (bHasBold)
+                    break;
+            }
         }
+        CPPUNIT_ASSERT_MESSAGE("First line should be bold.", bHasBold);
     }
-    CPPUNIT_ASSERT_MESSAGE("First line should be bold.", bHasBold);
 
     // second line is italic.
     pEditText->GetCharAttribs(1, aAttribs);
@@ -1738,6 +1740,45 @@ void ScFiltersTest::testRichTextContentODS()
     const SvxURLField* pURLData = static_cast<const SvxURLField*>(pData);
     CPPUNIT_ASSERT_MESSAGE("URL is not absolute with respect to the file system.", pURLData->GetURL().startsWith("file:///"));
 
+    // Embedded spaces as <text:s text:c='4' />, normal text
+    aPos.IncRow();
+    CPPUNIT_ASSERT_EQUAL(CELLTYPE_STRING, pDoc->GetCellType(aPos));
+    CPPUNIT_ASSERT_EQUAL(OUString("one     two"), pDoc->GetString(aPos.Col(), aPos.Row(), aPos.Tab()));
+
+    // Leading space as <text:s />.
+    aPos.IncRow();
+    CPPUNIT_ASSERT_EQUAL(CELLTYPE_STRING, pDoc->GetCellType(aPos));
+    CPPUNIT_ASSERT_EQUAL(OUString(" =3+4"), pDoc->GetString(aPos.Col(), aPos.Row(), aPos.Tab()));
+
+    // Embedded spaces with <text:s text:c='4' /> inside a <text:span>, text
+    // partly bold.
+    aPos.IncRow();
+    CPPUNIT_ASSERT_EQUAL(CELLTYPE_EDIT, pDoc->GetCellType(aPos));
+    pEditText = pDoc->GetEditText(aPos);
+    CPPUNIT_ASSERT_MESSAGE("Failed to retrieve edit text object.", pEditText);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), pEditText->GetParagraphCount());
+    aParaText = pEditText->GetText(0);
+    CPPUNIT_ASSERT_EQUAL(OUString("one     two"), aParaText);
+    pEditText->GetCharAttribs(0, aAttribs);
+    {
+        bool bHasBold = false;
+        for (it = aAttribs.begin(), itEnd = aAttribs.end(); it != itEnd; ++it)
+        {
+            if (it->pAttr->Which() == EE_CHAR_WEIGHT)
+            {
+                const SvxWeightItem& rItem = static_cast<const SvxWeightItem&>(*it->pAttr);
+                bHasBold = (rItem.GetWeight() == WEIGHT_BOLD);
+                if (bHasBold)
+                {
+                    OUString aSeg = aParaText.copy(it->nStart, it->nEnd - it->nStart);
+                    CPPUNIT_ASSERT_EQUAL(OUString("e     t"), aSeg);
+                    break;
+                }
+            }
+        }
+        CPPUNIT_ASSERT_MESSAGE("Expected a bold sequence.", bHasBold);
+    }
+
     xDocSh->DoClose();
 }
 


More information about the Libreoffice-commits mailing list