/* * Copyright 2008 Ben Boeckel * * 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 . */ // Header include #include "TestScript.h" // KDE includes #include // Qt includes #include 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)