Commit 2a55cbb2 authored by eric@webkit.org's avatar eric@webkit.org

2010-02-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>

        Reviewed by Simon Hausmann.

        Increase test coverage for the QScriptValue.

        https://bugs.webkit.org/show_bug.cgi?id=34533

        * qt/tests/qscriptvalue/qscriptvalue.pro:
        * qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
        (tst_QScriptValue::tst_QScriptValue):
        (tst_QScriptValue::~tst_QScriptValue):
        (tst_QScriptValue::dataHelper):
        (tst_QScriptValue::newRow):
        (tst_QScriptValue::testHelper):
        (tst_QScriptValue::ctor):
        * qt/tests/qscriptvalue/tst_qscriptvalue.h: Added.
        * qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: Added.
        (tst_QScriptValue::initScriptValues):
        (tst_QScriptValue::isValid_initData):
        (tst_QScriptValue::isValid_makeData):
        (tst_QScriptValue::isValid_test):
        (tst_QScriptValue::isBool_initData):
        (tst_QScriptValue::isBool_makeData):
        (tst_QScriptValue::isBool_test):
        (tst_QScriptValue::isBoolean_initData):
        (tst_QScriptValue::isBoolean_makeData):
        (tst_QScriptValue::isBoolean_test):
        (tst_QScriptValue::isFunction_initData):
        (tst_QScriptValue::isFunction_makeData):
        (tst_QScriptValue::isFunction_test):
        (tst_QScriptValue::isNull_initData):
        (tst_QScriptValue::isNull_makeData):
        (tst_QScriptValue::isNull_test):
        (tst_QScriptValue::isString_initData):
        (tst_QScriptValue::isString_makeData):
        (tst_QScriptValue::isString_test):
        (tst_QScriptValue::isUndefined_initData):
        (tst_QScriptValue::isUndefined_makeData):
        (tst_QScriptValue::isUndefined_test):
        (tst_QScriptValue::isObject_initData):
        (tst_QScriptValue::isObject_makeData):
        (tst_QScriptValue::isObject_test):

