/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ #include #include #include "util.h" #include "altcombobox.h" static QString xml = "\n" " \n" " \n" " \n" " \n" " \n" "\n"; static QString xml_lua = "\n" " \n" " \n" " \n" " \n" " \n" "\n"; class TestAltComboBox: public QObject { Q_OBJECT private slots: void creation() { TEST_CREATION(AltComboBox); } void disable() { TEST_DISABLE(AltComboBox); } void visible() { QDomDocument doc; doc.setContent(xml); QDomElement e = doc.documentElement(); AltComboBox cmb(e, createMacroWindow()); cmb.qwidget()->show(); cmb.setValues(); QCOMPARE(cmb.visible(), true); Widget *w = cmb.findWidget("in", true); QCOMPARE(w->visible(), false); QTest::keyClicks(cmb.qcombobox(), "\b2"); QCOMPARE(w->visible(), true); QTest::keyClicks(cmb.qcombobox(), "\b3"); QCOMPARE(w->visible(), false); } void value() { QDomDocument doc; doc.setContent(xml); QDomElement e = doc.documentElement(); AltComboBox cmb(e, createMacroWindow()); cmb.setValues(); QCOMPARE(cmb.value(), QString("item1")); QTest::keyClicks(cmb.qcombobox(), "\b3"); QCOMPARE(cmb.value(), QString("item3")); QTest::keyClicks(cmb.qcombobox(), "\b2"); QCOMPARE(cmb.value(), QString("test")); } void arrow() { QDomDocument doc; doc.setContent(xml); QDomElement e = doc.documentElement(); AltComboBox cmb(e, createMacroWindow()); cmb.setValues(); QCOMPARE(cmb.value(), QString("item1")); cmb.qcombobox()->setFocus(); QTest::keyPress(cmb.qcombobox(), Qt::Key_Down); QTest::keyPress(cmb.qcombobox(), Qt::Key_Enter); QCOMPARE(cmb.value(), QString("item3")); QTest::keyPress(cmb.qcombobox(), Qt::Key_Down); QTest::keyPress(cmb.qcombobox(), Qt::Key_Enter); QCOMPARE(cmb.value(), QString("test")); } void changeEmits() { QDomDocument doc; doc.setContent(xml); QDomElement e = doc.documentElement(); AltComboBox cmb(e, createMacroWindow()); cmb.setValues(); QSignalSpy spy(&cmb, SIGNAL(wasChanged())); QTest::keyClicks(cmb.qcombobox(), "\b2"); QCOMPARE(spy.count(), 2); QCOMPARE(cmb.value(), QString("test")); Widget *w = cmb.findWidget("in", true); QTest::keyClicks(w->qwidget(), "A"); QCOMPARE(cmb.value(), QString("testA")); QCOMPARE(spy.count(), 3); } void lua() { QDomDocument doc; doc.setContent(xml_lua); QDomElement e = doc.documentElement(); AltComboBox cmb(e, createMacroWindow()); cmb.setValues(); cmb.qwidget()->show(); cmb.runEventOnInit(true); QTest::keyClicks(cmb.qcombobox(), "\b4"); QCOMPARE(cmb.value(), QString("Item 4")); } }; QTEST_MAIN(TestAltComboBox) #include "testaltcombobox.moc"