sw: text formatting: add test for per-line paragraph properties like Word

Test for commit 0849ddd0b1

Change-Id: Ia26286593b3e7f21799a86b1762ab30421941fad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192957
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins
This commit is contained in:
Michael Stahl
2025-10-27 12:00:50 +01:00
parent 1134053435
commit 116facc290
2 changed files with 86 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang2057\deflangfe1028\themelang3079\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Arial};}
{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial{\*\falt Arial};}
{\fdbminor\f31505\fbidi \fnil\fcharset136\fprq2{\*\panose 02010601000101010101}PMingLiU{\*\falt Arial Unicode MS};}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
}
{\*\defchp \f31506\fs22\lang3079\langfe1033\langnp3079\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \sunhideused \spriority1 Default Paragraph Font;}{
\s15\ql \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033
\sbasedon0 \snext15 \slink17 \sunhideused header;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink15 \slocked Header Char;}}
\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0
\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
\asianbrkrule\rsidroot6514785\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0
\ltrpar \sectd \ltrsect\pgnrestart\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\headerl \ltrpar \pard\plain \ltrpar\s15\ql \li0\ri0\widctlpar
\tqc\tx4536\tqr\tx9072\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0
\par }}{\headerr \ltrpar \pard\plain \ltrpar\s15\qc \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \v\fs16 \line \line \line
\par \line \line \line \line \line \line \line
\par }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\v\fs16 \line \line \line \line \line }{\rtlch\fcs1 \ab\af0\afs12 \ltrch\fcs0 \v\fs16 \line }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \v\fs16 \line
\par \line
\par }{\rtlch\fcs1 \af1 \ltrch\fcs0 \v\f1\fs16
\par }\pard \ltrpar\qr \li1418\ri0\sa1600\sl480\slmult1\widctlpar\wrapdefault\faauto\adjustright\rin0\lin1418\itap0 {\rtlch\fcs1 \af1 \ltrch\fcs0 \f1\fs16\lang2057\langfe1033\langnp2057 a\line n\line v\tab \line d
}{\rtlch\fcs1 \af1 \ltrch\fcs0 \v\f1\fs16\lang2057\langfe1033\langnp2057
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\tx2835\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af1 \ltrch\fcs0 \f1\fs16\lang2057\langfe1033\langnp2057 a
\tab c\line x\tab y
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af1 \ltrch\fcs0 \f1\fs16\lang2057\langfe1033\langnp2057
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af1 \ltrch\fcs0 \v\f1\fs16\lang2057\langfe1033\langnp2057
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af0\afs12 \ltrch\fcs0 \v\fs16\lang2057\langfe1033\langnp2057
\par }\pard\plain \ltrpar\s15\qc \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {
\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \v\fs16\lang2057\langfe1033\langnp2057
\par }\pard\plain \ltrpar\qc \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {\rtlch\fcs1 \af0
\ltrch\fcs0 [text] }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang2057\langfe1033\langnp2057
\par }}
\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\adjustright\rin0\lin0\itap0
\rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f1\fs23\lang3079\langfe1033\cgrid\langnp3079\langfenp1033 {\rtlch\fcs1 \af0\afs28 \ltrch\fcs0 \b\fs28\lang1031\langfe1033\loch\af0\hich\af0\dbch\af31505\langnp1031
\hich\af0\dbch\af31505\loch\f0 Xxxxxxxxxxxxxxxx xxx xxxx}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\lang2057\langfe1028\loch\af0\hich\af0\dbch\af31505\langnp2057\langfenp1028
\par }
}
+44
View File
@@ -496,6 +496,50 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf162725)
assertXPath(pXmlDoc, "/root/page/body/txt[1]/SwParaPortion/SwLineLayout[1]/SwGluePortion");
}
CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testHiddenParagraphMarkPerLineProperties)
{
createSwDoc("min-wtf.rtf");
// ensure paragraphs are merged by hidden formatting
SwWrtShell* pWrtShell = getSwDocShell()->GetWrtShell();
SwViewOption aViewOptions(*pWrtShell->GetViewOptions());
aViewOptions.SetViewMetaChars(false);
pWrtShell->ApplyViewOptions(aViewOptions);
xmlDocUniquePtr pXmlDoc = parseLayoutDump();
assertXPath(pXmlDoc, "/root/page[1]/header/txt", 3);
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[1]", "height",
u"184");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[2]", "height",
u"184");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[3]", "height",
u"184");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[4]", "height",
u"184");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[5]", "height",
u"184");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout", 5);
// the problem was that this was 1656 due to using wrong line spacing for last line
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/infos/bounds", "height", u"1499");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[4]/SwFixPortion",
"type", u"PortionType::TabLeft");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[4]/SwFixPortion",
"width", u"532");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[5]/SwFixPortion",
"type", u"PortionType::TabLeft");
// the problem was that this was 626 (same tab position as previous line)
assertXPath(pXmlDoc, "/root/page[1]/header/txt[1]/SwParaPortion/SwLineLayout[5]/SwFixPortion",
"width", u"2755");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[2]/SwParaPortion/SwLineLayout", 0);
// this one was also wrong (1968) due to wrong spacing-below
assertXPath(pXmlDoc, "/root/page[1]/header/txt[2]/infos/bounds", "height", u"411");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[3]/SwParaPortion/SwLineLayout[1]", "height",
u"265");
assertXPath(pXmlDoc, "/root/page[1]/header/txt[3]/SwParaPortion/SwLineLayout", 1);
assertXPath(pXmlDoc, "/root/page[1]/header/txt[3]/infos/bounds", "height", u"492");
}
CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf161810)
{
createSwDoc("tdf161810.fodt");