[Libreoffice-commits] core.git: vcl/qa

Khaled Hosny khaledhosny at eglug.org
Sun Feb 26 22:19:55 UTC 2017


 vcl/qa/cppunit/complextext.cxx |   25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

New commits:
commit eb7b03b052ffe8c2c577b2349987653db6c53f76
Author: Khaled Hosny <khaledhosny at eglug.org>
Date:   Sun Feb 26 21:52:28 2017 +0200

    Make vcl_complextext test actually test something
    
    Change-Id: If63fc55722a414388dfda8330cd7de00305567d5
    Reviewed-on: https://gerrit.libreoffice.org/34658
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>

diff --git a/vcl/qa/cppunit/complextext.cxx b/vcl/qa/cppunit/complextext.cxx
index a7aa56a..58c1080 100644
--- a/vcl/qa/cppunit/complextext.cxx
+++ b/vcl/qa/cppunit/complextext.cxx
@@ -36,9 +36,6 @@ public:
 
 void VclComplexTextTest::testArabic()
 {
-#if !defined (LINUX)
-    return;
-#else // only tested on Linux so far
     const unsigned char pOneTwoThreeUTF8[] = {
         0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xad, 0xd9, 0x90,
         0xd8, 0xaf, 0xd9, 0x92, 0x20, 0xd8, 0xa5, 0xd8,
@@ -52,14 +49,23 @@ void VclComplexTextTest::testArabic()
     ScopedVclPtrInstance<WorkWindow> pWin(static_cast<vcl::Window *>(nullptr));
     CPPUNIT_ASSERT( pWin );
 
-    OutputDevice *pOutDev = pWin.get();
+    vcl::Font aFont("DejaVu Sans", "Book", Size(0, 12));
 
-    vcl::Font aFont = OutputDevice::GetDefaultFont(
-                        DefaultFontType::CTL_SPREADSHEET,
-                        LANGUAGE_ARABIC_SAUDI_ARABIA,
-                        GetDefaultFontFlags::OnlyOne );
+    OutputDevice *pOutDev = pWin.get();
     pOutDev->SetFont( aFont );
 
+    // text advance width and line height
+    CPPUNIT_ASSERT_EQUAL(72L, pOutDev->GetTextWidth(aOneTwoThree));
+    CPPUNIT_ASSERT_EQUAL(13L, pOutDev->GetTextHeight());
+
+    // exact bounding rectangle, not essentially the same as text width/height
+#ifndef MACOSX
+    // FIXME: fails on mac, probably different rounding strategy.
+    Rectangle aBoundRect;
+    pOutDev->GetTextBoundRect(aBoundRect, aOneTwoThree);
+    CPPUNIT_ASSERT_EQUAL(Rectangle(0, 1, 71, 15), aBoundRect);
+#endif
+
     // normal orientation
     Rectangle aInput;
     Rectangle aRect = pOutDev->GetTextRect( aInput, aOneTwoThree );
@@ -72,6 +78,8 @@ void VclComplexTextTest::testArabic()
 
     // Check that we did do the rotation ...
 #if 0
+    // FIXME: This seems to be wisthful thinking, GetTextRect() does not take
+    // rotation into account.
     fprintf( stderr, "%ld %ld %ld %ld\n",
              aRect.GetWidth(), aRect.GetHeight(),
              aRectRot.GetWidth(), aRectRot.GetHeight() );
@@ -80,7 +88,6 @@ void VclComplexTextTest::testArabic()
 #else
     (void)aRect; (void)aRectRot;
 #endif
-#endif
 }
 
 #if defined(_WIN32)


More information about the Libreoffice-commits mailing list