Home | History | Annotate | Download | only in qscriptvalue
      1 /*
      2     Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
      3 
      4     This library is free software; you can redistribute it and/or
      5     modify it under the terms of the GNU Library General Public
      6     License as published by the Free Software Foundation; either
      7     version 2 of the License, or (at your option) any later version.
      8 
      9     This library is distributed in the hope that it will be useful,
     10     but WITHOUT ANY WARRANTY; without even the implied warranty of
     11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12     Library General Public License for more details.
     13 
     14     You should have received a copy of the GNU Library General Public License
     15     along with this library; see the file COPYING.LIB.  If not, write to
     16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17     Boston, MA 02110-1301, USA.
     18 */
     19 
     20 #ifndef tst_qscriptvalue_h
     21 #define tst_qscriptvalue_h
     22 
     23 #include "qscriptengine.h"
     24 #include "qscriptvalue.h"
     25 #include <QtCore/qnumeric.h>
     26 #include <QtTest/qtest.h>
     27 
     28 Q_DECLARE_METATYPE(QScriptValue*);
     29 Q_DECLARE_METATYPE(QScriptValue);
     30 
     31 class tst_QScriptValue : public QObject {
     32     Q_OBJECT
     33 
     34 public:
     35     tst_QScriptValue();
     36     virtual ~tst_QScriptValue();
     37 
     38 private slots:
     39     void toString_data();
     40     void toString();
     41     void copyConstructor_data();
     42     void copyConstructor();
     43     void assignOperator_data();
     44     void assignOperator();
     45     void dataSharing();
     46     void constructors_data();
     47     void constructors();
     48     void call();
     49     void ctor();
     50 
     51     // Generated test functions.
     52     void isBool_data();
     53     void isBool();
     54 
     55     void isBoolean_data();
     56     void isBoolean();
     57 
     58     void isNumber_data();
     59     void isNumber();
     60 
     61     void isFunction_data();
     62     void isFunction();
     63 
     64     void isNull_data();
     65     void isNull();
     66 
     67     void isObject_data();
     68     void isObject();
     69 
     70     void isString_data();
     71     void isString();
     72 
     73     void isUndefined_data();
     74     void isUndefined();
     75 
     76     void isValid_data();
     77     void isValid();
     78 
     79     void toNumber_data();
     80     void toNumber();
     81 
     82     void toBool_data();
     83     void toBool();
     84 
     85     void toBoolean_data();
     86     void toBoolean();
     87 
     88 private:
     89     typedef void (tst_QScriptValue::*InitDataFunction)();
     90     typedef void (tst_QScriptValue::*DefineDataFunction)(const char*);
     91     void dataHelper(InitDataFunction init, DefineDataFunction define);
     92     QTestData& newRow(const char* tag);
     93 
     94     typedef void (tst_QScriptValue::*TestFunction)(const char*, const QScriptValue&);
     95     void testHelper(TestFunction fun);
     96 
     97     // Generated functions
     98 
     99     void initScriptValues();
    100 
    101     void isBool_initData();
    102     void isBool_makeData(const char* expr);
    103     void isBool_test(const char* expr, const QScriptValue& value);
    104 
    105     void isBoolean_initData();
    106     void isBoolean_makeData(const char* expr);
    107     void isBoolean_test(const char* expr, const QScriptValue& value);
    108 
    109     void isNumber_initData();
    110     void isNumber_makeData(const char* expr);
    111     void isNumber_test(const char* expr, const QScriptValue&);
    112 
    113     void isFunction_initData();
    114     void isFunction_makeData(const char* expr);
    115     void isFunction_test(const char* expr, const QScriptValue& value);
    116 
    117     void isNull_initData();
    118     void isNull_makeData(const char* expr);
    119     void isNull_test(const char* expr, const QScriptValue& value);
    120 
    121     void isObject_initData();
    122     void isObject_makeData(const char* expr);
    123     void isObject_test(const char* expr, const QScriptValue& value);
    124 
    125     void isString_initData();
    126     void isString_makeData(const char* expr);
    127     void isString_test(const char* expr, const QScriptValue& value);
    128 
    129     void isUndefined_initData();
    130     void isUndefined_makeData(const char* expr);
    131     void isUndefined_test(const char* expr, const QScriptValue& value);
    132 
    133     void isValid_initData();
    134     void isValid_makeData(const char* expr);
    135     void isValid_test(const char* expr, const QScriptValue& value);
    136 
    137     void toNumber_initData();
    138     void toNumber_makeData(const char*);
    139     void toNumber_test(const char*, const QScriptValue&);
    140 
    141     void toBool_initData();
    142     void toBool_makeData(const char*);
    143     void toBool_test(const char*, const QScriptValue&);
    144 
    145     void toBoolean_initData();
    146     void toBoolean_makeData(const char*);
    147     void toBoolean_test(const char*, const QScriptValue&);
    148 
    149 private:
    150     QScriptEngine* engine;
    151     QHash<QString, QScriptValue> m_values;
    152     QString m_currentExpression;
    153 };
    154 
    155 #define DEFINE_TEST_FUNCTION(name) \
    156 void tst_QScriptValue::name##_data() { dataHelper(&tst_QScriptValue::name##_initData, &tst_QScriptValue::name##_makeData); } \
    157 void tst_QScriptValue::name() { testHelper(&tst_QScriptValue::name##_test); }
    158 
    159 
    160 
    161 #endif // tst_qscriptvalue_h
    162