Kaydet (Commit) a572af02 authored tarafından Miklos Vajna's avatar Miklos Vajna

add tests for RTF_MACC and RTF_MEQARR

Change-Id: Id33672d0acef4d79239e0ee8a86d5a244ac736e7
üst e0c5698f
You can find test documents here for DOCX. RTF test documents are at
sw/qa/extras/rtfexport/data/math-*.rtf.
......@@ -65,6 +65,7 @@ $(eval $(call gb_CppunitTest_use_ure,sw_subsequent_rtfexport))
$(eval $(call gb_CppunitTest_use_components,sw_subsequent_rtfexport,\
comphelper/util/comphelp \
configmgr/source/configmgr \
embeddedobj/util/embobj \
fileaccess/source/fileacc \
filter/source/config/cache/filterconfig1 \
framework/util/fwk \
......@@ -73,6 +74,7 @@ $(eval $(call gb_CppunitTest_use_components,sw_subsequent_rtfexport,\
package/util/package2 \
sax/source/expatwrap/expwrap \
sfx2/util/sfx \
starmath/util/sm \
svl/source/fsstor/fsstorage \
svtools/util/svt \
sw/util/msword \
......@@ -81,6 +83,7 @@ $(eval $(call gb_CppunitTest_use_components,sw_subsequent_rtfexport,\
toolkit/util/tk \
ucb/source/core/ucb1 \
ucb/source/ucp/file/ucpfile1 \
unotools/util/utl \
unoxml/source/service/unoxml \
writerfilter/util/writerfilter \
))
......
{\rtf1
{\mmath
{\*\moMathPara
{\*\moMath
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u769 \'b4}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u768 `}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u780 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u774 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u778 \'b0}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u8407 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u771 ~}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0
\i\f34\insrsid26133 \hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u729 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u8407 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u8407 ?}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\macc
{\maccPr
{\mchr \u771 ~}
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
{\mbar
{\mbarPr
{\mctrlPr\f34 }
}
{\me
{\rtlch\fcs1 \af1 \ltrch\fcs0 \i\f34\insrsid26133
\hich\af34\dbch\af42\loch\f34
{\mr\mscr0\msty2 a}
}
{\rtlch\fcs1 \af1 \ltrch\fcs0 \f34\insrsid26133 }
}
}
}
}
}
\par
}
{\rtf1
{\mmath
{\*\moMathPara
{\*\moMath
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 y}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 =}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
{\md
{\mdPr
{\mbegChr \'7b}
{\mendChr }
{\mctrlPr\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033 }
}
{\me
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
{\meqArr
{\meqArrPr
{\mctrlPr\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033 }
}
{\me
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 0, }
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840
\hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 x}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 <0}
}
{\rtlch\fcs1 \af31507
\ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
{\me
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 1, }
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 x}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 =0}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
{\me
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
{\msSup
{\msSupPr
{\mctrlPr\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033 }
}
{\me
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 x}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
{\msup
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 2}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 ,
}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 x}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0
\i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid9447840 \hich\af34\dbch\af31505\loch\f34
{\mr\mscr0\msty2 >0}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
}
{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\lang1033\langfe1033\loch\af34\hich\af34\dbch\af31505\langnp1033\insrsid14308624 }
}
}
}
}
}
\par
}
......@@ -27,11 +27,11 @@
#include "../swmodeltestbase.hxx"
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/view/XViewSettingsSupplier.hpp>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/text/XPageCursor.hpp>
#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
#include <com/sun/star/view/XViewSettingsSupplier.hpp>
#include <unotools/tempfile.hxx>
#include <vcl/svapp.hxx>
......@@ -51,6 +51,8 @@ public:
void testFdo50831();
void testFdo48335();
void testFdo38244();
void testMathAccents();
void testMathEqarray();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
......@@ -62,6 +64,8 @@ public:
CPPUNIT_TEST(testFdo50831);
CPPUNIT_TEST(testFdo48335);
CPPUNIT_TEST(testFdo38244);
CPPUNIT_TEST(testMathAccents);
CPPUNIT_TEST(testMathEqarray);
#endif
CPPUNIT_TEST_SUITE_END();
......@@ -202,6 +206,22 @@ void Test::testFdo38244()
CPPUNIT_ASSERT_EQUAL(OUString("M"), getProperty<OUString>(xPropertySet, "Initials"));
}
void Test::testMathAccents()
{
roundtrip("math-accents.rtf");
OUString aActual = getFormula(getRun(getParagraph(1), 1));
OUString aExpected("acute {a} grave {a} check {a} breve {a} circle {a} widevec {a} widetilde {a} widehat {a} dot {a} widevec {a} widevec {a} widetilde {a} underline {a}");
CPPUNIT_ASSERT_EQUAL(aExpected, aActual);
}
void Test::testMathEqarray()
{
roundtrip("math-eqarray.rtf");
OUString aActual = getFormula(getRun(getParagraph(1), 1));
OUString aExpected("y = left lbrace stack { 0, x < 0 # 1, x = 0 # {x} ^ {2} , x > 0 } right none");
CPPUNIT_ASSERT_EQUAL(aExpected, aActual);
}
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
......
......@@ -25,6 +25,7 @@
* instead of those above.
*/
#include <com/sun/star/container/XContentEnumerationAccess.hpp>
#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
#include <com/sun/star/text/XTextDocument.hpp>
#include <com/sun/star/text/XTextRange.hpp>
......@@ -162,7 +163,7 @@ protected:
}
// Get paragraph (counted from 1), optionally check it contains the given text.
uno::Reference< text::XTextRange > getParagraph( int number, rtl::OUString content ) const
uno::Reference< text::XTextRange > getParagraph( int number, rtl::OUString content = OUString() ) const
{
uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XEnumerationAccess> paraEnumAccess(textDocument->getText(), uno::UNO_QUERY);
......@@ -177,6 +178,26 @@ protected:
return paragraph;
}
/// Get run (counted from 1) of a paragraph.
uno::Reference<text::XTextRange> getRun(uno::Reference<text::XTextRange> xParagraph, int number) const
{
uno::Reference<container::XEnumerationAccess> xRunEnumAccess(xParagraph, uno::UNO_QUERY);
uno::Reference<container::XEnumeration> xRunEnum = xRunEnumAccess->createEnumeration();
for (int i = 1; i < number; ++i)
xRunEnum->nextElement();
uno::Reference<text::XTextRange> xRun(xRunEnum->nextElement(), uno::UNO_QUERY);
return xRun;
}
/// Get math formula string of a run.
OUString getFormula(uno::Reference<text::XTextRange> xRun) const
{
uno::Reference<container::XContentEnumerationAccess> xContentEnumAccess(xRun, uno::UNO_QUERY);
uno::Reference<container::XEnumeration> xContentEnum(xContentEnumAccess->createContentEnumeration(""), uno::UNO_QUERY);
uno::Reference<beans::XPropertySet> xFormula(xContentEnum->nextElement(), uno::UNO_QUERY);
return getProperty<OUString>(getProperty< uno::Reference<beans::XPropertySet> >(xFormula, "Model"), "Formula");
}
uno::Reference<lang::XComponent> mxComponent;
xmlBufferPtr mpXmlBuffer;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment