From a39fd37fd2209a99f39ff0ac65fff568d21edd76 Mon Sep 17 00:00:00 2001 From: Kurt Hindenburg Date: Sun, 17 Jan 2010 00:21:55 +0000 Subject: [PATCH] Add tests for MonitorActivity/Silence and Codec svn path=/trunk/KDE/kdebase/apps/konsole/; revision=1075912 --- src/tests/DBusTest.cpp | 73 +++++++++++++++++++++++++++++++++++++++--- src/tests/DBusTest.h | 1 + 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/src/tests/DBusTest.cpp b/src/tests/DBusTest.cpp index d72541ad..6b8b331f 100644 --- a/src/tests/DBusTest.cpp +++ b/src/tests/DBusTest.cpp @@ -20,9 +20,6 @@ // Own #include "DBusTest.h" -// KDE -//#include - using namespace Konsole; /* Exec a new Konsole and grab its dbus */ @@ -94,6 +91,9 @@ void DBusTest::cleanupTestCase() QVERIFY(_iface); QVERIFY(_iface->isValid()); + // Need to take care of when user has CloseAllTabs=False otherwise + // they will get a popup dialog when we try to close this. + QDBusInterface iface(_interfaceName, QLatin1String("/konsole/MainWindow_1"), QLatin1String("com.trolltech.Qt.QWidget")); @@ -102,17 +102,80 @@ void DBusTest::cleanupTestCase() QDBusReply instanceReply = iface.call("close"); if (!instanceReply.isValid()) - kFatal() << "Unable to close MainWindow_2 :" << instanceReply.error(); + kFatal() << "Unable to close Konsole :" << instanceReply.error(); } void DBusTest::testSessions() { + QDBusReply voidReply; + QDBusReply boolReply; + QDBusReply arrayReply; + QVERIFY(_iface); QVERIFY(_iface->isValid()); + + QDBusInterface iface(_interfaceName, + QLatin1String("/Sessions/1"), + QLatin1String("org.kde.konsole.Session")); + QVERIFY(iface.isValid()); + + //****************** Test is/set MonitorActivity + boolReply = iface.call("isMonitorActivity"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), false); + + voidReply = iface.call("setMonitorActivity", true); + + boolReply = iface.call("isMonitorActivity"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), true); + + voidReply = iface.call("setMonitorActivity", false); + + boolReply = iface.call("isMonitorActivity"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), false); + + //****************** Test is/set MonitorSilence + boolReply = iface.call("isMonitorSilence"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), false); + + voidReply = iface.call("setMonitorSilence", true); + + boolReply = iface.call("isMonitorSilence"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), true); + + voidReply = iface.call("setMonitorSilence", false); + + boolReply = iface.call("isMonitorSilence"); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), false); + + //****************** Test codec and setCodec + arrayReply = iface.call("codec"); + QVERIFY(arrayReply.isValid()); + + // Obtain a list of system's Codecs + QList availableCodecs = QTextCodec::availableCodecs(); + for (int i = 0; i < availableCodecs.count(); ++i) { + boolReply = iface.call("setCodec", availableCodecs[i]); + QVERIFY(boolReply.isValid()); + QCOMPARE(boolReply.value(), true); + + arrayReply = iface.call("codec"); + QVERIFY(arrayReply.isValid()); + // Compare result with name due to aliases issue + // Better way to do this? + QCOMPARE((QTextCodec::codecForName(arrayReply.value()))->name(), + (QTextCodec::codecForName(availableCodecs[i]))->name()); + } + + } QTEST_MAIN(DBusTest) #include "DBusTest.moc" - diff --git a/src/tests/DBusTest.h b/src/tests/DBusTest.h index 18553a1c..7a2db899 100644 --- a/src/tests/DBusTest.h +++ b/src/tests/DBusTest.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include