diff --git a/include/test/a11y/accessibletestbase.hxx b/include/test/a11y/accessibletestbase.hxx index e4d01084fa2a..187a345f64e0 100644 --- a/include/test/a11y/accessibletestbase.hxx +++ b/include/test/a11y/accessibletestbase.hxx @@ -98,6 +98,8 @@ protected: void dumpA11YTree(const css::uno::Reference& xContext, const int depth = 0); + void dumpA11YTree(const css::uno::Reference& xAccessible, + const int depth = 0); css::uno::Reference getItemFromName(const css::uno::Reference& xMenuCtx, diff --git a/qadevOOo/Jar_OOoRunner.mk b/qadevOOo/Jar_OOoRunner.mk index fd6c691990b2..eef8350f6f9f 100644 --- a/qadevOOo/Jar_OOoRunner.mk +++ b/qadevOOo/Jar_OOoRunner.mk @@ -1146,7 +1146,6 @@ $(eval $(call gb_Jar_add_sourcefiles,OOoRunner,\ qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox \ qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox \ qadevOOo/tests/java/mod/_toolkit/AccessibleEdit \ - qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText \ qadevOOo/tests/java/mod/_toolkit/AccessibleList \ qadevOOo/tests/java/mod/_toolkit/AccessibleListBox \ qadevOOo/tests/java/mod/_toolkit/AccessibleListItem \ diff --git a/qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleFixedText.csv b/qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleFixedText.csv deleted file mode 100644 index c736c47d402f..000000000000 --- a/qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleFixedText.csv +++ /dev/null @@ -1,40 +0,0 @@ -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleExtendedComponent";"getTitledBorderText()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleExtendedComponent";"getToolTipText()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleEventBroadcaster";"addEventListener()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleEventBroadcaster";"removeEventListener()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"containsPoint()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getAccessibleAtPoint()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getBounds()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getLocation()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getLocationOnScreen()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getSize()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"grabFocus()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getForeground()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleComponent";"getBackground()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getCaretPosition()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"setCaretPosition()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getCharacter()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getCharacterAttributes()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getCharacterBounds()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getCharacterCount()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getIndexAtPoint()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getSelectedText()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getSelectionStart()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getSelectionEnd()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"setSelection()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getText()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getTextRange()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getTextAtIndex()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getTextBeforeIndex()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"getTextBehindIndex()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleText";"copyText()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleChildCount()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleChild()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleParent()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleIndexInParent()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleRole()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleDescription()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleName()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleRelationSet()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getAccessibleStateSet()" -"AccessibleFixedText";"com::sun::star::accessibility::XAccessibleContext";"getLocale()" diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java deleted file mode 100644 index 9b2baa1c5663..000000000000 --- a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java +++ /dev/null @@ -1,173 +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 mod._toolkit; - -import com.sun.star.accessibility.AccessibleRole; -import com.sun.star.accessibility.XAccessible; -import com.sun.star.accessibility.XAccessibleContext; -import com.sun.star.accessibility.XAccessibleText; -import com.sun.star.awt.PosSize; -import com.sun.star.awt.XControl; -import com.sun.star.awt.XControlContainer; -import com.sun.star.awt.XControlModel; -import com.sun.star.awt.XFixedText; -import com.sun.star.awt.XWindow; -import com.sun.star.awt.XLayoutConstrains; -import com.sun.star.awt.Size; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.uno.UnoRuntime; - -import java.io.PrintWriter; - -import lib.TestCase; -import lib.TestEnvironment; -import lib.TestParameters; -import util.AccessibilityTools; -import util.utils; - - -/** - * Test for object which is represented by accessible component - * of the fixed text label in 'Hyperlink' Dialog.

- * - * Object implements the following interfaces : - *

    - *
  • ::com::sun::star::accessibility::XAccessibleExtendedComponent
  • - *
  • ::com::sun::star::accessibility::XAccessibleEventBroadcaster
  • - *
  • ::com::sun::star::accessibility::XAccessibleComponent
  • - *
  • ::com::sun::star::accessibility::XAccessibleContext
  • - *
  • ::com::sun::star::accessibility::XAccessibleText
  • - *

- * - * @see com.sun.star.accessibility.XAccessibleExtendedComponent - * @see com.sun.star.accessibility.XAccessibleEventBroadcaster - * @see com.sun.star.accessibility.XAccessibleComponent - * @see com.sun.star.accessibility.XAccessibleContext - * @see com.sun.star.accessibility.XAccessibleText - * @see ifc.accessibility._XAccessibleExtendedComponent - * @see ifc.accessibility._XAccessibleEventBroadcaster - * @see ifc.accessibility._XAccessibleComponent - * @see ifc.accessibility._XAccessibleContext - * @see ifc.accessibility._XAccessibleText - */ -public class AccessibleFixedText extends TestCase { - private static XWindow xWinDlg = null; - - /** - * Creates a new dialog adds fixed text control to it and - * displays it. Then the text's accessible component is - * obtained. - */ - @Override - protected TestEnvironment createTestEnvironment(TestParameters Param, - PrintWriter log) throws Exception { - XMultiServiceFactory xMSF = Param.getMSF(); - - XControlModel dlgModel = UnoRuntime.queryInterface( - XControlModel.class, - xMSF.createInstance( - "com.sun.star.awt.UnoControlDialogModel")); - - XControl dlgControl = UnoRuntime.queryInterface( - XControl.class, - xMSF.createInstance( - "com.sun.star.awt.UnoControlDialog")); - - dlgControl.setModel(dlgModel); - - XControlModel txtModel = UnoRuntime.queryInterface( - XControlModel.class, - xMSF.createInstance( - "com.sun.star.awt.UnoControlFixedTextModel")); - - XControl txtControl = UnoRuntime.queryInterface(XControl.class, - xMSF.createInstance( - "com.sun.star.awt.UnoControlFixedText")); - - txtControl.setModel(txtModel); - - XFixedText xFT = UnoRuntime.queryInterface( - XFixedText.class, txtControl); - xFT.setText("FxedText"); - - /* Set the text control to its preferred size, otherwise it - * defaults to the size hard coded in its constructor (100 x 12) */ - XLayoutConstrains xLCTxt = UnoRuntime.queryInterface( - XLayoutConstrains.class, txtControl); - Size textSize = xLCTxt.getPreferredSize(); - XWindow xWinTxt = UnoRuntime.queryInterface( - XWindow.class, txtControl); - xWinTxt.setPosSize(0, 0, textSize.Width, textSize.Height, - PosSize.SIZE); - - XControlContainer ctrlCont = UnoRuntime.queryInterface( - XControlContainer.class, - dlgControl); - - ctrlCont.addControl("Text", txtControl); - - xWinDlg = UnoRuntime.queryInterface(XWindow.class, - dlgControl); - - xWinDlg.setVisible(true); - - xWinDlg.setPosSize(0, 0, 200, 100, PosSize.SIZE); - - util.utils.waitForEventIdle(Param.getMSF()); - - XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWinDlg); - - AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE)); - - XAccessibleContext xLabel = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.LABEL); - - log.println("ImplementationName " + utils.getImplName(xLabel)); - - TestEnvironment tEnv = new TestEnvironment(xLabel); - - tEnv.addObjRelation("EventProducer", - new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() { - public void fireEvent() { - xWinTxt.setEnable(false); - xWinTxt.setEnable(true); - } - }); - - XAccessibleText text = UnoRuntime.queryInterface( - XAccessibleText.class, xLabel); - - tEnv.addObjRelation("XAccessibleText.Text", text.getText()); - - tEnv.addObjRelation("EditOnly", - "This method isn't supported in this component"); - - tEnv.addObjRelation("LimitedBounds", "yes"); - - return tEnv; - } - - /** - * Closes dialog using action of button 'Close' - */ - @Override - protected void cleanup(TestParameters Param, PrintWriter log) { - log.println(" Closing dialog ... "); - if (xWinDlg != null) - xWinDlg.dispose(); - } -} diff --git a/test/source/a11y/accessibletestbase.cxx b/test/source/a11y/accessibletestbase.cxx index d1c2ecbdadd7..441cecdee683 100644 --- a/test/source/a11y/accessibletestbase.cxx +++ b/test/source/a11y/accessibletestbase.cxx @@ -322,6 +322,13 @@ void test::AccessibleTestBase::dumpA11YTree( } } +void test::AccessibleTestBase::dumpA11YTree( + const uno::Reference& xAccessible, const int depth) +{ + assert(xAccessible.is()); + dumpA11YTree(xAccessible->getAccessibleContext(), depth); +} + /** Gets a child by name (usually in a menu) */ uno::Reference test::AccessibleTestBase::getItemFromName( const uno::Reference& xMenuCtx, std::u16string_view name) diff --git a/toolkit/CppunitTest_toolkit_a11y.mk b/toolkit/CppunitTest_toolkit_a11y.mk index 65103b42bdca..715882f80549 100644 --- a/toolkit/CppunitTest_toolkit_a11y.mk +++ b/toolkit/CppunitTest_toolkit_a11y.mk @@ -10,6 +10,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,toolkit_a11y)) $(eval $(call gb_CppunitTest_add_exception_objects,toolkit_a11y, \ + toolkit/qa/cppunit/a11y/AccessibleFixedTextTest \ toolkit/qa/cppunit/a11y/AccessibleStatusBarTest \ )) diff --git a/toolkit/qa/cppunit/a11y/AccessibleFixedTextTest.cxx b/toolkit/qa/cppunit/a11y/AccessibleFixedTextTest.cxx new file mode 100644 index 000000000000..59b4a8ef984a --- /dev/null +++ b/toolkit/qa/cppunit/a11y/AccessibleFixedTextTest.cxx @@ -0,0 +1,147 @@ +/* -*- 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/. + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace css; + +namespace +{ +class AccessibleFixedTextTest : public test::AccessibleTestBase +{ +private: + void testFixedText(); + void + runInterfaceTests(const uno::Reference& rxFixedTextContext, + css::uno::Reference& rxFixedTextWindow); + +public: + CPPUNIT_TEST_SUITE(AccessibleFixedTextTest); + CPPUNIT_TEST(testFixedText); + CPPUNIT_TEST_SUITE_END(); +}; + +void AccessibleFixedTextTest::testFixedText() +{ + uno::Reference xFactory(m_xContext->getServiceManager(), + uno::UNO_SET_THROW); + uno::Reference xDlgModel( + xFactory->createInstanceWithContext(u"com.sun.star.awt.UnoControlDialogModel"_ustr, + m_xContext), + uno::UNO_QUERY_THROW); + + css::uno::Reference xDlgControl( + xFactory->createInstanceWithContext(u"com.sun.star.awt.UnoControlDialog"_ustr, m_xContext), + css::uno::UNO_QUERY_THROW); + xDlgControl->setModel(xDlgModel); + + css::uno::Reference xFixedTextModel( + xFactory->createInstanceWithContext(u"com.sun.star.awt.UnoControlFixedTextModel"_ustr, + m_xContext), + css::uno::UNO_QUERY_THROW); + + css::uno::Reference xFixedTextControl( + xFactory->createInstanceWithContext(u"com.sun.star.awt.UnoControlFixedText"_ustr, + m_xContext), + css::uno::UNO_QUERY_THROW); + + xFixedTextControl->setModel(xFixedTextModel); + + css::uno::Reference xFT(xFixedTextControl, css::uno::UNO_QUERY_THROW); + xFT->setText("FxedText"); + + /* Set the text control to its preferred size, otherwise it + * defaults to the size hard coded in its constructor (100 x 12) */ + css::uno::Reference xLCTxt(xFixedTextControl, + css::uno::UNO_QUERY_THROW); + css::awt::Size textSize = xLCTxt->getPreferredSize(); + css::uno::Reference xWinTxt(xFixedTextControl, css::uno::UNO_QUERY_THROW); + xWinTxt->setPosSize(0, 0, textSize.Width, textSize.Height, css::awt::PosSize::SIZE); + + css::uno::Reference xControlContainer(xDlgControl, + css::uno::UNO_QUERY_THROW); + xControlContainer->addControl(u"Text"_ustr, xFixedTextControl); + + css::uno::Reference xWinDlg(xDlgControl, css::uno::UNO_QUERY_THROW); + xWinDlg->setVisible(true); + xWinDlg->setPosSize(0, 0, 200, 100, css::awt::PosSize::SIZE); + + Scheduler::ProcessEventsToIdle(); + + css::uno::Reference xRoot(xWinDlg, css::uno::UNO_QUERY_THROW); + test::AccessibleTestBase::dumpA11YTree(xRoot); + + css::uno::Reference xContext + = AccessibilityTools::getAccessibleObjectForRole(xRoot, + css::accessibility::AccessibleRole::LABEL); + runInterfaceTests(xContext, xWinTxt); +} + +void AccessibleFixedTextTest::runInterfaceTests( + const uno::Reference& rxContext, + css::uno::Reference& rxFixedTextWindow) +{ + XAccessibleContextTester aContextTester(rxContext); + aContextTester.testAll(); + + uno::Reference xAccessibleComponent(rxContext, + uno::UNO_QUERY_THROW); + XAccessibleComponentTester aComponentTester(xAccessibleComponent); + aComponentTester.testAll(); + + uno::Reference xAccessibleExtendedComponent( + rxContext, uno::UNO_QUERY_THROW); + XAccessibleExtendedComponentTester aExtendedComponentTester(xAccessibleExtendedComponent); + aExtendedComponentTester.testAll(); + + uno::Reference xAccessibleEventBroadcaster( + rxContext, uno::UNO_QUERY_THROW); + auto aFireEventFunc = [&rxFixedTextWindow] { + rxFixedTextWindow->setEnable(false); + rxFixedTextWindow->setEnable(true); + }; + XAccessibleEventBroadcasterTester aEventBroadcasterTester(xAccessibleEventBroadcaster, + aFireEventFunc); + aEventBroadcasterTester.testAll(); + + XAccessibleTextTester aTextTester(rxContext); + aTextTester.testAll(); +} + +CPPUNIT_TEST_SUITE_REGISTRATION(AccessibleFixedTextTest); +} // namespace + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/toolkit/qa/unoapi/toolkit_1.sce b/toolkit/qa/unoapi/toolkit_1.sce index b3cb02981c51..bf7d50d9e293 100644 --- a/toolkit/qa/unoapi/toolkit_1.sce +++ b/toolkit/qa/unoapi/toolkit_1.sce @@ -21,7 +21,6 @@ #i86008 -o toolkit.AccessibleComboBox -o toolkit.AccessibleDropDownComboBox #i86110 -o toolkit.AccessibleEdit --o toolkit.AccessibleFixedText #i86110 -o toolkit.AccessibleList #i86110 -o toolkit.AccessibleListBox #i86110 -o toolkit.AccessibleListItem