summaryrefslogtreecommitdiff
path: root/client/test
diff options
context:
space:
mode:
Diffstat (limited to 'client/test')
-rw-r--r--client/test/testcomboboxedit.cc72
-rw-r--r--client/test/testcomboboxsearch.cc121
-rw-r--r--client/test/testcomboboxselect.cc72
-rw-r--r--client/test/testlineedit.cc57
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();
-};
- **/