include/test/text/xautotextcontainer.hxx                             |   45 +++
 qadevOOo/Jar_OOoRunner.mk                                            |    1 
 qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv |    2 
 qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java                |  132 
----------
 sw/qa/api/SwXAutoTextContainer.cxx                                   |   15 -
 test/Library_subsequenttest.mk                                       |    1 
 test/source/text/xautotextcontainer.cxx                              |   54 
++++
 7 files changed, 112 insertions(+), 138 deletions(-)

New commits:
commit 7b999ca22824e102d283a8b7327fa2717db6568a
Author:     anfanite396 <[email protected]>
AuthorDate: Fri Aug 11 19:13:08 2023 +0530
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Fri Aug 25 08:23:23 2023 +0200

    tdf#45904: Move _XAutoTextContainer Java tests to C++
    
    Change-Id: Ie6ebc43c52204984cb6196f539c735701d13dc22
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155627
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <[email protected]>

diff --git a/include/test/text/xautotextcontainer.hxx 
b/include/test/text/xautotextcontainer.hxx
new file mode 100644
index 000000000000..a2ab07497362
--- /dev/null
+++ b/include/test/text/xautotextcontainer.hxx
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+#include <rtl/ustring.hxx>
+#include <test/testdllapi.hxx>
+
+#include <com/sun/star/uno/XInterface.hpp>
+
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Reference.hxx>
+#include <utility>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST XAutoTextContainer
+{
+public:
+    XAutoTextContainer(OUString aNameToRemove)
+        : m_aName(std::move(aNameToRemove))
+    {
+    }
+
+    virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+
+    void testInsertNewByName();
+    void testRemoveByName();
+
+protected:
+    ~XAutoTextContainer() {}
+
+private:
+    OUString m_aName;
+};
+
+} // namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */
diff --git a/qadevOOo/Jar_OOoRunner.mk b/qadevOOo/Jar_OOoRunner.mk
index 71b0beaa1b9d..cb0422a1dbe3 100644
--- a/qadevOOo/Jar_OOoRunner.mk
+++ b/qadevOOo/Jar_OOoRunner.mk
@@ -616,7 +616,6 @@ $(eval $(call gb_Jar_add_sourcefiles,OOoRunner,\
     qadevOOo/tests/java/ifc/text/_TextTable \
     qadevOOo/tests/java/ifc/text/_TextTableRow \
     qadevOOo/tests/java/ifc/text/_ViewSettings \
-    qadevOOo/tests/java/ifc/text/_XAutoTextContainer \
     qadevOOo/tests/java/ifc/text/_XAutoTextEntry \
     qadevOOo/tests/java/ifc/text/_XAutoTextGroup \
     qadevOOo/tests/java/ifc/text/_XBookmarksSupplier \
diff --git 
a/qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv 
b/qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv
index 25352ae1f972..d1c6e381eb9b 100644
--- a/qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv
+++ b/qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv
@@ -5,5 +5,3 @@
 
"SwXAutoTextContainer";"com::sun::star::container::XIndexAccess#optional";"getByIndex()"
 
"SwXAutoTextContainer";"com::sun::star::container::XElementAccess";"getElementType()"
 
"SwXAutoTextContainer";"com::sun::star::container::XElementAccess";"hasElements()"
-"SwXAutoTextContainer";"com::sun::star::text::XAutoTextContainer";"insertNewByName()"
-"SwXAutoTextContainer";"com::sun::star::text::XAutoTextContainer";"removeByName()"
diff --git a/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java 
b/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java
deleted file mode 100644
index fed159a320b2..000000000000
--- a/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package ifc.text;
-
-import lib.MultiMethodTest;
-
-import com.sun.star.text.XAutoTextContainer;
-import com.sun.star.text.XAutoTextGroup;
-
-/**
- * Testing <code>com.sun.star.text.XAutoTextContainer</code>
- * interface methods :
- * <ul>
- *  <li><code> insertNewByName()</code></li>
- *  <li><code> removeByName()</code></li>
- * </ul> <p>
- * Test is <b> NOT </b> multithread compliant. <p>
- * @see com.sun.star.text.XAutoTextContainer
- */
-public class _XAutoTextContainer  extends MultiMethodTest {
-    public XAutoTextContainer oObj = null;
-    // every Thread must insert its own AutoTextContainer:
-    public String Name = "";
-
-    /**
-     * First removes old element from container with the specified name
-     * if it exists. Then tries to add a new group with the specified
-     * name. <p>
-     *
-     * Has <b>OK</b> status if not <code>null</code>
-     * <code>AutoTextGroup</code> instance is returned.
-     */
-    public void _insertNewByName() {
-        System.out.println("Starting: insertNewByName");
-        boolean result = true;
-        Name = "XAutoTextContainerx" + Thread.currentThread().getName();
-        Name = Name.replace('-','x');
-        Name = Name.replace(':','x');
-        Name = Name.replace('.','x');
-        XAutoTextGroup oGroup = null;
-        //first clear the container
-        log.println("remove old elements in container");
-        System.out.println("remove old elements in container");
-        try {
-            oObj.removeByName(Name);
-            log.println("old elements removed -> OK");
-            System.out.println("old elements removed -> OK");
-        } catch (com.sun.star.container.NoSuchElementException e) {
-            log.println("no old elements available -> OK");
-            System.out.println("no old elements available -> OK");
-        }
-
-        // insert an element
-        log.println("insertNewByName");
-        try {
-            System.out.println("Inserting element with name '" + Name + "'");
-            log.println("Inserting element with name '" + Name + "'");
-            oGroup = oObj.insertNewByName(Name);
-            System.out.println("done");
-        } catch (com.sun.star.container.ElementExistException e) {
-            log.println("insertNewByName(): " + e);
-            result &= false;
-        } catch (com.sun.star.lang.IllegalArgumentException e) {
-            log.println("insertNewByName(): " + e);
-            result &= false;
-        }
-
-        result &= ( oGroup != null );
-        tRes.tested("insertNewByName()", result);
-    } // end insertNewByName()
-
-    /**
-     * First removes element by name which was added before,
-     * then tries to remove the element with the same name again. <p>
-     *
-     * Has <b> OK </b> status if in the first case no exceptions
-     * were thrown, and in the second case
-     * <code>NoSuchElementException</code> was thrown. <p>
-     *
-     * The following method tests are to be completed successfully before :
-     * <ul>
-     *  <li> <code> insertNewByName() </code> : new element inserted here.</li>
-     * </ul>
-     */
-    public void _removeByName() {
-        requiredMethod("insertNewByName()");
-
-        boolean result = true;
-        // remove the element
-        log.println("removeByName()");
-        try {
-            log.println("Removing element with name '" + Name + "'");
-            oObj.removeByName(Name);
-            result &= true;
-        } catch (com.sun.star.container.NoSuchElementException e) {
-            result = false;
-            log.println("removeByName(): " + e + " -> FAILED");
-        }
-
-        log.println("2nd removeByName()");
-        try {
-            oObj.removeByName(Name);
-            log.println("No exceptions were thrown -> FAILED");
-            result = false ;
-        } catch (com.sun.star.container.NoSuchElementException e) {
-            log.println("2nd removeByName(): -> OK");
-            result &= true;
-        }
-
-        tRes.tested("removeByName()", result);
-
-    } // end removeByName()
-
-}    /// finish class XAutoTextContainer
-
-
diff --git a/sw/qa/api/SwXAutoTextContainer.cxx 
b/sw/qa/api/SwXAutoTextContainer.cxx
index 7651c4360e9a..f848846324e0 100644
--- a/sw/qa/api/SwXAutoTextContainer.cxx
+++ b/sw/qa/api/SwXAutoTextContainer.cxx
@@ -11,6 +11,7 @@
 #include <test/container/xnameaccess.hxx>
 #include <test/container/xindexaccess.hxx>
 #include <test/container/xelementaccess.hxx>
+#include <test/text/xautotextcontainer.hxx>
 
 #include <com/sun/star/frame/Desktop.hpp>
 
@@ -30,14 +31,16 @@ namespace
 class SwXAutoTextContainer final : public UnoApiTest,
                                    public apitest::XElementAccess,
                                    public apitest::XIndexAccess,
-                                   public apitest::XNameAccess
+                                   public apitest::XNameAccess,
+                                   public apitest::XAutoTextContainer
 {
 public:
     SwXAutoTextContainer()
         : UnoApiTest("")
         , XElementAccess(cppu::UnoType<text::XAutoTextGroup>::get())
         , XIndexAccess(3)
-        , XNameAccess("standard")
+        , XNameAccess("crdbus50")
+        , XAutoTextContainer("crdbus50")
     {
     }
 
@@ -52,6 +55,10 @@ public:
         Reference<text::XAutoTextContainer> xAutoTextContainer
             = 
text::AutoTextContainer::create(comphelper::getProcessComponentContext());
 
+        Reference<container::XNameAccess> xNA(xAutoTextContainer, 
UNO_QUERY_THROW);
+        Sequence<rtl::OUString> aNames = xNA->getElementNames();
+        std::cout << aNames[0] << std::endl;
+
         return Reference<XInterface>(xAutoTextContainer, UNO_QUERY_THROW);
     }
 
@@ -63,10 +70,12 @@ public:
     CPPUNIT_TEST(testGetByIndex);
     CPPUNIT_TEST(testGetElementType);
     CPPUNIT_TEST(testHasElements);
+    CPPUNIT_TEST(testInsertNewByName);
+    CPPUNIT_TEST(testRemoveByName);
     CPPUNIT_TEST_SUITE_END();
 };
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SwXAutoTextContainer);
 }
 
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index f86818722d10..de084b1ab9e0 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -191,6 +191,7 @@ $(eval $(call 
gb_Library_add_exception_objects,subsequenttest,\
        test/source/text/baseindexmark \
        test/source/text/numberingrules \
        test/source/text/textcontent \
+       test/source/text/xautotextcontainer \
        test/source/text/xsimpletext \
        test/source/text/xtext \
        test/source/text/xtextcontent \
diff --git a/test/source/text/xautotextcontainer.cxx 
b/test/source/text/xautotextcontainer.cxx
new file mode 100644
index 000000000000..b1d001ba4dcd
--- /dev/null
+++ b/test/source/text/xautotextcontainer.cxx
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; 
fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/text/xautotextcontainer.hxx>
+
+#include <com/sun/star/container/ElementExistException.hpp>
+#include <com/sun/star/container/NoSuchElementException.hpp>
+#include <com/sun/star/text/XAutoTextContainer.hpp>
+#include <com/sun/star/text/XAutoTextGroup.hpp>
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Reference.hxx>
+
+#include <cppunit/TestAssert.h>
+
+using namespace css;
+
+namespace apitest
+{
+void XAutoTextContainer::testInsertNewByName()
+{
+    uno::Reference<text::XAutoTextContainer> xAutoTextContainer(init(), 
uno::UNO_QUERY_THROW);
+
+    try
+    {
+        xAutoTextContainer->removeByName(m_aName + "Insert");
+    }
+    catch (container::NoSuchElementException&)
+    {
+    }
+    uno::Reference<text::XAutoTextGroup> xGroup
+        = xAutoTextContainer->insertNewByName(m_aName + "Insert");
+
+    CPPUNIT_ASSERT(xGroup.is());
+}
+
+void XAutoTextContainer::testRemoveByName()
+{
+    uno::Reference<text::XAutoTextContainer> xAutoTextContainer(init(), 
uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xAutoTextContainer->hasByName(m_aName));
+    xAutoTextContainer->removeByName(m_aName);
+    CPPUNIT_ASSERT(!xAutoTextContainer->hasByName(m_aName));
+}
+
+} // namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */

Reply via email to