diff options
author | deva <deva> | 2009-08-31 15:01:56 +0000 |
---|---|---|
committer | deva <deva> | 2009-08-31 15:01:56 +0000 |
commit | eedcfd2f8b9e17f0903b7ff85421636830d2291d (patch) | |
tree | a41322beccee45924f53b420d5ac1933a6fa21c5 /client/test/testcomboboxsearch.cc | |
parent | ac9b15c17e81fd8cf828ca8eb9770a7ec5a6de20 (diff) |
Some more tests.
Diffstat (limited to 'client/test/testcomboboxsearch.cc')
-rw-r--r-- | client/test/testcomboboxsearch.cc | 121 |
1 files changed, 121 insertions, 0 deletions
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" + + |