From eedcfd2f8b9e17f0903b7ff85421636830d2291d Mon Sep 17 00:00:00 2001 From: deva Date: Mon, 31 Aug 2009 15:01:56 +0000 Subject: Some more tests. --- client/test.sh | 45 ++++++++------ client/test/testcomboboxedit.cc | 72 +++++++++++++++++++++++ client/test/testcomboboxsearch.cc | 121 ++++++++++++++++++++++++++++++++++++++ client/test/testcomboboxselect.cc | 72 +++++++++++++++++++++++ client/test/testlineedit.cc | 57 ++++++------------ client/widgets/combobox.cc | 2 +- 6 files changed, 311 insertions(+), 58 deletions(-) create mode 100644 client/test/testcomboboxedit.cc create mode 100644 client/test/testcomboboxsearch.cc create mode 100644 client/test/testcomboboxselect.cc (limited to 'client') diff --git a/client/test.sh b/client/test.sh index 1c3c96d..83dc675 100755 --- a/client/test.sh +++ b/client/test.sh @@ -3,9 +3,15 @@ TEST_PRO_IN=test.pro.in TEST_PRO=test.pro MAKEFILE=Makefile.test -TESTFILES=test/test*.cc TEST_APP=test_app +if [ -z $1 ] +then + TESTFILES=test/test*.cc +else + TESTFILES=$1 +fi + rm -f test.log for TEST in $TESTFILES @@ -16,27 +22,28 @@ do echo Testing $TEST: > $OUTPUT echo -n "* Compiling $TEST test" - echo Compiling $TEST test: > $OUTPUT + echo Compiling $TEST test: >> $OUTPUT echo ${COMPILE} >> $OUTPUT cpp -P -E -DTESTFILE=\"$TEST\" $TEST_PRO_IN -o $TEST_PRO - qmake -makefile $TEST_PRO -o $MAKEFILE - if make -f $MAKEFILE >> ${OUTPUT} 2>&1; then - echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]" - echo "[Success]" >> $OUTPUT - - echo -n "* Running $TEST test" - echo Running $TEST test: >> $OUTPUT - if ./$TEST_APP >> $OUTPUT 2>&1; then - echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]" - echo "[Success]" >> $OUTPUT - else - echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]" - echo "[Failure]" >> $OUTPUT - fi + qmake -makefile $TEST_PRO -o $MAKEFILE + if make -f $MAKEFILE 2>&1 >> ${OUTPUT}; then + echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]" + echo "[Success]" >> $OUTPUT + + echo -n "* Running $TEST test" + echo Running $TEST test: >> $OUTPUT + if ./$TEST_APP 2>&1 >> $OUTPUT ; then + echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]" + echo "[Success]" >> $OUTPUT + else + echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]" + echo "[Failure]" >> $OUTPUT + fi else - echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]" - echo "[Failure]" >> $OUTPUT + echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]" + echo "[Failure]" >> $OUTPUT fi + + rm -f $MAKEFILE $TEST_PRO $TEST_APP done -rm -f $MAKEFILE $TEST_PRO $TEST_APP diff --git a/client/test/testcomboboxedit.cc b/client/test/testcomboboxedit.cc new file mode 100644 index 0000000..5294886 --- /dev/null +++ b/client/test/testcomboboxedit.cc @@ -0,0 +1,72 @@ +#include +#include "util.h" +#include "combobox.h" +#include + +static QString xml_search = + "\n" + " \n" + " \n" + " \n" + "\n"; + +static QString xml_edit = + "\n" + " \n" + " \n" + " \n" + "\n"; + +static QString xml_select = + "\n" + " \n" + " \n" + " \n" + "\n"; + +class TestComboBox: public QObject +{ +Q_OBJECT +private slots: + void creation() { TEST_CREATION(ComboBox); } + void disable() { TEST_DISABLE(ComboBox); } + + void editSelect() + { + QDomDocument doc; doc.setContent(xml_search); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + + QTest::keyClicks(&cmb, "Item 2"); + QCOMPARE(cmb.getValue(), QString("Item 2")); + } + + void arrowSelect() + { + QDomDocument doc; doc.setContent(xml_select); + QDomElement e = doc.documentElement(); + + ComboBox cmb(e, NULL); + + cmb.setFocus(); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Enter); + QCOMPARE(cmb.getValue(), QString("item3")); + } + + void changeEmits() + { + QDomDocument doc; doc.setContent(xml_search); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QSignalSpy spy(&cmb, SIGNAL(wasChanged())); + QTest::keyClicks(&cmb, "I"); + QCOMPARE(spy.count(), 1); + } +}; + +QTEST_MAIN(TestComboBox) +#include "testcombobox.moc" + + diff --git a/client/test/testcomboboxsearch.cc b/client/test/testcomboboxsearch.cc new file mode 100644 index 0000000..84f03c4 --- /dev/null +++ b/client/test/testcomboboxsearch.cc @@ -0,0 +1,121 @@ +#include +#include "util.h" +#include "combobox.h" +#include +#include + +static QString xml = + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; + +static QString xml_default = + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; + +class TestComboBoxSearch: public QObject +{ +Q_OBJECT +private slots: + void creation() { TEST_CREATION(ComboBox); } + void disable() { TEST_DISABLE(ComboBox); } + + void searchFullItem() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + + // Full item search + QTest::keyClicks(&cmb, "Item 2"); + QCOMPARE(cmb.getValue(), QString("Item 2")); + } + + void searchPrefix() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + + // Item prefix search + QTest::keyClicks(&cmb, "T"); + QCOMPARE(cmb.completer()->currentCompletion(), QString("Thingy")); + + QTest::keyClicks(&cmb, cmb.completer()->currentCompletion()); + QCOMPARE(cmb.getValue(), QString("Thingy")); + } + + void searchNegative() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + + // Negative search + QTest::keyClicks(&cmb, "A"); + QCOMPARE(cmb.getValue(), QString("")); + } + + void arrowSelect() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Enter); + QCOMPARE(cmb.getValue(), QString("item3")); + } + /* // It is set in MacroWindow generation .. not directly in the Widget. + void defaultValue() + { + QDomDocument doc; doc.setContent(xml_default); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QCOMPARE(cmb.getValue(), QString("item2")); + } + */ + void changeEmitUser() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QSignalSpy spy(&cmb, SIGNAL(wasChanged())); + QTest::keyClicks(&cmb, "I"); + QCOMPARE(spy.count(), 1); + } + + void changeEmitSystem() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QSignalSpy spy(&cmb, SIGNAL(wasChanged())); + cmb.setValue("some value", "pentominos"); + QCOMPARE(spy.count(), 1); + } + + void changeNoEmitSystem() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QSignalSpy spy(&cmb, SIGNAL(wasChanged())); + cmb.setValue("some value", "pracro"); + QCOMPARE(spy.count(), 0); + } +}; + +QTEST_MAIN(TestComboBoxSearch) +#include "testcomboboxsearch.moc" + + diff --git a/client/test/testcomboboxselect.cc b/client/test/testcomboboxselect.cc new file mode 100644 index 0000000..5294886 --- /dev/null +++ b/client/test/testcomboboxselect.cc @@ -0,0 +1,72 @@ +#include +#include "util.h" +#include "combobox.h" +#include + +static QString xml_search = + "\n" + " \n" + " \n" + " \n" + "\n"; + +static QString xml_edit = + "\n" + " \n" + " \n" + " \n" + "\n"; + +static QString xml_select = + "\n" + " \n" + " \n" + " \n" + "\n"; + +class TestComboBox: public QObject +{ +Q_OBJECT +private slots: + void creation() { TEST_CREATION(ComboBox); } + void disable() { TEST_DISABLE(ComboBox); } + + void editSelect() + { + QDomDocument doc; doc.setContent(xml_search); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + + QTest::keyClicks(&cmb, "Item 2"); + QCOMPARE(cmb.getValue(), QString("Item 2")); + } + + void arrowSelect() + { + QDomDocument doc; doc.setContent(xml_select); + QDomElement e = doc.documentElement(); + + ComboBox cmb(e, NULL); + + cmb.setFocus(); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Down); + QTest::keyPress(&cmb, Qt::Key_Enter); + QCOMPARE(cmb.getValue(), QString("item3")); + } + + void changeEmits() + { + QDomDocument doc; doc.setContent(xml_search); + QDomElement e = doc.documentElement(); + ComboBox cmb(e, NULL); + QSignalSpy spy(&cmb, SIGNAL(wasChanged())); + QTest::keyClicks(&cmb, "I"); + QCOMPARE(spy.count(), 1); + } +}; + +QTEST_MAIN(TestComboBox) +#include "testcombobox.moc" + + diff --git a/client/test/testlineedit.cc b/client/test/testlineedit.cc index 4eb886b..c5ab8b3 100644 --- a/client/test/testlineedit.cc +++ b/client/test/testlineedit.cc @@ -2,6 +2,8 @@ #include "util.h" #include "lineedit.h" +static QString xml = "\n"; + class TestLineEdit: public QObject { Q_OBJECT @@ -10,46 +12,25 @@ private slots: void disable() { TEST_DISABLE(LineEdit); } void value() { TEST_VALUE(LineEdit); } void edit() - { - QDomElement e = getWidgetElement("LineEdit", "mywidget"); - MacroWindow *wnd = createMacroWindow(); - LineEdit le(e, wnd); - QTest::keyClicks(&le, "hello"); - QCOMPARE(le.getValue(), QString("hello")); + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + LineEdit le(e, NULL); + QString teststring("hello"); + QTest::keyClicks(&le, teststring); + QCOMPARE(le.getValue(), teststring); } + + void changeEmits() + { + QDomDocument doc; doc.setContent(xml); + QDomElement e = doc.documentElement(); + LineEdit le(e, NULL); + QSignalSpy spy(&le, SIGNAL(wasChanged())); + QTest::keyClicks(&le, "h"); + QCOMPARE(spy.count(), 1); + } }; QTEST_MAIN(TestLineEdit) #include "testlineedit.moc" - -/** -class LineEdit : public QLineEdit, public Widget -{ -Q_OBJECT -public: - LineEdit(QDomNode &node, MacroWindow *macrowindow); - - QString getValue(); - void setValue(QString value, QString source = ""); - - void enable(); - void disable(); - bool isDisabled(); - - void connectFrom(const char *signal, - const QObject *receiver, const char *method); - - void connectTo(const QObject *sender, const char *signal, - const char *method); - - bool setKeyboardFocus(); - void setVisibility(bool visible); - -public slots: - void changed(); - void user_changed(); - -signals: - void wasChanged(); -}; - **/ diff --git a/client/widgets/combobox.cc b/client/widgets/combobox.cc index c4a7f13..bf25475 100644 --- a/client/widgets/combobox.cc +++ b/client/widgets/combobox.cc @@ -145,7 +145,7 @@ void ComboBox::setValue(QString value, QString source) int idx = findData(value); - printf("setValue(\"%s\") - %d\n", value.toStdString().c_str(), idx); + // printf("setValue(\"%s\") - %d\n", value.toStdString().c_str(), idx); ischangingbyuser = false; setCurrentIndex(idx); -- cgit v1.2.3