summaryrefslogtreecommitdiff
path: root/sw/qa/extras
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2018-05-15 22:25:46 +0900
committerTomaž Vajngerl <quikee@gmail.com>2018-05-16 01:37:08 +0200
commit29cebedfbdc8a8d3bf47e9a8148dc081bf86eb10 (patch)
tree02c2b776b426ed6b3058f557fc089c84fe54510f /sw/qa/extras
parentb2b1d0a4c4ffcba0e32e5909a61de43eeaf98c25 (diff)
sw: cleanup globalfilter test
- use OUString for filter names - use modern iteration through filter names - no change to the tests Change-Id: Idab4183efe2b489b91b4f3c96e7cb1d639628766 Reviewed-on: https://gerrit.libreoffice.org/54374 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sw/qa/extras')
-rw-r--r--sw/qa/extras/globalfilter/globalfilter.cxx118
1 files changed, 61 insertions, 57 deletions
diff --git a/sw/qa/extras/globalfilter/globalfilter.cxx b/sw/qa/extras/globalfilter/globalfilter.cxx
index eab2037d697e..60b3d083a0c4 100644
--- a/sw/qa/extras/globalfilter/globalfilter.cxx
+++ b/sw/qa/extras/globalfilter/globalfilter.cxx
@@ -63,26 +63,27 @@ public:
void Test::testEmbeddedGraphicRoundtrip()
{
- const char* aFilterNames[] = {
+ OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
// Check whether the export code swaps in the image which was swapped out before by auto mechanism
if (mxComponent.is())
mxComponent->dispose();
+
mxComponent = loadFromDesktop(m_directories.getURLFromSrc("/sw/qa/extras/globalfilter/data/document_with_two_images.odt"), "com.sun.star.text.TextDocument");
// Export the document and import again for a check
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -95,7 +96,7 @@ void Test::testEmbeddedGraphicRoundtrip()
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
- const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
// First image
@@ -134,28 +135,26 @@ void Test::testEmbeddedGraphicRoundtrip()
void Test::testLinkedGraphicRT()
{
- const std::vector<OUString> aFilterNames = {
+ const OUString aFilterNames[] = {
"writer8",
// "Rich Text Format", Note: picture is there, but SwGrfNode is not found?
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < aFilterNames.size(); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
mxComponent = loadFromDesktop(m_directories.getURLFromSrc("/sw/qa/extras/globalfilter/data/document_with_linked_graphic.odt"), "com.sun.star.text.TextDocument");
- const OString sFailedMessage = OString("Failed on filter: ")
- + OUStringToOString(aFilterNames[nFilter], RTL_TEXTENCODING_ASCII_US);
-
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
// Export the document and import again for a check
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= aFilterNames[nFilter];
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -173,9 +172,9 @@ void Test::testLinkedGraphicRT()
// Find the image
bool bImageFound = false;
Graphic aGraphic;
- for( sal_uLong nIndex = 0; nIndex < aNodes.Count(); ++nIndex)
+ for (sal_uLong nIndex = 0; nIndex < aNodes.Count(); ++nIndex)
{
- if( aNodes[nIndex]->IsGrfNode() )
+ if (aNodes[nIndex]->IsGrfNode())
{
SwGrfNode* pGrfNode = aNodes[nIndex]->GetGrfNode();
CPPUNIT_ASSERT(pGrfNode);
@@ -185,6 +184,7 @@ void Test::testLinkedGraphicRT()
bImageFound = true;
}
}
+
CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), bImageFound);
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), GraphicType::Bitmap, aGraphic.GetType());
@@ -203,14 +203,14 @@ void Test::testImageWithSpecialID()
// Check how LO handles when the imported graphic's ID is different from that one
// which is generated by LO.
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
@@ -220,7 +220,7 @@ void Test::testImageWithSpecialID()
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -233,7 +233,7 @@ void Test::testImageWithSpecialID()
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
- const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
uno::Reference<drawing::XShape> xImage = getShape(1);
@@ -250,8 +250,9 @@ void Test::testImageWithSpecialID()
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(610), xBitmap->getSize().Width);
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(381), xBitmap->getSize().Height);
}
+
// Second Image
- xImage = getShape(2);
+ xImage.set(xDraws->getByIndex(1), uno::UNO_QUERY);
XPropSet.set( xImage, uno::UNO_QUERY_THROW );
// Check graphic, size
@@ -301,14 +302,14 @@ void Test::testGraphicShape()
// There are two kind of images in Writer: 1) Writer specific handled by SwGrfNode and
// 2) graphic shape handled by SdrGrafObj (e.g. after copy&paste from Impress).
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
@@ -318,7 +319,7 @@ void Test::testGraphicShape()
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -331,7 +332,7 @@ void Test::testGraphicShape()
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
- const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
uno::Reference<drawing::XShape> xImage = lcl_getShape(mxComponent, true);
@@ -350,13 +351,13 @@ void Test::testGraphicShape()
}
// MS filters make this kind of linked images broken !?
- if( OUString::createFromAscii(aFilterNames[nFilter]) != "writer8" )
+ if (rFilterName != "writer8")
return;
// Second image is a linked one
xImage = lcl_getShape(mxComponent, false);
- XPropSet.set( xImage, uno::UNO_QUERY );
- const OString sFailedImageLoad = OString("Couldn't load the shape/image for ") + aFilterNames[nFilter];
+ XPropSet.set(xImage, uno::UNO_QUERY);
+ const OString sFailedImageLoad = OString("Couldn't load the shape/image for ") + rFilterName.toUtf8();
CPPUNIT_ASSERT_MESSAGE(sFailedImageLoad.getStr(), xImage.is());
// Check size
@@ -371,8 +372,8 @@ void Test::testGraphicShape()
uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
- CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(620), xBitmap->getSize().Width );
- CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(465), xBitmap->getSize().Height );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(620), xBitmap->getSize().Width);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(465), xBitmap->getSize().Height);
}
}
}
@@ -382,27 +383,27 @@ void Test::testCharHighlightBody()
// MS Word has two kind of character backgrounds called character shading and highlighting
// MS filters handle these attributes separately, but ODF export merges them into one background attribute
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
mxComponent = loadFromDesktop(m_directories.getURLFromSrc("/sw/qa/extras/globalfilter/data/char_highlight.docx"),
"com.sun.star.text.TextDocument");
- const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
// Export the document and import again for a check
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -438,7 +439,7 @@ void Test::testCharHighlightBody()
case 16: nHighlightColor = 0xC0C0C0; break; //light gray
}
- if( strcmp(aFilterNames[nFilter], "writer8") == 0 )
+ if (rFilterName == "writer8")
{
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight"));
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nHighlightColor, getProperty<sal_Int32>(xRun,"CharBackColor"));
@@ -453,7 +454,7 @@ void Test::testCharHighlightBody()
// Only highlight
{
const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,18), uno::UNO_QUERY);
- if( strcmp(aFilterNames[nFilter], "writer8") == 0 )
+ if (rFilterName == "writer8")
{
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight"));
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(0xff0000), getProperty<sal_Int32>(xRun,"CharBackColor"));
@@ -569,14 +570,14 @@ void Test::testMSCharBackgroundEditing()
// Simulate the editing process of imported MSO character background attributes
// and check how export behaves.
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
@@ -584,7 +585,7 @@ void Test::testMSCharBackgroundEditing()
mxComponent = loadFromDesktop(m_directories.getURLFromSrc("/sw/qa/extras/globalfilter/data/char_background_editing.docx"),
"com.sun.star.text.TextDocument");
- const OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ const OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
// Check whether import was done on the right way
uno::Reference< text::XTextRange > xPara = getParagraph(1);
@@ -643,7 +644,7 @@ void Test::testMSCharBackgroundEditing()
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -665,7 +666,7 @@ void Test::testMSCharBackgroundEditing()
case 4: nBackColor = 0xff00ff; break; //magenta
}
const uno::Reference<beans::XPropertySet> xRun(getRun(xPara,i), uno::UNO_QUERY);
- if( strcmp(aFilterNames[nFilter], "writer8") == 0 )
+ if (rFilterName == "writer8")
{
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(COL_TRANSPARENT), getProperty<sal_Int32>(xRun,"CharHighlight"));
CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), nBackColor, getProperty<sal_Int32>(xRun,"CharBackColor"));
@@ -684,20 +685,20 @@ void Test::testCharBackgroundToHighlighting()
// MSO highlighting has less kind of values so let's see how LO character background is converted
// to these values
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"Rich Text Format",
"MS Word 97",
"Office Open XML Text",
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (OUString const & rFilterName : aFilterNames)
{
if (mxComponent.is())
mxComponent->dispose();
mxComponent = loadFromDesktop(m_directories.getURLFromSrc("/sw/qa/extras/globalfilter/data/char_background.odt"),
"com.sun.star.text.TextDocument");
- OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter];
+ OString sFailedMessage = OString("Failed on filter: ") + rFilterName.toUtf8();
SvtFilterOptions& rOpt = SvtFilterOptions::Get();
@@ -707,7 +708,7 @@ void Test::testCharBackgroundToHighlighting()
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -756,17 +757,17 @@ void Test::testSkipImages()
// Check how LO skips image loading (but not texts of textboxes and custom shapes)
// during DOC and DOCX import, using the "SkipImages" FilterOptions.
- const char* aFilterNames[][2] = {
- { "/sw/qa/extras/globalfilter/data/skipimages.doc", nullptr },
+ std::pair<OUString, OUString> aFilterNames[] = {
+ { "/sw/qa/extras/globalfilter/data/skipimages.doc", "" },
{ "/sw/qa/extras/globalfilter/data/skipimages.doc", "SkipImages" },
- { "/sw/qa/extras/globalfilter/data/skipimages.docx", nullptr },
+ { "/sw/qa/extras/globalfilter/data/skipimages.docx", "" },
{ "/sw/qa/extras/globalfilter/data/skipimages.docx", "SkipImages" }
};
- for( size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter )
+ for (auto const & rFilterNamePair : aFilterNames)
{
- bool bSkipImages = aFilterNames[nFilter][1] != nullptr;
- OString sFailedMessage = OString("Failed on filter: ") + aFilterNames[nFilter][0];
+ bool bSkipImages = !rFilterNamePair.second.isEmpty();
+ OString sFailedMessage = OString("Failed on filter: ") + rFilterNamePair.first.toUtf8();
if (mxComponent.is())
mxComponent->dispose();
@@ -774,13 +775,16 @@ void Test::testSkipImages()
if (bSkipImages)
{
// FilterOptions parameter
- uno::Sequence<beans::PropertyValue> args( comphelper::InitPropertySequence({
- { "FilterOptions", uno::Any(OUString::createFromAscii(aFilterNames[nFilter][1])) }
+ uno::Sequence<beans::PropertyValue> args(comphelper::InitPropertySequence({
+ { "FilterOptions", uno::Any(rFilterNamePair.second) }
}));
- mxComponent = loadFromDesktop(m_directories.getURLFromSrc(OUString::createFromAscii(aFilterNames[nFilter][0])), "com.sun.star.text.TextDocument", args);
- sFailedMessage = sFailedMessage + " - " + aFilterNames[nFilter][1];
- } else
- mxComponent = loadFromDesktop(m_directories.getURLFromSrc(OUString::createFromAscii(aFilterNames[nFilter][0])), "com.sun.star.text.TextDocument");
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc(rFilterNamePair.first), "com.sun.star.text.TextDocument", args);
+ sFailedMessage = sFailedMessage + " - " + rFilterNamePair.second.toUtf8();
+ }
+ else
+ {
+ mxComponent = loadFromDesktop(m_directories.getURLFromSrc(rFilterNamePair.first), "com.sun.star.text.TextDocument");
+ }
// Check shapes (images, textboxes, custom shapes)
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
@@ -828,7 +832,7 @@ void Test::testSkipImages()
void Test::testRedlineFlags()
{
- const char* aFilterNames[] = {
+ const OUString aFilterNames[] = {
"writer8",
"Rich Text Format",
"MS Word 97",
@@ -859,13 +863,13 @@ void Test::testRedlineFlags()
rIDRA.GetRedlineFlags() & ~RedlineFlags::ShowDelete;
rIDRA.SetRedlineFlags(nRedlineFlags);
- for (size_t nFilter = 0; nFilter < SAL_N_ELEMENTS(aFilterNames); ++nFilter)
+ for (OUString const & rFilterName : aFilterNames)
{
// export the document
uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
utl::MediaDescriptor aMediaDescriptor;
- aMediaDescriptor["FilterName"] <<= OUString::createFromAscii(aFilterNames[nFilter]);
+ aMediaDescriptor["FilterName"] <<= rFilterName;
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
xStorable->storeToURL(aTempFile.GetURL(),
@@ -873,7 +877,7 @@ void Test::testRedlineFlags()
// tdf#97103 check that redline mode is properly restored
CPPUNIT_ASSERT_EQUAL_MESSAGE(
- OString(OString("redline mode not restored in ") + aFilterNames[nFilter]).getStr(),
+ OString(OString("redline mode not restored in ") + rFilterName.toUtf8()).getStr(),
static_cast<int>(nRedlineFlags), static_cast<int>(rIDRA.GetRedlineFlags()));
}
}