[Qt] Fix QObject bridge tests in Qt5 after (not so) recent QVariant changes
authorcaio.oliveira@openbossa.org <caio.oliveira@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Jun 2012 20:22:27 +0000 (20:22 +0000)
committercaio.oliveira@openbossa.org <caio.oliveira@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Jun 2012 20:22:27 +0000 (20:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=88127

Reviewed by Noam Rosenthal.

We were checking for invalid QVariants in a very odd way. Since in Qt5 the
userType of invalid changed to not be Void, this broke the tests for QtWebKit
with Qt5. Replace those checks with QVariant::isValid() calls.

* tests/qobjectbridge/tst_qobjectbridge.cpp:
(tst_QObjectBridge::evalJS):
(tst_QObjectBridge::evalJSV):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119275 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/qt/ChangeLog
Source/WebKit/qt/tests/qobjectbridge/tst_qobjectbridge.cpp

index 7fef898..34605c7 100644 (file)
@@ -1,5 +1,20 @@
 2012-06-01  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
 
+        [Qt] Fix QObject bridge tests in Qt5 after (not so) recent QVariant changes
+        https://bugs.webkit.org/show_bug.cgi?id=88127
+
+        Reviewed by Noam Rosenthal.
+
+        We were checking for invalid QVariants in a very odd way. Since in Qt5 the
+        userType of invalid changed to not be Void, this broke the tests for QtWebKit
+        with Qt5. Replace those checks with QVariant::isValid() calls.
+
+        * tests/qobjectbridge/tst_qobjectbridge.cpp:
+        (tst_QObjectBridge::evalJS):
+        (tst_QObjectBridge::evalJSV):
+
+2012-06-01  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
+
         [Qt] Move QObject bridge related tests from tst_qwebframe to tst_qobjectbridge
         https://bugs.webkit.org/show_bug.cgi?id=88117
 
index 32e8233..572eb41 100644 (file)
@@ -656,9 +656,8 @@ private slots:
 private:
     QString evalJS(const QString& s)
     {
-        // Convert an undefined return variant to the string "undefined"
         QVariant ret = evalJSV(s);
-        if (ret.userType() == QMetaType::Void)
+        if (!ret.isValid())
             return "undefined";
         return ret.toString();
     }
@@ -678,7 +677,6 @@ private:
         // As a special measure, if we get an exception we set the type to 'error'
         // (in ecma, an Error object has typeof object, but qtscript has a convenience function)
         // Similarly, an array is an object, but we'd prefer to have a type of 'array'
-        // Also, consider a QMetaType::Void QVariant to be undefined
         QString escaped = s;
         escaped.replace('\'', "\\'"); // Don't preescape your single quotes!
         QString code("var retvalue; "
@@ -695,7 +693,7 @@ private:
         evalJS(code.arg(escaped));
 
         QVariant ret = evalJSV("retvalue");
-        if (ret.userType() != QMetaType::Void)
+        if (ret.isValid())
             type = evalJS("typevalue");
         else {
             ret = QString("undefined");