git-svn-id: svn://svn.chromium.org/blink/trunk@54340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent d51d95a4
2010-02-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed by Simon Hausmann.
Increase test coverage for the QScriptValue.
https://bugs.webkit.org/show_bug.cgi?id=34533
* qt/tests/qscriptvalue/qscriptvalue.pro:
* qt/tests/qscriptvalue/tst_qscriptvalue.cpp:
(tst_QScriptValue::tst_QScriptValue):
(tst_QScriptValue::~tst_QScriptValue):
(tst_QScriptValue::dataHelper):
(tst_QScriptValue::newRow):
(tst_QScriptValue::testHelper):
(tst_QScriptValue::ctor):
* qt/tests/qscriptvalue/tst_qscriptvalue.h: Added.
* qt/tests/qscriptvalue/tst_qscriptvalue_generated.cpp: Added.
(tst_QScriptValue::initScriptValues):
(tst_QScriptValue::isValid_initData):
(tst_QScriptValue::isValid_makeData):
(tst_QScriptValue::isValid_test):
(tst_QScriptValue::isBool_initData):
(tst_QScriptValue::isBool_makeData):
(tst_QScriptValue::isBool_test):
(tst_QScriptValue::isBoolean_initData):
(tst_QScriptValue::isBoolean_makeData):
(tst_QScriptValue::isBoolean_test):
(tst_QScriptValue::isFunction_initData):
(tst_QScriptValue::isFunction_makeData):
(tst_QScriptValue::isFunction_test):
(tst_QScriptValue::isNull_initData):
(tst_QScriptValue::isNull_makeData):
(tst_QScriptValue::isNull_test):
(tst_QScriptValue::isString_initData):
(tst_QScriptValue::isString_makeData):
(tst_QScriptValue::isString_test):
(tst_QScriptValue::isUndefined_initData):
(tst_QScriptValue::isUndefined_makeData):
(tst_QScriptValue::isUndefined_test):
(tst_QScriptValue::isObject_initData):
(tst_QScriptValue::isObject_makeData):
(tst_QScriptValue::isObject_test):
2010-02-03 Kwang Yul Seo <skyul@company100.net> 2010-02-03 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel. Reviewed by Eric Seidel.
......
...@@ -3,5 +3,9 @@ TARGET = tst_qscriptvalue ...@@ -3,5 +3,9 @@ TARGET = tst_qscriptvalue
QT += testlib QT += testlib
include(../tests.pri) include(../tests.pri)
SOURCES += tst_qscriptvalue.cpp SOURCES += \
tst_qscriptvalue.cpp \
tst_qscriptvalue_generated.cpp
HEADERS += \
tst_qscriptvalue.h
...@@ -17,35 +17,43 @@ ...@@ -17,35 +17,43 @@
Boston, MA 02110-1301, USA. Boston, MA 02110-1301, USA.
*/ */
#include "qscriptengine.h" #include "tst_qscriptvalue.h"
#include "qscriptvalue.h" #include <QtCore/qnumeric.h>
#include <QtTest/qtest.h>
tst_QScriptValue::tst_QScriptValue()
Q_DECLARE_METATYPE(QScriptValue*); : engine(0)
Q_DECLARE_METATYPE(QScriptValue); {
}
class tst_QScriptValue : public QObject {
Q_OBJECT tst_QScriptValue::~tst_QScriptValue()
{
public: delete engine;
tst_QScriptValue() {} }
virtual ~tst_QScriptValue() {}
void tst_QScriptValue::dataHelper(InitDataFunction init, DefineDataFunction define)
private slots: {
void toString_data(); QTest::addColumn<QString>("__expression__");
void toString(); (this->*init)();
void copyConstructor_data(); QHash<QString, QScriptValue>::const_iterator it;
void copyConstructor(); for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
void assignOperator_data(); m_currentExpression = it.key();
void assignOperator(); (this->*define)(it.key().toLatin1());
void dataSharing(); }
void constructors_data(); m_currentExpression = QString();
void constructors(); }
void call();
QTestData& tst_QScriptValue::newRow(const char* tag)
// copied from Qt's QtScript. {
void ctor(); return QTest::newRow(tag) << m_currentExpression;
}; }
void tst_QScriptValue::testHelper(TestFunction fun)
{
QFETCH(QString, __expression__);
QScriptValue value = m_values.value(__expression__);
(this->*fun)(__expression__.toLatin1(), value);
}
void tst_QScriptValue::ctor() void tst_QScriptValue::ctor()
{ {
...@@ -53,7 +61,7 @@ void tst_QScriptValue::ctor() ...@@ -53,7 +61,7 @@ void tst_QScriptValue::ctor()
{ {
QScriptValue v; QScriptValue v;
QCOMPARE(v.isValid(), false); QCOMPARE(v.isValid(), false);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(&eng, QScriptValue::UndefinedValue); QScriptValue v(&eng, QScriptValue::UndefinedValue);
...@@ -168,14 +176,14 @@ void tst_QScriptValue::ctor() ...@@ -168,14 +176,14 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isValid(), true); QCOMPARE(v.isValid(), true);
QCOMPARE(v.isUndefined(), true); QCOMPARE(v.isUndefined(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(QScriptValue::NullValue); QScriptValue v(QScriptValue::NullValue);
QCOMPARE(v.isValid(), true); QCOMPARE(v.isValid(), true);
QCOMPARE(v.isNull(), true); QCOMPARE(v.isNull(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(false); QScriptValue v(false);
...@@ -184,7 +192,7 @@ void tst_QScriptValue::ctor() ...@@ -184,7 +192,7 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isBool(), true); QCOMPARE(v.isBool(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toBoolean(), false); QCOMPARE(v.toBoolean(), false);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(int(1)); QScriptValue v(int(1));
...@@ -192,7 +200,7 @@ void tst_QScriptValue::ctor() ...@@ -192,7 +200,7 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isNumber(), true); QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0); QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(uint(1)); QScriptValue v(uint(1));
...@@ -200,7 +208,7 @@ void tst_QScriptValue::ctor() ...@@ -200,7 +208,7 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isNumber(), true); QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0); QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(1.0); QScriptValue v(1.0);
...@@ -208,7 +216,7 @@ void tst_QScriptValue::ctor() ...@@ -208,7 +216,7 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isNumber(), true); QCOMPARE(v.isNumber(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toNumber(), 1.0); QCOMPARE(v.toNumber(), 1.0);
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v("ciao"); QScriptValue v("ciao");
...@@ -216,7 +224,7 @@ void tst_QScriptValue::ctor() ...@@ -216,7 +224,7 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isString(), true); QCOMPARE(v.isString(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toString(), QLatin1String("ciao")); QCOMPARE(v.toString(), QLatin1String("ciao"));
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
{ {
QScriptValue v(QString("ciao")); QScriptValue v(QString("ciao"));
...@@ -224,19 +232,19 @@ void tst_QScriptValue::ctor() ...@@ -224,19 +232,19 @@ void tst_QScriptValue::ctor()
QCOMPARE(v.isString(), true); QCOMPARE(v.isString(), true);
QCOMPARE(v.isObject(), false); QCOMPARE(v.isObject(), false);
QCOMPARE(v.toString(), QLatin1String("ciao")); QCOMPARE(v.toString(), QLatin1String("ciao"));
QCOMPARE(v.engine(), (QScriptEngine *)0); QCOMPARE(v.engine(), (QScriptEngine*)0);
} }
// copy constructor, operator= // copy constructor, operator=
{ {
QScriptValue v(1.0); QScriptValue v(1.0);
QScriptValue v2(v); QScriptValue v2(v);
QCOMPARE(v2.strictlyEquals(v), true); QCOMPARE(v2.strictlyEquals(v), true);
QCOMPARE(v2.engine(), (QScriptEngine *)0); QCOMPARE(v2.engine(), (QScriptEngine*)0);
QScriptValue v3(v); QScriptValue v3(v);
QCOMPARE(v3.strictlyEquals(v), true); QCOMPARE(v3.strictlyEquals(v), true);
QCOMPARE(v3.strictlyEquals(v2), true); QCOMPARE(v3.strictlyEquals(v2), true);
QCOMPARE(v3.engine(), (QScriptEngine *)0); QCOMPARE(v3.engine(), (QScriptEngine*)0);
QScriptValue v4(2.0); QScriptValue v4(2.0);
QCOMPARE(v4.strictlyEquals(v), false); QCOMPARE(v4.strictlyEquals(v), false);
...@@ -423,5 +431,5 @@ void tst_QScriptValue::call() ...@@ -423,5 +431,5 @@ void tst_QScriptValue::call()
QVERIFY(incr.call().isValid()); // Exception. QVERIFY(incr.call().isValid()); // Exception.
} }
QTEST_MAIN(tst_QScriptValue) QTEST_MAIN(tst_QScriptValue)
#include "tst_qscriptvalue.moc"
/*
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef tst_qscriptvalue_h
#define tst_qscriptvalue_h
#include "qscriptengine.h"
#include "qscriptvalue.h"
#include <QtCore/qnumeric.h>
#include <QtTest/qtest.h>
Q_DECLARE_METATYPE(QScriptValue*);
Q_DECLARE_METATYPE(QScriptValue);
class tst_QScriptValue : public QObject {
Q_OBJECT
public:
tst_QScriptValue();
virtual ~tst_QScriptValue();
private slots:
void toString_data();
void toString();
void copyConstructor_data();
void copyConstructor();
void assignOperator_data();
void assignOperator();
void dataSharing();
void constructors_data();
void constructors();
void call();
void ctor();
// Generated test functions.
void isBool_data();
void isBool();
void isBoolean_data();
void isBoolean();
void isFunction_data();
void isFunction();
void isNull_data();
void isNull();
void isObject_data();
void isObject();
void isString_data();
void isString();
void isUndefined_data();
void isUndefined();
void isValid_data();
void isValid();
private:
typedef void (tst_QScriptValue::*InitDataFunction)();
typedef void (tst_QScriptValue::*DefineDataFunction)(const char*);
void dataHelper(InitDataFunction init, DefineDataFunction define);
QTestData& newRow(const char* tag);
typedef void (tst_QScriptValue::*TestFunction)(const char*, const QScriptValue&);
void testHelper(TestFunction fun);
// Generated functions
void initScriptValues();
void isBool_initData();
void isBool_makeData(const char* expr);
void isBool_test(const char* expr, const QScriptValue& value);
void isBoolean_initData();
void isBoolean_makeData(const char* expr);
void isBoolean_test(const char* expr, const QScriptValue& value);
void isFunction_initData();
void isFunction_makeData(const char* expr);
void isFunction_test(const char* expr, const QScriptValue& value);
void isNull_initData();
void isNull_makeData(const char* expr);
void isNull_test(const char* expr, const QScriptValue& value);
void isObject_initData();
void isObject_makeData(const char* expr);
void isObject_test(const char* expr, const QScriptValue& value);
void isString_initData();
void isString_makeData(const char* expr);
void isString_test(const char* expr, const QScriptValue& value);
void isUndefined_initData();
void isUndefined_makeData(const char* expr);
void isUndefined_test(const char* expr, const QScriptValue& value);
void isValid_initData();
void isValid_makeData(const char* expr);
void isValid_test(const char* expr, const QScriptValue& value);
private:
QScriptEngine* engine;
QHash<QString, QScriptValue> m_values;
QString m_currentExpression;
};
#define DEFINE_TEST_FUNCTION(name) \
void tst_QScriptValue::name##_data() { dataHelper(&tst_QScriptValue::name##_initData, &tst_QScriptValue::name##_makeData); } \
void tst_QScriptValue::name() { testHelper(&tst_QScriptValue::name##_test); }
#endif // tst_qscriptvalue_h
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment