summaryrefslogtreecommitdiff
path: root/sd/qa
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2015-09-27 22:46:11 +1000
committerMichael Meeks <michael.meeks@collabora.com>2016-03-19 11:51:06 +0000
commit5ca1f04976930c6fd656ebf89d667c80e2466897 (patch)
treeaf2c86dda10482a3e3bcc679090c09f38dbbf395 /sd/qa
parent0eea1465a06119903fca5f5b6dfe5b05a80546ba (diff)
tdf#93124: Fix incorrect text fit in imported PPT
To make text adjustment to full width, the alignment optimizations had to be removed, and bAutoFit was removed, too. Allso, to fix tdf#41245 again, the SDRTEXTFIT_AUTOFIT that is set in SdStyleSheetPool::CreateLayoutStyleSheets had to be overridden. I touch the following commits: http://cgit.freedesktop.org/libreoffice/core/commit/?id=d2000efb31f864e912c6cf52760eea0e602b6893 http://cgit.freedesktop.org/libreoffice/core/commit/?id=3550256daa5451c1d51d220d5489c1b20150c374 http://cgit.freedesktop.org/libreoffice/core/commit/?id=812aff65ad0661fed9687a429c763dc8f2144a0c Change-Id: I7f7934e2982baf0240c740e09fcb9bd348079064 Reviewed-on: https://gerrit.libreoffice.org/18895 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sd/qa')
-rw-r--r--sd/qa/unit/data/ppt/tdf93124.pptbin0 -> 85504 bytes
-rw-r--r--sd/qa/unit/import-tests.cxx51
2 files changed, 51 insertions, 0 deletions
diff --git a/sd/qa/unit/data/ppt/tdf93124.ppt b/sd/qa/unit/data/ppt/tdf93124.ppt
new file mode 100644
index 000000000000..fad847898cc6
--- /dev/null
+++ b/sd/qa/unit/data/ppt/tdf93124.ppt
Binary files differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index b1023968ebe6..29bcc05024be 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -41,9 +41,11 @@
#include <animations/animationnodehelper.hxx>
#include <sax/tools/converter.hxx>
+#include <comphelper/processfactory.hxx>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <com/sun/star/drawing/XDrawPage.hpp>
#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/drawing/GraphicExportFilter.hpp>
#include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
#include <com/sun/star/animations/XAnimationNode.hpp>
#include <com/sun/star/animations/XAnimate.hpp>
@@ -62,6 +64,8 @@
#include <com/sun/star/table/XTableRows.hpp>
#include <stlpool.hxx>
+#include <vcl/pngread.hxx>
+#include <vcl/bitmapaccess.hxx>
using namespace ::com::sun::star;
@@ -110,6 +114,7 @@ public:
void testTdf93097();
void testTdf62255();
void testTdf89927();
+ void testTdf93124();
CPPUNIT_TEST_SUITE(SdImportTest);
@@ -154,6 +159,7 @@ public:
CPPUNIT_TEST(testTdf93097);
CPPUNIT_TEST(testTdf62255);
CPPUNIT_TEST(testTdf89927);
+ CPPUNIT_TEST(testTdf93124);
CPPUNIT_TEST_SUITE_END();
};
@@ -1219,6 +1225,51 @@ void SdImportTest::testTdf89927()
xDocShRef->DoClose();
}
+void SdImportTest::testTdf93124()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/ppt/tdf93124.ppt"), PPT);
+ uno::Reference < uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
+ uno::Reference< drawing::XGraphicExportFilter > xGraphicExporter = drawing::GraphicExportFilter::create(xContext);
+
+ uno::Sequence< beans::PropertyValue > aFilterData(2);
+ aFilterData[0].Name = "PixelWidth";
+ aFilterData[0].Value <<= (sal_Int32)(320);
+ aFilterData[1].Name = "PixelHeight";
+ aFilterData[1].Value <<= (sal_Int32)(180);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+
+ uno::Sequence< beans::PropertyValue > aDescriptor(3);
+ aDescriptor[0].Name = "URL";
+ aDescriptor[0].Value <<= aTempFile.GetURL();
+ aDescriptor[1].Name = "FilterName";
+ aDescriptor[1].Value <<= OUString("PNG");
+ aDescriptor[2].Name = "FilterData";
+ aDescriptor[2].Value <<= aFilterData;
+
+ uno::Reference< lang::XComponent > xPage(getPage(0, xDocShRef), uno::UNO_QUERY);
+ xGraphicExporter->setSourceDocument(xPage);
+ xGraphicExporter->filter(aDescriptor);
+
+ SvFileStream aFileStream(aTempFile.GetURL(), StreamMode::READ);
+ vcl::PNGReader aPNGReader(aFileStream);
+ BitmapEx aBMPEx = aPNGReader.Read();
+ Bitmap aBMP = aBMPEx.GetBitmap();
+ BitmapReadAccess* pRead = aBMP.AcquireReadAccess();
+ int nNonWhiteCount = 0;
+ // The word "Top" should be in rectangle 34,4 - 76,30. If text alignment is wrong, the rectangle will be white.
+ for (long nX = 34; nX < (34 + 43); ++nX)
+ for (long nY = 4; nY < (4 + 26); ++nY)
+ {
+ const Color aColor = pRead->GetColor(nY, nX);
+ if ((aColor.GetRed() != 0xff) || (aColor.GetGreen() != 0xff) || (aColor.GetBlue() != 0xff))
+ ++nNonWhiteCount;
+ }
+ CPPUNIT_ASSERT_MESSAGE("Tdf93124: vertical alignment of text is incorrect!", nNonWhiteCount>100);
+ xDocShRef->DoClose();
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
CPPUNIT_PLUGIN_IMPLEMENT();