diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-12-23 16:54:34 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-12-23 16:54:34 -0500 |
| commit | 73808809ef8a3e2448081b73a70d91cebecfffc6 (patch) | |
| tree | 26d511775460f39c6ae835eca200844d8d0166d6 /sigcore/test/TestScript.cpp | |
| parent | c2462fdb8a60517beb67a89b55e078a2cbea30c4 (diff) | |
| download | sigen-73808809ef8a3e2448081b73a70d91cebecfffc6.tar.gz sigen-73808809ef8a3e2448081b73a70d91cebecfffc6.tar.xz sigen-73808809ef8a3e2448081b73a70d91cebecfffc6.zip | |
Adding Script tests and made the CMake file link only necessary things
Diffstat (limited to 'sigcore/test/TestScript.cpp')
| -rw-r--r-- | sigcore/test/TestScript.cpp | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/sigcore/test/TestScript.cpp b/sigcore/test/TestScript.cpp new file mode 100644 index 00000000..ccb340c5 --- /dev/null +++ b/sigcore/test/TestScript.cpp @@ -0,0 +1,128 @@ +/* + * Copyright 2008 Ben Boeckel <MathStuf@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +// Header include +#include "TestScript.h" + +// KDE includes +#include <kross/core/action.h> + +// Qt includes +#include <QtTest/QTest> + +QString TestScript::value() const +{ + return m_value; +} + +void TestScript::setValue(const QString& value) +{ + m_value = value; +} + +void TestScript::slot1() +{ + m_foo = true; +} + +void TestScript::slot2() +{ + m_bar = true; +} + +void TestScript::initTestCase() +{ + m_foo = false; + m_bar = false; +} + +void TestScript::setInterpreter() +{ + Sigcore::Script script; + + QCOMPARE(script.interpreter(), QString("")); + + script.setInterpreter("python"); + + QCOMPARE(script.interpreter(), QString("python")); +} + +void TestScript::setScript() +{ + Sigcore::Script script; + + QCOMPARE(script.script(), QString("")); + + script.setScript("import os"); + + QCOMPARE(script.script(), QString("import os")); +} + +void TestScript::assignment() +{ + Sigcore::Script script1; + Sigcore::Script script2("python", "import os"); + + QCOMPARE(script1.interpreter(), QString("")); + QCOMPARE(script1.script(), QString("")); + + script1 = script2; + + QCOMPARE(script1.interpreter(), QString("python")); + QCOMPARE(script1.script(), QString("import os")); +} + +void TestScript::equality() +{ + Sigcore::Script script1; + Sigcore::Script script2("python", "import os"); + + QVERIFY(script1 != script2); + + script1 = script2; + + QVERIFY(script1 == script2); +} + +void TestScript::running() +{ + Sigcore::Script script("python", "import object\n\ +\n\ +object.value = \"set\"\n\ +def slot():\n\ + object.slot1()\n\ +object.connect(\"signal1()\", slot)\n\ +object.connect(\"signal2()\", \"slot2()\")\n\ +"); + + Kross::Action* action = new Kross::Action(this, "test-script"); + action->setInterpreter(script.interpreter()); + action->setCode(script.script().toUtf8()); + + action->addObject(this, "object"); + + action->trigger(); + + emit(signal1()); + emit(signal2()); + + QCOMPARE(m_foo, true); + QCOMPARE(m_bar, true); + QCOMPARE(m_value, QString("set")); +} + +QTEST_MAIN(TestScript) |
