[Libreoffice-commits] core.git: 2 commits - sw/qa sw/source

Michael Stahl mstahl at redhat.com
Thu Mar 28 08:50:05 PDT 2013


 sw/qa/core/uwriter.cxx            |   46 ++++++++++++++++++++++++++++++++++++++
 sw/source/core/txtnode/txtedt.cxx |    6 ++--
 2 files changed, 49 insertions(+), 3 deletions(-)

New commits:
commit 0d89580eeb61ae01f1c1f2836f77ffef6a146770
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Mar 28 16:45:51 2013 +0100

    sw: ... and was sentenced to write a unit test for it
    
    Change-Id: I2fb6f97130910e3ae123242505aed0fb57fee512

diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx
index fc3d8be..7d590f5 100644
--- a/sw/qa/core/uwriter.cxx
+++ b/sw/qa/core/uwriter.cxx
@@ -34,8 +34,12 @@
 #include <rtl/strbuf.hxx>
 #include <osl/file.hxx>
 
+#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
+
+#include <comphelper/processfactory.hxx>
 #include <tools/urlobj.hxx>
 #include <unotools/tempfile.hxx>
+#include <unotools/transliterationwrapper.hxx>
 
 #include <editeng/langitem.hxx>
 #include <editeng/charhiddenitem.hxx>
@@ -92,8 +96,10 @@ public:
     void testGraphicAnchorDeletion();
     void testFdo57938();
     void testFdo59573();
+    void testTransliterate();
 
     CPPUNIT_TEST_SUITE(SwDocTest);
+    CPPUNIT_TEST(testTransliterate);
     CPPUNIT_TEST(randomTest);
     CPPUNIT_TEST(testPageDescName);
     CPPUNIT_TEST(testFileNameFields);
@@ -918,6 +924,46 @@ void SwDocTest::testFdo59573()
     CPPUNIT_ASSERT_EQUAL(true, aPaM.HasReadonlySel(false));
 }
 
+static OUString
+translitTest(SwDoc & rDoc, SwPaM & rPaM, sal_uInt32 const nType)
+{
+    utl::TransliterationWrapper aTrans(
+            ::comphelper::getProcessComponentContext(), nType);
+    rDoc.TransliterateText(rPaM, aTrans);
+    return rPaM.GetTxt();
+}
+
+void SwDocTest::testTransliterate()
+{
+    // just some simple test to see if it's totally broken
+    SwNodeIndex aIdx(m_pDoc->GetNodes().GetEndOfContent(), -1);
+    SwPaM aPaM(aIdx);
+    m_pDoc->InsertString(aPaM, OUString("foobar"));
+    aPaM.SetMark();
+    aPaM.GetPoint()->nContent = 0;
+    CPPUNIT_ASSERT_EQUAL(String("foobar"), aPaM.GetTxt());
+
+    CPPUNIT_ASSERT_EQUAL(OUString("FOOBAR"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModules_LOWERCASE_UPPERCASE));
+    CPPUNIT_ASSERT_EQUAL(OUString("Foobar"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModulesExtra::TITLE_CASE));
+    CPPUNIT_ASSERT_EQUAL(OUString("fOOBAR"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModulesExtra::TOGGLE_CASE));
+    CPPUNIT_ASSERT_EQUAL(OUString("foobar"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModules_UPPERCASE_LOWERCASE));
+    CPPUNIT_ASSERT_EQUAL(OUString("Foobar"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModulesExtra::SENTENCE_CASE));
+    CPPUNIT_ASSERT_EQUAL(OUString("Foobar"),
+            translitTest(*m_pDoc, aPaM,
+                i18n::TransliterationModules_HIRAGANA_KATAKANA));
+}
+
+
 void SwDocTest::setUp()
 {
     BootstrapFixture::setUp();
commit 233ab7729585becf9952b6ddf95d7dab1d07340a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Mar 28 16:39:25 2013 +0100

    sw: some idiot broke text transliteration
    
    (regression from 8d25fde680beb9dafb7c9c861b5c00d1ae4f4985)
    
    Change-Id: I00556cd87115fa8e67f32502fc88a4d1eee2a423

diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx
index 39cb9ca..bfc312f 100644
--- a/sw/source/core/txtnode/txtedt.cxx
+++ b/sw/source/core/txtnode/txtedt.cxx
@@ -1670,7 +1670,7 @@ void SwTxtNode::TransliterateText(
                             GetTxt(), GetLang(nStt), nStt, nLen, &aOffsets) );
 
                 assert(nStt < m_Text.getLength());
-                if (0 == rtl_ustr_shortenedCompare_WithLength(
+                if (0 != rtl_ustr_shortenedCompare_WithLength(
                             m_Text.getStr() + nStt, m_Text.getLength() - nStt,
                             sChgd.getStr(), sChgd.getLength(), nLen))
                 {
@@ -1754,7 +1754,7 @@ void SwTxtNode::TransliterateText(
                     GetLang(nCurrentStart), nCurrentStart, nLen, &aOffsets) );
 
                 assert(nStt < m_Text.getLength());
-                if (0 == rtl_ustr_shortenedCompare_WithLength(
+                if (0 != rtl_ustr_shortenedCompare_WithLength(
                             m_Text.getStr() + nStt, m_Text.getLength() - nStt,
                             sChgd.getStr(), sChgd.getLength(), nLen))
                 {
@@ -1808,7 +1808,7 @@ void SwTxtNode::TransliterateText(
                             m_Text, nLang, nStt, nLen, &aOffsets) );
 
                 assert(nStt < m_Text.getLength());
-                if (0 == rtl_ustr_shortenedCompare_WithLength(
+                if (0 != rtl_ustr_shortenedCompare_WithLength(
                             m_Text.getStr() + nStt, m_Text.getLength() - nStt,
                             sChgd.getStr(), sChgd.getLength(), nLen))
                 {


More information about the Libreoffice-commits mailing list