From d0825bca7fe65beaee391d30da42e937db621564 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Tue, 2 Feb 2010 14:57:50 +0000 Subject: Merge webkit.org at r54127 : Initial merge by git Change-Id: Ib661abb595522f50ea406f72d3a0ce17f7193c82 --- .../qt/tests/qscriptengine/tst_qscriptengine.cpp | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp (limited to 'JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp') diff --git a/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp b/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp new file mode 100644 index 0000000..37f3d11 --- /dev/null +++ b/JavaScriptCore/qt/tests/qscriptengine/tst_qscriptengine.cpp @@ -0,0 +1,58 @@ +/* + Copyright (C) 2009 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. +*/ + +#include "qscriptengine.h" +#include "qscriptvalue.h" +#include + +class tst_QScriptEngine : public QObject { + Q_OBJECT + +public: + tst_QScriptEngine() {} + virtual ~tst_QScriptEngine() {} + +public slots: + void init() {} + void cleanup() {} + +private slots: + void evaluate(); + void collectGarbage(); +}; + +/* Evaluating a script that throw an unhandled exception should return an invalid value. */ +void tst_QScriptEngine::evaluate() +{ + QScriptEngine engine; + QVERIFY2(engine.evaluate("1+1").isValid(), "the expression should be evaluated and an valid result should be returned"); + QVERIFY2(engine.evaluate("ping").isValid(), "Script throwing an unhandled exception should return an exception value"); +} + +/* Test garbage collection, at least try to not crash. */ +void tst_QScriptEngine::collectGarbage() +{ + QScriptEngine engine; + QScriptValue foo = engine.evaluate("( function foo() {return 'pong';} )"); + QVERIFY(foo.isFunction()); + engine.collectGarbage(); + QCOMPARE(foo.call().toString(), QString::fromAscii("pong")); +} +QTEST_MAIN(tst_QScriptEngine) +#include "tst_qscriptengine.moc" -- cgit v1.1