diff options
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" + + | 
