diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index fddd8ba3..d374c19f 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -18,6 +18,9 @@ target_link_libraries(PartTest ${KDE4_KPARTS_LIBS} ${KDE4_KPTY_LIBS} ${KONSOLE_TEST_LIBS}) +kde4_add_unit_test(SessionTest SessionTest.cpp) +target_link_libraries(SessionTest ${KONSOLE_TEST_LIBS}) + kde4_add_unit_test(TerminalTest TerminalTest.cpp) target_link_libraries(TerminalTest ${KONSOLE_TEST_LIBS}) diff --git a/src/tests/SessionTest.cpp b/src/tests/SessionTest.cpp new file mode 100644 index 00000000..c0ac377d --- /dev/null +++ b/src/tests/SessionTest.cpp @@ -0,0 +1,75 @@ +/* + Copyright 2013 by Kurt Hindenburg + + 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 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. +*/ + +// Own +#include "SessionTest.h" + +#include "qtest_kde.h" + +// Konsole +#include "../Session.h" +#include "../Emulation.h" +#include "../History.h" + +using namespace Konsole; + +void SessionTest::testNoProfile() +{ + Session* session = new Session(); + + // No profile loaded, nothing to run + QCOMPARE(session->isRunning(), false); + QCOMPARE(session->sessionId(), 1); + QCOMPARE(session->isRemote(), false); + QCOMPARE(session->program(), QString("")); + QCOMPARE(session->arguments(), QStringList()); + QCOMPARE(session->tabTitleFormat(Session::LocalTabTitle), QString("")); + QCOMPARE(session->tabTitleFormat(Session::RemoteTabTitle), QString("")); + + delete session; +} + +void SessionTest::testEmulation() +{ + Session* session = new Session(); + + Emulation* emulation = session->emulation(); + + QCOMPARE(emulation->lineCount(), 40); + + delete session; +} + +void SessionTest::testEmulationHistory() +{ + Session* session = new Session(); + + Emulation* emulation = session->emulation(); + + const HistoryType& historyType = emulation->history(); + QCOMPARE(historyType.isEnabled(), false); + QCOMPARE(historyType.isUnlimited(), false); + + delete session; +} + +QTEST_KDEMAIN(SessionTest , GUI) + +#include "SessionTest.moc" + diff --git a/src/tests/SessionTest.h b/src/tests/SessionTest.h new file mode 100644 index 00000000..e8f90973 --- /dev/null +++ b/src/tests/SessionTest.h @@ -0,0 +1,43 @@ +/* + Copyright 2013 by Kurt Hindenburg + + 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 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. +*/ + +#ifndef SESSIONTEST_H +#define SESSIONTEST_H + +#include + +namespace Konsole +{ + +class SessionTest : public QObject +{ + Q_OBJECT + +private slots: + void testNoProfile(); + void testEmulation(); + void testEmulationHistory(); + +private: +}; + +} + +#endif // SESSIONTEST_H +