sw/qa/extras/uiwriter/uiwriter3.cxx     |   76 ++++++++++++++++++++++++++++++
 sw/qa/uitest/writer_tests6/tdf107975.py |   81 --------------------------------
 2 files changed, 76 insertions(+), 81 deletions(-)

New commits:
commit 2c5655d72401e6b6e917ece381e879b30680d20f
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Mar 9 11:13:32 2020 +0100
Commit:     Xisco Faulí <[email protected]>
CommitDate: Mon Mar 9 13:50:05 2020 +0100

    tdf#107975: move UItest to CppunitTest
    
    Change-Id: I2616f651f13306dd78732937310f204789b470fd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90213
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <[email protected]>

diff --git a/sw/qa/uitest/writer_tests/data/tdf107975.odt 
b/sw/qa/extras/uiwriter/data3/tdf107975.odt
similarity index 100%
rename from sw/qa/uitest/writer_tests/data/tdf107975.odt
rename to sw/qa/extras/uiwriter/data3/tdf107975.odt
diff --git a/sw/qa/extras/uiwriter/uiwriter3.cxx 
b/sw/qa/extras/uiwriter/uiwriter3.cxx
index d9450881c47f..2a62ac2e9928 100644
--- a/sw/qa/extras/uiwriter/uiwriter3.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter3.cxx
@@ -10,6 +10,7 @@
 #include <swmodeltestbase.hxx>
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
 #include <vcl/scheduler.hxx>
+#include <com/sun/star/text/TextContentAnchorType.hpp>
 
 namespace
 {
@@ -204,6 +205,81 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf126340)
     CPPUNIT_ASSERT_EQUAL(OUString("foo"), getParagraph(1)->getString());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf107975)
+{
+    // This test also covers tdf#117185 tdf#110442
+
+    load(DATA_DIRECTORY, "tdf107975.odt");
+
+    SwXTextDocument* pTextDoc = 
dynamic_cast<SwXTextDocument*>(mxComponent.get());
+    CPPUNIT_ASSERT(pTextDoc);
+
+    uno::Reference<text::XTextGraphicObjectsSupplier> 
xTextGraphicObjectsSupplier(mxComponent,
+                                                                               
   uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xIndexAccess(
+        xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY);
+
+    uno::Reference<drawing::XShape> xShape(xIndexAccess->getByIndex(0), 
uno::UNO_QUERY);
+
+    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER,
+                         getProperty<text::TextContentAnchorType>(xShape, 
"AnchorType"));
+
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+
+    dispatchCommand(mxComponent, ".uno:SelectAll", {});
+    dispatchCommand(mxComponent, ".uno:Copy", {});
+
+    //Position the mouse cursor (caret) after "ABC" below the blue image
+    dispatchCommand(mxComponent, ".uno:GoRight", {});
+    dispatchCommand(mxComponent, ".uno:Paste", {});
+
+    // without the fix, it crashes
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    CPPUNIT_ASSERT_EQUAL(OUString("ABC"), getParagraph(1)->getString());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Redo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Redo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+
+    //try again with anchor at start of doc which is another special case
+    xShape.set(xIndexAccess->getByIndex(0), uno::UNO_QUERY);
+    uno::Reference<text::XTextContent> xShapeContent(xShape, uno::UNO_QUERY);
+    uno::Reference<text::XTextRange> const xStart = 
pTextDoc->getText()->getStart();
+    xShapeContent->attach(xStart);
+
+    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_CHARACTER,
+                         getProperty<text::TextContentAnchorType>(xShape, 
"AnchorType"));
+
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+
+    dispatchCommand(mxComponent, ".uno:SelectAll", {});
+    dispatchCommand(mxComponent, ".uno:Copy", {});
+
+    //Position the mouse cursor (caret) after "ABC" below the blue image
+    dispatchCommand(mxComponent, ".uno:GoRight", {});
+    dispatchCommand(mxComponent, ".uno:Paste", {});
+
+    // without the fix, it crashes
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    CPPUNIT_ASSERT_EQUAL(OUString("ABC"), getParagraph(1)->getString());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Redo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Redo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
+    dispatchCommand(mxComponent, ".uno:Undo", {});
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf130680)
 {
     load(DATA_DIRECTORY, "tdf130680.odt");
diff --git a/sw/qa/uitest/writer_tests6/tdf107975.py 
b/sw/qa/uitest/writer_tests6/tdf107975.py
deleted file mode 100644
index 9dea24dd57d3..000000000000
--- a/sw/qa/uitest/writer_tests6/tdf107975.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
-#
-# 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/.
-#
-from uitest.framework import UITestCase
-from uitest.uihelper.common import get_state_as_dict
-from uitest.uihelper.common import select_pos
-from uitest.uihelper.calc import enter_text_to_cell
-from libreoffice.calc.document import get_cell_by_position
-from libreoffice.uno.propertyvalue import mkPropertyValues
-from uitest.uihelper.common import get_state_as_dict, type_text
-from uitest.debug import sleep
-import org.libreoffice.unotest
-import pathlib
-
-def get_url_for_data_file(file_name):
-    return 
pathlib.Path(org.libreoffice.unotest.makeCopyFromTDOC(file_name)).as_uri()
-
-#Bug 107975 - CRASH: Crash after undo operation 
(BigPtrArray::Index2Block(unsigned long)
-
-class tdf107975(UITestCase):
-   def test_tdf107975_crash_after_undo(self):
-        writer_doc = 
self.ui_test.load_file(get_url_for_data_file("tdf107975.odt"))
-        document = self.ui_test.get_component()
-        xWriterDoc = self.xUITest.getTopFocusWindow()
-        xWriterEdit = xWriterDoc.getChild("writer_edit")
-
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-
-        #Press CTRL+A and + CTRL+C
-        self.xUITest.executeCommand(".uno:SelectAll")
-        self.xUITest.executeCommand(".uno:Copy")
-        #Position the mouse cursor (caret) after "ABC" below the blue image
-        xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": 
"RIGHT"}))
-        #Paste CTRL+V
-        self.xUITest.executeCommand(".uno:Paste")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        #Undo paste CTRL+Z -> Crash
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(document.Text.String[0:3], "ABC")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-        self.xUITest.executeCommand(".uno:Redo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-        self.xUITest.executeCommand(".uno:Redo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-
-        # try again with anchor at start of doc which is another special case
-        xShape = writer_doc.getGraphicObjects()[0]
-        xStart = writer_doc.getText().getStart()
-        xShape.attach(xStart)
-
-        #Press CTRL+A and + CTRL+C
-        self.xUITest.executeCommand(".uno:SelectAll")
-        self.xUITest.executeCommand(".uno:Copy")
-        #Position the mouse cursor (caret) after "ABC" below the blue image
-        xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": 
"RIGHT"}))
-        #Paste CTRL+V
-        self.xUITest.executeCommand(".uno:Paste")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        #Undo paste CTRL+Z -> Crash
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-        self.assertEqual(document.Text.String[0:3], "ABC")
-        self.xUITest.executeCommand(".uno:Redo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-        self.xUITest.executeCommand(".uno:Redo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 2)
-        self.xUITest.executeCommand(".uno:Undo")
-        self.assertEqual(writer_doc.getGraphicObjects().getCount(), 1)
-
-        self.ui_test.close_doc()
-
-# vim: set shiftwidth=4 softtabstop=4 expandtab:
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to