diff options
author | Kristian Monsen <kristianm@google.com> | 2010-05-21 16:53:46 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2010-05-25 10:24:15 +0100 |
commit | 6c2af9490927c3c5959b5cb07461b646f8b32f6c (patch) | |
tree | f7111b9b22befab472616c1d50ec94eb50f1ec8c /JavaScriptCore/qt/tests | |
parent | a149172322a9067c14e8b474a53e63649aa17cad (diff) | |
download | external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.zip external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.gz external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.bz2 |
Merge WebKit at r59636: Initial merge by git
Change-Id: I59b289c4e6b18425f06ce41cc9d34c522515de91
Diffstat (limited to 'JavaScriptCore/qt/tests')
3 files changed, 202 insertions, 0 deletions
diff --git a/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp b/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp index 1ec9ad3..38243d2 100644 --- a/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp +++ b/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp @@ -44,6 +44,8 @@ private slots: void evaluateProgram(); void checkSyntax_data(); void checkSyntax(); + void toObject(); + void toObjectTwoEngines(); }; /* Evaluating a script that throw an unhandled exception should return an invalid value. */ @@ -303,6 +305,97 @@ void tst_QScriptEngine::checkSyntax() QCOMPARE(result.errorMessage(), errorMessage); } +void tst_QScriptEngine::toObject() +{ + QScriptEngine eng; + QVERIFY(!eng.toObject(eng.undefinedValue()).isValid()); + QVERIFY(!eng.toObject(eng.nullValue()).isValid()); + QVERIFY(!eng.toObject(QScriptValue()).isValid()); + + QScriptValue falskt(false); + { + QScriptValue tmp = eng.toObject(falskt); + QVERIFY(tmp.isObject()); + QVERIFY(!falskt.isObject()); + QVERIFY(!falskt.engine()); + QCOMPARE(tmp.toNumber(), falskt.toNumber()); + } + + QScriptValue sant(true); + { + QScriptValue tmp = eng.toObject(sant); + QVERIFY(tmp.isObject()); + QVERIFY(!sant.isObject()); + QVERIFY(!sant.engine()); + QCOMPARE(tmp.toNumber(), sant.toNumber()); + } + + QScriptValue number(123.0); + { + QScriptValue tmp = eng.toObject(number); + QVERIFY(tmp.isObject()); + QVERIFY(!number.isObject()); + QVERIFY(!number.engine()); + QCOMPARE(tmp.toNumber(), number.toNumber()); + } + + QScriptValue str = QScriptValue(&eng, QString("ciao")); + { + QScriptValue tmp = eng.toObject(str); + QVERIFY(tmp.isObject()); + QVERIFY(!str.isObject()); + QCOMPARE(tmp.toString(), str.toString()); + } + + QScriptValue object = eng.evaluate("new Object"); + { + QScriptValue tmp = eng.toObject(object); + QVERIFY(tmp.isObject()); + QVERIFY(object.isObject()); + QVERIFY(tmp.strictlyEquals(object)); + } +} + +void tst_QScriptEngine::toObjectTwoEngines() +{ + QScriptEngine engine1; + QScriptEngine engine2; + + { + QScriptValue null = engine1.nullValue(); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(!engine2.toObject(null).isValid()); + QVERIFY(null.isValid()); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(engine2.toObject(null).engine() != &engine2); + } + { + QScriptValue undefined = engine1.undefinedValue(); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(!engine2.toObject(undefined).isValid()); + QVERIFY(undefined.isValid()); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(engine2.toObject(undefined).engine() != &engine2); + } + { + QScriptValue value = engine1.evaluate("1"); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(engine2.toObject(value).engine() != &engine2); + QVERIFY(!value.isObject()); + } + { + QScriptValue string = engine1.evaluate("'Qt'"); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(engine2.toObject(string).engine() != &engine2); + QVERIFY(!string.isObject()); + } + { + QScriptValue object = engine1.evaluate("new Object"); + QTest::ignoreMessage(QtWarningMsg, "QScriptEngine::toObject: cannot convert value created in a different engine"); + QVERIFY(engine2.toObject(object).engine() != &engine2); + QVERIFY(object.isObject()); + } +} QTEST_MAIN(tst_QScriptEngine) #include "tst_qscriptengine.moc" diff --git a/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp b/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp index 82f0901..90730c3 100644 --- a/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp +++ b/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.cpp @@ -431,5 +431,113 @@ void tst_QScriptValue::call() QVERIFY(incr.call().isValid()); // Exception. } +void tst_QScriptValue::toObjectSimple() +{ + QScriptEngine eng; + + QScriptValue undefined = eng.undefinedValue(); + QCOMPARE(undefined.toObject().isValid(), false); + QScriptValue null = eng.nullValue(); + QCOMPARE(null.toObject().isValid(), false); + QCOMPARE(QScriptValue().toObject().isValid(), false); + + QScriptValue falskt = QScriptValue(&eng, false); + { + QScriptValue tmp = falskt.toObject(); + QCOMPARE(tmp.isObject(), true); + QCOMPARE(falskt.isObject(), false); + QCOMPARE(tmp.toNumber(), falskt.toNumber()); + } + + QScriptValue sant = QScriptValue(&eng, true); + { + QScriptValue tmp = sant.toObject(); + QCOMPARE(tmp.isObject(), true); + QCOMPARE(sant.isObject(), false); + QCOMPARE(tmp.toNumber(), sant.toNumber()); + } + + QScriptValue number = QScriptValue(&eng, 123.0); + { + QScriptValue tmp = number.toObject(); + QCOMPARE(tmp.isObject(), true); + QCOMPARE(number.isObject(), false); + QCOMPARE(tmp.toNumber(), number.toNumber()); + } + + QScriptValue str = QScriptValue(&eng, QString("ciao")); + { + QScriptValue tmp = str.toObject(); + QCOMPARE(tmp.isObject(), true); + QCOMPARE(str.isObject(), false); + QCOMPARE(tmp.toString(), str.toString()); + } + + + QScriptValue object = eng.evaluate("new Object"); + { + QScriptValue tmp = object.toObject(); + QVERIFY(tmp.strictlyEquals(object)); + QCOMPARE(tmp.isObject(), true); + } + + + // V2 constructors: in this case, you have to use QScriptEngine::toObject() + { + QScriptValue undefined = QScriptValue(QScriptValue::UndefinedValue); + QVERIFY(!undefined.toObject().isValid()); + QVERIFY(!eng.toObject(undefined).isValid()); + QVERIFY(!undefined.engine()); + + QScriptValue null = QScriptValue(QScriptValue::NullValue); + QVERIFY(!null.toObject().isValid()); + QVERIFY(!eng.toObject(null).isValid()); + QVERIFY(!null.engine()); + + QScriptValue falskt = QScriptValue(false); + QVERIFY(!falskt.toObject().isValid()); + QCOMPARE(falskt.isObject(), false); + QVERIFY(!falskt.engine()); + { + QScriptValue tmp = eng.toObject(falskt); + QVERIFY(tmp.isObject()); + QVERIFY(tmp.toBool()); + QVERIFY(!falskt.isObject()); + } + + QScriptValue sant = QScriptValue(true); + QVERIFY(!sant.toObject().isValid()); + QCOMPARE(sant.isObject(), false); + QVERIFY(!sant.engine()); + { + QScriptValue tmp = eng.toObject(sant); + QVERIFY(tmp.isObject()); + QVERIFY(tmp.toBool()); + QVERIFY(!sant.isObject()); + } + + QScriptValue number = QScriptValue(123.0); + QVERIFY(!number.toObject().isValid()); + QVERIFY(!number.engine()); + QCOMPARE(number.isObject(), false); + { + QScriptValue tmp = eng.toObject(number); + QVERIFY(tmp.isObject()); + QCOMPARE(tmp.toInt32(), number.toInt32()); + QVERIFY(!number.isObject()); + } + + QScriptValue str = QScriptValue(QString::fromLatin1("ciao")); + QVERIFY(!str.toObject().isValid()); + QVERIFY(!str.engine()); + QCOMPARE(str.isObject(), false); + { + QScriptValue tmp = eng.toObject(str); + QVERIFY(tmp.isObject()); + QCOMPARE(tmp.toString(), QString::fromLatin1("ciao")); + QVERIFY(!str.isObject()); + } + } +} QTEST_MAIN(tst_QScriptValue) diff --git a/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h b/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h index 28154a9..27d5f99 100644 --- a/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h +++ b/JavaScriptCore/qt/tests/qscriptvalue/tst_qscriptvalue.h @@ -47,6 +47,7 @@ private slots: void constructors(); void call(); void ctor(); + void toObjectSimple(); // Generated test functions. void isBool_data(); |