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