[Libreoffice-commits] core.git: sw/CppunitTest_sw_accessible_relation_set.mk sw/JunitTest_sw_complex.mk sw/Module_sw.mk sw/qa

kadertarlan kadertarlan1 at gmail.com
Sun Apr 8 11:38:59 UTC 2018


 sw/CppunitTest_sw_accessible_relation_set.mk           |   59 ++++
 sw/JunitTest_sw_complex.mk                             |    2 
 sw/Module_sw.mk                                        |    1 
 sw/qa/complex/accessibility/AccessibleRelationSet.java |  219 ---------------
 sw/qa/extras/accessibility/accessible_relation_set.cxx |  246 +++++++++++++++++
 5 files changed, 306 insertions(+), 221 deletions(-)

New commits:
commit b6d2d6db28eec4ab311c4223cf5be508feb2e057
Author: kadertarlan <kadertarlan1 at gmail.com>
Date:   Sun May 1 16:01:45 2016 +0300

    tdf#45904 move java based api tests to c++ (AccessibleRelationSet)
    
    Change-Id: I2d9d72bbc845acf091570df663849495619ee765
    Reviewed-on: https://gerrit.libreoffice.org/24563
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sw/CppunitTest_sw_accessible_relation_set.mk b/sw/CppunitTest_sw_accessible_relation_set.mk
new file mode 100644
index 000000000000..0de87d256d44
--- /dev/null
+++ b/sw/CppunitTest_sw_accessible_relation_set.mk
@@ -0,0 +1,59 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# 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/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sw_accessible_relation_set))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sw_accessible_relation_set, \
+    sw/qa/extras/accessibility/accessible_relation_set \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sw_accessible_relation_set, \
+    comphelper \
+    cppu \
+	cppuhelper \
+	i18nlangtag \
+    sal \
+    subsequenttest \
+    sw \
+    test \
+	tl \
+    unotest \
+    utl \
+    vcl \
+	$(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,sw_accessible_relation_set,\
+	boost_headers \
+    libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sw_htmlexport,\
+    -I$(SRCDIR)/sw/inc \
+    -I$(SRCDIR)/sw/source/core/inc \
+    -I$(SRCDIR)/sw/source/uibase/inc \
+	-I$(SRCDIR)/sw/qa/extras/inc \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sw_accessible_relation_set,\
+    offapi \
+    udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sw_accessible_relation_set))
+$(eval $(call gb_CppunitTest_use_vcl,sw_accessible_relation_set))
+
+$(eval $(call gb_CppunitTest_use_rdb,sw_accessible_relation_set,services))
+
+$(eval $(call gb_CppunitTest_use_configuration,sw_accessible_relation_set))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/JunitTest_sw_complex.mk b/sw/JunitTest_sw_complex.mk
index d39f39f22515..a4d7a08ec02b 100644
--- a/sw/JunitTest_sw_complex.mk
+++ b/sw/JunitTest_sw_complex.mk
@@ -20,7 +20,6 @@
 $(eval $(call gb_JunitTest_JunitTest,sw_complex))
 
 $(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
-    sw/qa/complex/accessibility/AccessibleRelationSet \
     sw/qa/complex/indeterminateState/CheckIndeterminateState \
 ))
 
@@ -33,7 +32,6 @@ $(eval $(call gb_JunitTest_use_jars,sw_complex,\
 ))
 
 $(eval $(call gb_JunitTest_add_classes,sw_complex,\
-    complex.accessibility.AccessibleRelationSet \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 8fb2836f70e6..01a67af503a9 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -91,6 +91,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\
     CppunitTest_sw_layoutwriter \
     CppunitTest_sw_mailmerge \
     CppunitTest_sw_globalfilter \
+    CppunitTest_sw_accessible_relation_set \
 ))
 
 ifneq ($(ENABLE_HEADLESS),TRUE)
