diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /sw/qa/core/edit | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sw/qa/core/edit')
-rw-r--r-- | sw/qa/core/edit/data/redline-hidden.fodt | 32 | ||||
-rw-r--r-- | sw/qa/core/edit/edit.cxx | 61 |
2 files changed, 93 insertions, 0 deletions
diff --git a/sw/qa/core/edit/data/redline-hidden.fodt b/sw/qa/core/edit/data/redline-hidden.fodt new file mode 100644 index 0000000000..10355e3ac4 --- /dev/null +++ b/sw/qa/core/edit/data/redline-hidden.fodt @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<office:document xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:settings> + <config:config-item-set config:name="ooo:view-settings"> + <config:config-item config:name="ShowRedlineChanges" config:type="boolean">false</config:config-item> + </config:config-item-set> + </office:settings> + <office:automatic-styles> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm"/> + </style:page-layout> + </office:automatic-styles> + <office:master-styles> + <style:master-page style:name="Standard" style:page-layout-name="pm1"> + </style:master-page> + </office:master-styles> + <office:body> + <office:text> + <text:tracked-changes text:track-changes="false"> + <text:changed-region xml:id="ct51730224" text:id="ct51730224"> + <text:insertion> + <office:change-info> + <dc:creator>Creator</dc:creator> + <dc:date>2017-04-27T17:12:10</dc:date> + </office:change-info> + </text:insertion> + </text:changed-region> + </text:tracked-changes> + <text:p><text:change-start text:change-id="ct51730224"/>test<text:change-end text:change-id="ct51730224"/></text:p> + </office:text> + </office:body> +</office:document> diff --git a/sw/qa/core/edit/edit.cxx b/sw/qa/core/edit/edit.cxx new file mode 100644 index 0000000000..444887fbb0 --- /dev/null +++ b/sw/qa/core/edit/edit.cxx @@ -0,0 +1,61 @@ +/* -*- 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/. + */ + +#include <swmodeltestbase.hxx> + +#include <docsh.hxx> +#include <view.hxx> +#include <wrtsh.hxx> +#include <unotxdoc.hxx> + +namespace +{ +/// Covers sw/source/core/edit/ fixes. +class Test : public SwModelTestBase +{ +public: + Test() + : SwModelTestBase("/sw/qa/core/edit/data/") + { + } +}; +} + +CPPUNIT_TEST_FIXTURE(Test, testRedlineHidden) +{ + // Given a document with ShowRedlineChanges=false: + createSwDoc("redline-hidden.fodt"); + SwDoc* pDoc = getSwDoc(); + + // When formatting a paragraph by setting the para adjust to center, then make sure setting the + // new item set on the paragraph doesn't crash: + SwView* pView = pDoc->GetDocShell()->GetView(); + SfxItemSet aSet(pView->GetPool(), svl::Items<RES_PARATR_ADJUST, RES_PARATR_ADJUST>); + SvxAdjustItem aItem(SvxAdjust::Center, RES_PARATR_ADJUST); + aSet.Put(aItem); + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->SetAttrSet(aSet, SetAttrMode::DEFAULT, nullptr, true); +} + +CPPUNIT_TEST_FIXTURE(Test, testAutocorrect) +{ + // Given an empty document: + createSwDoc(); + + // When typing a string, which contains a "-", then make sure no memory corruption happens when + // it gets auto-corrected to "–": + auto pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get()); + // Without the accompanying fix in place, this test would have failed with a + // heap-use-after-free: + emulateTyping(*pTextDoc, u"But not now - with "); +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |