summaryrefslogtreecommitdiffstats
path: root/sigcore/test/TestScript.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-12-23 16:54:34 -0500
committerBen Boeckel <MathStuf@gmail.com>2008-12-23 16:54:34 -0500
commit73808809ef8a3e2448081b73a70d91cebecfffc6 (patch)
tree26d511775460f39c6ae835eca200844d8d0166d6 /sigcore/test/TestScript.cpp
parentc2462fdb8a60517beb67a89b55e078a2cbea30c4 (diff)
downloadsigen-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.cpp128
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)