diff --git a/sw/qa/complex/accessibility/AccessibleRelationSet.java b/sw/qa/complex/accessibility/AccessibleRelationSet.java
deleted file mode 100644
index a2b2e2e506fe..000000000000
--- a/sw/qa/complex/accessibility/AccessibleRelationSet.java
+++ /dev/null
@@ -1,219 +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 complex.accessibility;
-
-import com.sun.star.accessibility.AccessibleRole;
-import com.sun.star.accessibility.XAccessible;
-import com.sun.star.accessibility.XAccessibleText;
-import com.sun.star.accessibility.XAccessibleContext;
-import com.sun.star.accessibility.XAccessibleRelationSet;
-import com.sun.star.awt.XWindow;
-import com.sun.star.frame.XModel;
-import com.sun.star.lang.IndexOutOfBoundsException;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.text.ControlCharacter;
-import com.sun.star.text.XText;
-import com.sun.star.text.XTextCursor;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.uno.UnoRuntime;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.openoffice.test.OfficeConnection;
-import util.AccessibilityTools;
-import util.WriterTools;
-import static org.junit.Assert.*;
-
-public class AccessibleRelationSet {
-    private XAccessible para1 = null;
-    private XAccessible para2 = null;
-    private XAccessible para3 = null;
-    private XTextDocument xTextDoc = null;
-    private static final String[] types = {"INVALID","CONTENT_FLOWS_FROM","CONTENT_FLOWS_TO","CONTROLLED_BY","CONTROLLER_FOR","LABEL_FOR","LABELED_BY","MEMBER_OF","SUB_WINDOW_OF"};
-
-    @Test public void contents_flows_to() {
-        XAccessibleRelationSet set = getAccessibleRelation(para1);
-
-        short firstrelation=-1;
-        XAccessibleText atarget=null;
-        if (set != null) {
-            assertEquals(
-                "didn't gain correct count of relations", 1,
-                set.getRelationCount());
-            try {
-                firstrelation = set.getRelation(0).RelationType;
-                Object oTmp = set.getRelation(0).TargetSet[0];
-                atarget = UnoRuntime.queryInterface(XAccessibleText.class, oTmp);
-            } catch (IndexOutOfBoundsException e) {
-                fail("Exception when getting relations "+e);
-            }
-        }
-
-        assertEquals(
-            "didn't gain correct relation type for paragraph 0", types[2],
-            types[firstrelation]);
-
-        XAccessibleText paraText2 =
-          UnoRuntime.queryInterface(XAccessibleText.class, para2);
-        assertEquals(
-            "didn't gain correct target paragraph", atarget.getText(),
-            paraText2.getText());
-    }
-
-    @Test public void contents_flows_from() {
-        XAccessibleRelationSet set = getAccessibleRelation(para2);
-
-        short[] relationtypes = new short[2];
-        XAccessibleText[] atargets = new XAccessibleText[2];
-        if (set != null) {
-            assertEquals(
-                "didn't gain correct count of relations", 2,
-                set.getRelationCount());
-            try {
-                short tmprelation = set.getRelation(0).RelationType;
-                if ( tmprelation == 1 )
-                {
-                  Object oTmp = set.getRelation(0).TargetSet[0];
-                  atargets[0] = UnoRuntime.queryInterface(XAccessibleText.class, oTmp);
-                  relationtypes[0] = tmprelation;
-                }
-                else if ( tmprelation == 2 )
-                {
-                  Object oTmp = set.getRelation(0).TargetSet[0];
-                  atargets[1] = UnoRuntime.queryInterface(XAccessibleText.class, oTmp);
-                  relationtypes[1] = tmprelation;
-                }
-                else
-                {
-                    fail("didn't gain correct relation type");
-                }
-                tmprelation = set.getRelation(1).RelationType;
-                if ( tmprelation == 1 )
-                {
-                  Object oTmp = set.getRelation(1).TargetSet[0];
-                  atargets[0] = UnoRuntime.queryInterface(XAccessibleText.class, oTmp);
-                  relationtypes[0] = tmprelation;
-                }
-                else if ( tmprelation == 2 )
-                {
-                  Object oTmp = set.getRelation(1).TargetSet[0];
-                  atargets[1] = UnoRuntime.queryInterface(XAccessibleText.class, oTmp);
-                  relationtypes[1] = tmprelation;
-                }
-                else
-                {
-                    fail("didn't gain correct relation type");
-                }
-            } catch (IndexOutOfBoundsException e) {
-                fail("Exception when getting relations "+e);
-            }
-        }
-
-        assertEquals(
-            "didn't gain correct relation type for paragraph 1", types[1],
-            types[relationtypes[0]]);
-
-        XAccessibleText paraText1 =
-          UnoRuntime.queryInterface(XAccessibleText.class, para1);
-        assertEquals(
-            "didn't gain correct target paragraph", atargets[0].getText(),
-            paraText1.getText());
-
-        assertEquals(
-            "didn't gain correct relation type for paragraph 3", types[2],
-            types[relationtypes[1]]);
-
-        XAccessibleText paraText3 =
-          UnoRuntime.queryInterface(XAccessibleText.class, para3);
-        assertEquals(
-            "didn't gain correct target paragraph", atargets[1].getText(),
-            paraText3.getText());
-    }
-
-    @Before public void before()
-        throws com.sun.star.lang.IllegalArgumentException,
-        IndexOutOfBoundsException
-    {
-        XMultiServiceFactory factory = UnoRuntime.queryInterface(
-            XMultiServiceFactory.class,
-            connection.getComponentContext().getServiceManager());
-
-        xTextDoc = WriterTools.createTextDoc(factory);
-
-        XText oText = xTextDoc.getText();
-        XTextCursor oCursor = oText.createTextCursor();
-
-        for (int i=0; i<5; i++){
-            oText.insertString( oCursor,"Paragraph Number: " + i, false);
-            oText.insertControlCharacter(
-                oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
-        }
-
-        XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
-
-        XAccessibleContext ctx;
-        for (int i = 0;; ++i) {
-            XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
-            XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
-            ctx = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT_TEXT);
-            if (ctx != null) {
-                break;
-            }
-            if (i == 20) { // give up after 10 sec
-                throw new RuntimeException(
-                    "Couldn't get AccessibleRole.DOCUMENT_TEXT object");
-            }
-            System.out.println("No DOCUMENT_TEXT found yet, retrying");
-            try {
-                Thread.sleep(500);
-            } catch (InterruptedException e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        para1 = ctx.getAccessibleChild(0);
-        para2 = ctx.getAccessibleChild(1);
-        para3 = ctx.getAccessibleChild(2);
-    }
-
-    @After public void after() {
-        util.DesktopTools.closeDoc(xTextDoc);
-    }
-
-    public XAccessibleRelationSet getAccessibleRelation(XAccessible xAcc) {
-        XAccessibleContext oObj = UnoRuntime.queryInterface(XAccessibleContext.class, xAcc);
-
-        XAccessibleRelationSet set = oObj.getAccessibleRelationSet();
-        return set;
-    }
-
-    @BeforeClass public static void setUpConnection() throws Exception {
-        connection.setUp();
-    }
-
-    @AfterClass public static void tearDownConnection()
-        throws InterruptedException, com.sun.star.uno.Exception
-    {
-        connection.tearDown();
-    }
-
-    private static final OfficeConnection connection = new OfficeConnection();
-}
diff --git a/sw/qa/extras/accessibility/accessible_relation_set.cxx b/sw/qa/extras/accessibility/accessible_relation_set.cxx
new file mode 100644
index 000000000000..2ecb91fc2706
--- /dev/null
+++ b/sw/qa/extras/accessibility/accessible_relation_set.cxx
@@ -0,0 +1,246 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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
+ */
+
+#include <test/unoapi_test.hxx>
+
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/frame/XController.hpp>
+#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/text/XText.hpp>
+#include <com/sun/star/text/XTextDocument.hpp>
+#include <com/sun/star/text/XTextCursor.hpp>
+#include <com/sun/star/text/ControlCharacter.hpp>
+#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
+
+using namespace com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+using namespace css::lang;
+
+class AccessibilityTools
+{
+public:
+    static css::uno::Reference<css::accessibility::XAccessibleContext>
+    getAccessibleObjectForRole(css::uno::Reference<css::accessibility::XAccessible> xacc,
+                               sal_Int16 role);
+};
+
+css::uno::Reference<css::accessibility::XAccessibleContext>
+AccessibilityTools::getAccessibleObjectForRole(
+    css::uno::Reference<css::accessibility::XAccessible> xacc, sal_Int16 role)
+{
+    css::uno::Reference<css::accessibility::XAccessibleContext> ac = xacc->getAccessibleContext();
+    bool isShowing = ac->getAccessibleStateSet()->contains(AccessibleStateType::SHOWING);
+
+    if ((ac->getAccessibleRole() == role) && isShowing)
+    {
+        css::uno::Reference<css::accessibility::XAccessible> SearchedAccessible(xacc,
+                                                                                uno::UNO_QUERY);
+        return ac;
+    }
+    else
+    {
+        int k = ac->getAccessibleChildCount();
+        if (ac->getAccessibleChildCount() > 100)
+        {
+            k = 50;
+        }
+
+        for (int i = 0; i < k; i++)
+        {
+            css::uno::Reference<css::accessibility::XAccessibleContext> ac2
+                = AccessibilityTools::getAccessibleObjectForRole(ac->getAccessibleChild(i), role);
+            if (ac2.is())
+            {
+                return ac2;
+            }
+        }
+    }
+    return nullptr;
+}
+
+class AccessibleRelationSet : public UnoApiTest
+{
+public:
+    AccessibleRelationSet()
+        : UnoApiTest("")
+    {
+    }
+
+    uno::Reference<lang::XComponent> init(uno::Reference<css::accessibility::XAccessible>& para1,
+                                          uno::Reference<css::accessibility::XAccessible>& para2,
+                                          uno::Reference<css::accessibility::XAccessible>& para3);
+    void contents_flows_to_and_from();
+
+    CPPUNIT_TEST_SUITE(AccessibleRelationSet);
+    CPPUNIT_TEST(contents_flows_to_and_from);
+    CPPUNIT_TEST_SUITE_END();
+};
+
+uno::Reference<lang::XComponent>
+AccessibleRelationSet::init(uno::Reference<css::accessibility::XAccessible>& para1,
+                            uno::Reference<css::accessibility::XAccessible>& para2,
+                            uno::Reference<css::accessibility::XAccessible>& para3)
+{
+    uno::Reference<css::lang::XComponent> xComponent
+        = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument");
+    uno::Reference<text::XTextDocument> xTextDoc(xComponent, uno::UNO_QUERY);
+
+    css::uno::Reference<text::XText> oText(xTextDoc->getText(), uno::UNO_QUERY_THROW);
+
+    css::uno::Reference<text::XTextCursor> oCursor = oText->createTextCursor();
+
+    for (int i = 0; i < 5; i++)
+    {
+        oText->insertString(oCursor, "Paragraph Number: " + OUString::number(i), false);
+        oText->insertControlCharacter(oCursor, text::ControlCharacter::PARAGRAPH_BREAK, false);
+    }
+
+    css::uno::Reference<css::frame::XModel> aModel(xTextDoc, uno::UNO_QUERY_THROW);
+    css::uno::Reference<css::frame::XController> xController(aModel->getCurrentController());
+
+    css::uno::Reference<css::accessibility::XAccessibleContext> ctx;
+    uno::Reference<frame::XFrame> xFrame(xController->getFrame(), uno::UNO_SET_THROW);
+    uno::Reference<awt::XWindow> xWindow(xFrame->getComponentWindow(), uno::UNO_SET_THROW);
+
+    css::uno::Reference<css::accessibility::XAccessible> xRoot(xWindow, uno::UNO_QUERY_THROW);
+    ctx = AccessibilityTools::getAccessibleObjectForRole(xRoot, AccessibleRole::DOCUMENT_TEXT);
+    CPPUNIT_ASSERT_MESSAGE("Couldn't get AccessibleRole.DOCUMENT_TEXT object", ctx.is());
+    para1 = ctx->getAccessibleChild(0);
+    para2 = ctx->getAccessibleChild(1);
+    para3 = ctx->getAccessibleChild(2);
+    return xComponent;
+}
+
+void AccessibleRelationSet::contents_flows_to_and_from()
+{
+    //contents_flows_to
+    std::vector<OUString> types{ "INVALID",       "CONTENT_FLOWS_FROM", "CONTENT_FLOWS_TO",
+                                 "CONTROLLED_BY", "CONTROLLER_FOR",     "LABEL_FOR",
+                                 "LABELED_BY",    "MEMBER_OF",          "SUB_WINDOW_OF" };
+
+    css::uno::Reference<css::accessibility::XAccessible> para1;
+    css::uno::Reference<css::accessibility::XAccessible> para2;
+    css::uno::Reference<css::accessibility::XAccessible> para3;
+
+    uno::Reference<lang::XComponent> xComponent(init(para1, para2, para3));
+    css::uno::Reference<css::accessibility::XAccessibleContext> oObj(para1, uno::UNO_QUERY_THROW);
+    css::uno::Reference<css::accessibility::XAccessibleRelationSet> set
+        = oObj->getAccessibleRelationSet();
+
+    sal_Int16 firstrelation = -1;
+    css::uno::Reference<css::accessibility::XAccessibleText> atarget;
+
+    if (set.is())
+    {
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct count of relations", sal_Int32(1),
+                                     set->getRelationCount());
+        firstrelation = set->getRelation(0).RelationType;
+        css::uno::Reference<css::accessibility::XAccessibleText> adummy(
+            set->getRelation(0).TargetSet[0], uno::UNO_QUERY_THROW);
+        atarget = adummy;
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct relation type for paragraph 0", types[2],
+                                     types[firstrelation]);
+
+        css::uno::Reference<css::accessibility::XAccessibleText> paraText2(para2,
+                                                                           uno::UNO_QUERY_THROW);
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct target paragraph", atarget->getText(),
+                                     paraText2->getText());
+    }
+
+    //contents_flows_from()
+    css::uno::Reference<css::accessibility::XAccessibleContext> oObj2(para2, uno::UNO_QUERY_THROW);
+    css::uno::Reference<css::accessibility::XAccessibleRelationSet> set2
+        = oObj2->getAccessibleRelationSet();
+
+    sal_Int16 relationtypes[2];
+    css::uno::Reference<css::accessibility::XAccessibleText> atargets[2];
+
+    if (set2.is())
+    {
+        CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct count of relations", sal_Int32(2),
+                                     set2->getRelationCount());
+        sal_Int16 tmprelation = set2->getRelation(0).RelationType;
+        if (tmprelation == 1)
+        {
+            css::uno::Reference<css::accessibility::XAccessibleText> adummy(
+                set2->getRelation(0).TargetSet[0], uno::UNO_QUERY_THROW);
+            atargets[0] = adummy;
+            relationtypes[0] = tmprelation;
+        }
+        else if (tmprelation == 2)
+        {
+            css::uno::Reference<css::accessibility::XAccessibleText> adummy(
+                set2->getRelation(0).TargetSet[0], uno::UNO_QUERY_THROW);
+            atargets[1] = adummy;
+            relationtypes[1] = tmprelation;
+        }
+        else
+        {
+            CPPUNIT_FAIL("didn't gain correct relation type");
+        }
+        tmprelation = set2->getRelation(1).RelationType;
+        if (tmprelation == 1)
+        {
+            css::uno::Reference<css::accessibility::XAccessibleText> adummy(
+                set2->getRelation(1).TargetSet[0], uno::UNO_QUERY_THROW);
+            atargets[0] = adummy;
+            relationtypes[0] = tmprelation;
+        }
+        else if (tmprelation == 2)
+        {
+            css::uno::Reference<css::accessibility::XAccessibleText> adummy(
+                set2->getRelation(1).TargetSet[0], uno::UNO_QUERY_THROW);
+            atargets[1] = adummy;
+            relationtypes[1] = tmprelation;
+        }
+        else
+        {
+            CPPUNIT_FAIL("didn't gain correct relation type");
+        }
+    }
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct relation type for paragraph 1", types[1],
+                                 types[relationtypes[0]]);
+
+    css::uno::Reference<css::accessibility::XAccessibleText> paraText1(para1, uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct target paragraph", atargets[0]->getText(),
+                                 paraText1->getText());
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct relation type for paragraph 3", types[2],
+                                 types[relationtypes[1]]);
+
+    css::uno::Reference<css::accessibility::XAccessibleText> paraText3(para3, uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("didn't gain correct target paragraph", atargets[1]->getText(),
+                                 paraText3->getText());
+
+    closeDocument(xComponent);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(AccessibleRelationSet);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list