diff options
Diffstat (limited to 'client/test')
-rw-r--r-- | client/test/testcomboboxedit.cc | 72 | ||||
-rw-r--r-- | client/test/testcomboboxsearch.cc | 121 | ||||
-rw-r--r-- | client/test/testcomboboxselect.cc | 72 | ||||
-rw-r--r-- | client/test/testlineedit.cc | 57 |
4 files changed, 284 insertions, 38 deletions
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 <QtTest/QtTest> +#include "util.h" +#include "combobox.h" +#include <QAbstractItemView> + +static QString xml_search = + "<combobox name=\"mycombobox\" type=\"search\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\n"; + +static QString xml_edit = + "<combobox name=\"mycombobox\" type=\"edit\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\n"; + +static QString xml_select = + "<combobox name=\"mycombobox\" type=\"select\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\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 <QtTest/QtTest> +#include "util.h" +#include "combobox.h" +#include <QAbstractItemView> +#include <QCompleter> + +static QString xml = + "<combobox name=\"mycombobox\" type=\"search\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + " <item value=\"thingy\" caption=\"Thingy\"/>\n" + " <item value=\"bob\" caption=\"Bob\"/>\n" + "</combobox>\n"; + +static QString xml_default = + "<combobox name=\"mycombobox\" type=\"search\" value=\"item2\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + " <item value=\"thingy\" caption=\"Thingy\"/>\n" + " <item value=\"bob\" caption=\"Bob\"/>\n" + "</combobox>\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 <QtTest/QtTest> +#include "util.h" +#include "combobox.h" +#include <QAbstractItemView> + +static QString xml_search = + "<combobox name=\"mycombobox\" type=\"search\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\n"; + +static QString xml_edit = + "<combobox name=\"mycombobox\" type=\"edit\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\n"; + +static QString xml_select = + "<combobox name=\"mycombobox\" type=\"select\">\n" + " <item value=\"item1\" caption=\"Item 1\"/>\n" + " <item value=\"item3\" caption=\"Item 3\"/>\n" + " <item value=\"item2\" caption=\"Item 2\"/>\n" + "</combobox>\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 = "<lineedit name=\"mylineedit\"/>\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(); -}; - **/ |