tests/auto/qfontmetrics/tst_qfontmetrics.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -72,6 +72,7 @@
     void veryNarrowElidedText();
     void averageCharWidth();
     void elidedMultiLength();
+    void elidedMultiLengthF();
     void bearingIncludedInBoundingRect();
 };
 
@@ -100,6 +101,20 @@
     QFontMetrics fm(font);
     const QString text = QLatin1String("Some stupid STRING");
     QCOMPARE(fm.size(0, text), fm.size(0, text)) ;
+
+    {
+        QImage image;
+        QFontMetrics fm2(font, &image);
+        QString text2 =  QLatin1String("Foo Foo");
+        QCOMPARE(fm2.size(0, text2), fm2.size(0, text2));  //used to crash
+    }
+
+    {
+        QImage image;
+        QFontMetricsF fm3(font, &image);
+        QString text2 =  QLatin1String("Foo Foo");
+        QCOMPARE(fm3.size(0, text2), fm3.size(0, text2));  //used to crash
+    }
 }
 
 
@@ -204,13 +219,13 @@
     QVERIFY(fmf.averageCharWidth() != 0);
 }
 
-void tst_QFontMetrics::elidedMultiLength()
+template<class FontMetrics> void elidedMultiLength_helper()
 {
     QString text1 = "Long Text 1\x9cShorter\x9csmall";
     QString text1_long = "Long Text 1";
     QString text1_short = "Shorter";
     QString text1_small = "small";
-    QFontMetrics fm = QFontMetrics(QFont());
+    FontMetrics fm = FontMetrics(QFont());
     int width_long = fm.size(0, text1_long).width();
     QCOMPARE(fm.elidedText(text1,Qt::ElideRight, 8000), text1_long);
     QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_long + 1), text1_long);
@@ -224,7 +239,16 @@
     QString text1_el = QString::fromLatin1("s") + ellipsisChar;
     int width_small = fm.width(text1_el);
     QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_small + 1), text1_el);
+}
 
+void tst_QFontMetrics::elidedMultiLength()
+{
+    elidedMultiLength_helper<QFontMetrics>();
+}
+
+void tst_QFontMetrics::elidedMultiLengthF()
+{
+    elidedMultiLength_helper<QFontMetricsF>();
 }
 
 void tst_QFontMetrics::bearingIncludedInBoundingRect()