sc/CppunitTest_sc_uicalc.mk          |    3 ++
 sc/qa/unit/uicalc/data/tdf138432.ods |binary
 sc/qa/unit/uicalc/uicalc.cxx         |   45 +++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)

New commits:
commit 213430e0bdac0786b30a76a68b43d35647e93912
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon Jul 12 19:39:10 2021 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Wed Jul 14 00:29:46 2021 +0200

    tdf#123752, tdf#138432: sc_uicalc: Add unittest
    
    Change-Id: I9f40ab9198b52fdf3d402543d33c3043d6f45b53
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118789
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/CppunitTest_sc_uicalc.mk b/sc/CppunitTest_sc_uicalc.mk
index 82bfb875b05e..e0df316fe3ab 100644
--- a/sc/CppunitTest_sc_uicalc.mk
+++ b/sc/CppunitTest_sc_uicalc.mk
@@ -19,9 +19,12 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_uicalc, \
     comphelper \
     cppu \
     cppuhelper \
+    i18nlangtag \
     sal \
     sc \
     sfx \
+    svl \
+    svl \
     svx \
     svxcore \
     test \
diff --git a/sc/qa/unit/uicalc/data/tdf138432.ods 
b/sc/qa/unit/uicalc/data/tdf138432.ods
new file mode 100644
index 000000000000..31b2e2309dc1
Binary files /dev/null and b/sc/qa/unit/uicalc/data/tdf138432.ods differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index 61707d5cb02a..c0825914e3fc 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -11,11 +11,13 @@
 #include <unotest/macros_test.hxx>
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
 #include <svx/svdpage.hxx>
+#include <unotools/syslocaleoptions.hxx>
 #include <unotools/tempfile.hxx>
 #include <vcl/keycodes.hxx>
 #include <vcl/scheduler.hxx>
 
 #include <comphelper/propertysequence.hxx>
+#include <comphelper/scopeguard.hxx>
 #include <com/sun/star/awt/Key.hpp>
 #include <com/sun/star/frame/Desktop.hpp>
 #include <com/sun/star/text/XTextRange.hpp>
@@ -165,6 +167,49 @@ ScModelObj* 
ScUiCalcTest::saveAndReload(css::uno::Reference<css::lang::XComponen
     return pModelObj;
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf138432)
+{
+    ScModelObj* pModelObj = createDoc("tdf138432.ods");
+    ScDocument* pDoc = pModelObj->GetDocument();
+    CPPUNIT_ASSERT(pDoc);
+
+    // Set the system locale to Hungarian
+    SvtSysLocaleOptions aOptions;
+    OUString sLocaleConfigString = aOptions.GetLanguageTag().getBcp47();
+    aOptions.SetLocaleConfigString("hu-HU");
+    aOptions.Commit();
+    comphelper::ScopeGuard g([&aOptions, &sLocaleConfigString] {
+        aOptions.SetLocaleConfigString(sLocaleConfigString);
+        aOptions.Commit();
+    });
+
+    OUString sExpectedA1 = "12" + OUStringChar(u'\xa0') + "345,67";
+    CPPUNIT_ASSERT_EQUAL(sExpectedA1, pDoc->GetString(ScAddress(0, 0, 0)));
+
+    goToCell("A1");
+
+    dispatchCommand(mxComponent, ".uno:Copy", {});
+    Scheduler::ProcessEventsToIdle();
+
+    goToCell("A2");
+
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, '=', 0);
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, '=', 0);
+    Scheduler::ProcessEventsToIdle();
+
+    dispatchCommand(mxComponent, ".uno:Paste", {});
+    Scheduler::ProcessEventsToIdle();
+
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN);
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN);
+    Scheduler::ProcessEventsToIdle();
+
+    // Without the fix in place, this test would have failed with
+    // - Expected: 12345,67
+    // - Actual  : Err:509
+    CPPUNIT_ASSERT_EQUAL(OUString("12345,67"), pDoc->GetString(ScAddress(0, 1, 
0)));
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf100582)
 {
     ScModelObj* pModelObj = createDoc("tdf100582.xls");
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to