diff --git a/tests/tests.pro b/tests/tests.pro index a02f302..852fab8 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -6,7 +6,8 @@ TEMPLATE = subdirs SUBDIRS += \ auto \ qmlchartproperties \ - qmlchartaxis + qmlchartaxis \ + uitest contains(QT_CONFIG, opengl) { SUBDIRS += chartwidgettest \ diff --git a/tests/uitest/magotest.py b/tests/uitest/magotest.py new file mode 100644 index 0000000..8b822b5 --- /dev/null +++ b/tests/uitest/magotest.py @@ -0,0 +1,33 @@ +from mago import TestCase +import ldtp +from ldtputils import * +import ldtputils + +class TestMinimal(TestCase): + launcher = '/home/ferdek/charts/bin/release/uitest' + window_name = 'flrRangeMinDown' + + before = '/tmp/image1.png' + after = '/tmp/image2.png' + + offsetX = 15 + offsetY = 15 + captureHeight = 200 + captureWidth = 200 + + # helper functions + def capturechartbefore(self): + ldtp.imagecapture(self.window_name, self.before, self.offsetX, self.offsetY, self.captureWidth, self.captureHeight) + + def capturechartafter(self): + ldtp.imagecapture(self.window_name, self.after, self.offsetX, self.offsetY, self.captureWidth, self.captureHeight) + + def comparechart(self): + self.assertTrue(ldtputils.imagecompare(self.before, self.after) > 0) + + # tests + def test_tickcountchange(self): + self.capturechartbefore() + ldtp.click(self.window_name, 'btnTickUp') + self.capturechartafter() + self.comparechart() diff --git a/tests/uitest/main.cpp b/tests/uitest/main.cpp new file mode 100644 index 0000000..102963f --- /dev/null +++ b/tests/uitest/main.cpp @@ -0,0 +1,11 @@ +#include +#include "widget.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Widget w; + w.show(); + + return a.exec(); +} diff --git a/tests/uitest/uitest.pro b/tests/uitest/uitest.pro new file mode 100644 index 0000000..59a99b8 --- /dev/null +++ b/tests/uitest/uitest.pro @@ -0,0 +1,17 @@ +!include( ../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +QT += core gui +contains(QT_MAJOR_VERSION, 5) { + QT += widgets +} + +TARGET = uitest +TEMPLATE = app + + +SOURCES += main.cpp\ + widget.cpp + +HEADERS += widget.h diff --git a/tests/uitest/widget.cpp b/tests/uitest/widget.cpp new file mode 100644 index 0000000..ea581ea --- /dev/null +++ b/tests/uitest/widget.cpp @@ -0,0 +1,109 @@ +#include "widget.h" + +// Qt +#include +#include +#include + +// Charts +#include +#include +#include + +QTCOMMERCIALCHART_USE_NAMESPACE + +Widget::Widget(QWidget *parent) + : QWidget(parent), + m_axisX(0), + m_axisY(0) +{ + QChartView *chartView = new QChartView; + chartView->setAccessibleName("Chart"); + QChart *chart = chartView->chart(); + + QLineSeries *series = new QLineSeries; + series->setName("Series 1"); + series->append(1, 2); + series->append(3, 1); + series->append(5, 4); + + chart->addSeries(series); + m_axisX = new QValueAxis; + m_axisY = new QValueAxis; + chart->setAxisX(m_axisX, series); + chart->setAxisY(m_axisY, series); + + // buttons + QVBoxLayout *buttonsLayout = createButtons(); + setAccessibleName("uitest"); + window()->setAccessibleName("uitest"); + setWindowTitle("uitest"); + + QGridLayout *mainLayout = new QGridLayout; + mainLayout->addWidget(chartView, 1, 1); + mainLayout->addLayout(buttonsLayout, 1, 2); + setLayout(mainLayout); +} + +Widget::~Widget() +{ + +} + +QVBoxLayout* Widget::createButtons() +{ + QVBoxLayout *buttonsLayout = new QVBoxLayout; + + QPushButton *button = new QPushButton("Tick+"); + button->setAccessibleName("TickUp"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + button = new QPushButton("Tick-"); + button->setAccessibleName("TickDown"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + button = new QPushButton("RangeMax+"); + button->setAccessibleName("RangeMaxUp"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + button = new QPushButton("RangeMax-"); + button->setAccessibleName("RangeMaxDown"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + button = new QPushButton("RangeMin+"); + button->setAccessibleName("RangeMinUp"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + button = new QPushButton("RangeMin-"); + button->setAccessibleName("RangeMinDown"); + buttonsLayout->addWidget(button); + connect(button,SIGNAL(clicked()), this, SLOT(handleClick())); + + buttonsLayout->addStretch(); + + return buttonsLayout; +} + +void Widget::handleClick() +{ + QPushButton *button = qobject_cast(sender()); + QString buttonName = button->text(); + + if (buttonName == "Tick+") + m_axisX->setTickCount(m_axisX->tickCount() + 1); + else if (buttonName == "Tick-") + m_axisX->setTickCount(m_axisX->tickCount() - 1); + else if (buttonName == "RangeMax+") + m_axisX->setMax(m_axisX->max() + 1); + else if (buttonName == "RangeMax-") + m_axisX->setMax(m_axisX->max() - 1); + else if (buttonName == "RangeMin+") + m_axisX->setMin(m_axisX->min() + 1); + else if (buttonName == "RangeMin-") + m_axisX->setMin(m_axisX->min() - 1); +} diff --git a/tests/uitest/widget.h b/tests/uitest/widget.h new file mode 100644 index 0000000..36c46f9 --- /dev/null +++ b/tests/uitest/widget.h @@ -0,0 +1,33 @@ +#ifndef WIDGET_H +#define WIDGET_H + +#include +#include + +class QVBoxLayout; + +QTCOMMERCIALCHART_BEGIN_NAMESPACE +class QValueAxis; +QTCOMMERCIALCHART_END_NAMESPACE + +QTCOMMERCIALCHART_USE_NAMESPACE + +class Widget : public QWidget +{ + Q_OBJECT + +public: + Widget(QWidget *parent = 0); + ~Widget(); + +public slots: + void handleClick(); + +private: + QVBoxLayout* createButtons(); + + QValueAxis *m_axisX; + QValueAxis *m_axisY; +}; + +#endif // WIDGET_H