diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp index 0637297..7bfac62 100644 --- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp +++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp @@ -103,6 +103,7 @@ private slots: void syntaxError(); void extension_invoctaion(); void extension(); + void isEvaluatingInExtension(); private: double m_testProperty; @@ -2126,5 +2127,28 @@ void tst_QScriptEngineAgent::extension() delete spy; } +class TestIsEvaluatingAgent : public QScriptEngineAgent +{ +public: + TestIsEvaluatingAgent(QScriptEngine *engine) + : QScriptEngineAgent(engine), wasEvaluating(false) + { engine->setAgent(this); } + bool supportsExtension(Extension ext) const + { return ext == DebuggerInvocationRequest; } + QVariant extension(Extension, const QVariant &) + { wasEvaluating = engine()->isEvaluating(); return QVariant(); } + + bool wasEvaluating; +}; + +void tst_QScriptEngineAgent::isEvaluatingInExtension() +{ + QScriptEngine eng; + TestIsEvaluatingAgent *spy = new TestIsEvaluatingAgent(&eng); + QVERIFY(!spy->wasEvaluating); + eng.evaluate("debugger"); + QVERIFY(spy->wasEvaluating); +} + QTEST_MAIN(tst_QScriptEngineAgent) #include "tst_qscriptengineagent.moc" |