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

Xisco Fauli (via logerrit) logerrit at kemper.freedesktop.org
Thu Mar 5 08:52:20 UTC 2020


 sw/qa/extras/odfimport/data/timeFormFormats.odt |binary
 sw/qa/extras/odfimport/odfimport.cxx            |   47 ++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

New commits:
commit bef317ec9d00beb70d6b59c2af3b61ef2544b4a5
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Tue Mar 3 17:15:02 2020 +0100
Commit:     Xisco Faulí <xiscofauli at libreoffice.org>
CommitDate: Thu Mar 5 09:51:41 2020 +0100

    tdf#130515: Add unittest
    
    Change-Id: Ie98a4a6f35d31f8fdca9d439aa5ec9990e9c4213
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89895
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <xiscofauli at libreoffice.org>

diff --git a/sw/qa/extras/odfimport/data/timeFormFormats.odt b/sw/qa/extras/odfimport/data/timeFormFormats.odt
new file mode 100644
index 000000000000..9b39aec57925
Binary files /dev/null and b/sw/qa/extras/odfimport/data/timeFormFormats.odt differ
diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx
index 973cc4a0d311..8eff1cf92e1f 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -11,9 +11,15 @@
 
 #include <config_features.h>
 
+#include <com/sun/star/awt/XTextComponent.hpp>
+#include <com/sun/star/awt/XControl.hpp>
+#include <com/sun/star/awt/XControlModel.hpp>
+#include <com/sun/star/awt/XWindowPeer.hpp>
 #include <com/sun/star/awt/FontWeight.hpp>
 #include <com/sun/star/drawing/FillStyle.hpp>
 #include <com/sun/star/drawing/BitmapMode.hpp>
+#include <com/sun/star/form/XForm.hpp>
+#include <com/sun/star/form/XFormsSupplier.hpp>
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <com/sun/star/style/PageStyleLayout.hpp>
 #include <com/sun/star/style/FootnoteLineStyle.hpp>
@@ -23,6 +29,7 @@
 #include <com/sun/star/text/XTextTable.hpp>
 #include <com/sun/star/text/PageNumberType.hpp>
 #include <com/sun/star/text/VertOrientation.hpp>
+#include <com/sun/star/view/XControlAccess.hpp>
 
 #include <IDocumentSettingAccess.hxx>
 #include <wrtsh.hxx>
@@ -258,6 +265,46 @@ DECLARE_ODFIMPORT_TEST(testPageStyleLayoutDefault, "hello.odt")
     CPPUNIT_ASSERT_EQUAL(style::PageStyleLayout_ALL, getProperty<style::PageStyleLayout>(xPropertySet, "PageStyleLayout"));
 }
 
+DECLARE_ODFIMPORT_TEST(testTimeFormFormats, "timeFormFormats.odt")
+{
+    //FIXME: make it an ODFEXPORT_TEST. Validator fails with
+    //attribute "form:current-value" has a bad value: "PT12H12M" does not satisfy the "time" type
+
+    uno::Reference<frame::XModel> const xModel(mxComponent, uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xModel.is());
+    uno::Reference<drawing::XDrawPageSupplier> const xDPS(xModel, uno::UNO_QUERY);
+    uno::Reference<drawing::XDrawPage> const xDP = xDPS->getDrawPage();
+    CPPUNIT_ASSERT(xDP.is());
+    uno::Reference<form::XFormsSupplier> const xFS(xDP, uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xFS.is());
+    uno::Reference<container::XIndexContainer> const xForms(xFS->getForms(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xForms.is());
+    uno::Reference<form::XForm> xForm(xForms->getByIndex(0), uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xForm.is());
+    uno::Reference<container::XNameContainer> xFormNC(xForm, uno::UNO_QUERY);
+
+    uno::Any aAny;
+    uno::Reference<awt::XControlModel> xControlModel;
+    uno::Reference<view::XControlAccess> xController;
+    uno::Reference<awt::XControl> xControl;
+    uno::Reference<awt::XWindowPeer> xWindowPeer;
+    uno::Reference<awt::XTextComponent> xTextComponent;
+    OUString aName = "Time Field ";
+
+    static const char* const aExpectedResults[] = { "12:12", "12:12:00", "12:12PM", "06:00:00AM"};
+
+    for (size_t i = 1; i <= 4; ++i)
+    {
+        aAny = xFormNC->getByName(aName + OUString::number(i));
+        xControlModel.set(aAny, uno::UNO_QUERY);
+        xController.set(xModel->getCurrentController(), uno::UNO_QUERY_THROW);
+        xControl = xController->getControl(xControlModel);
+        xWindowPeer = xControl->getPeer();
+        xTextComponent.set(xWindowPeer, uno::UNO_QUERY);
+        CPPUNIT_ASSERT_EQUAL(OUString::fromUtf8(aExpectedResults[i - 1]), xTextComponent->getText());
+    }
+}
+
 DECLARE_ODFIMPORT_TEST(testTdf64038, "space.odt")
 {
     // no space


More information about the Libreoffice-commits mailing list