##// END OF EJS Templates
Implement QChartView::setChart()
Implement QChartView::setChart()

File last commit:

r2056:4b7228265b30
r2056:4b7228265b30
Show More
tst_qchartview.cpp
223 lines | 5.8 KiB | text/x-c | CppLexer
Michal Klocek
Adds tst_qchartview draft
r774 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtTest/QtTest>
#include <qchartview.h>
Michal Klocek
Updates tstqchartview unit test
r802 #include <qlineseries.h>
#include <cmath>
Tero Ahola
Auto tests involving signal spys to wait before comparisons
r1109 #include <tst_definitions.h>
Marek Rosa
renamed QValueAxis related files
r1805 #include <qvalueaxis.h>
Michal Klocek
Adds tst_qchartview draft
r774
QTCOMMERCIALCHART_USE_NAMESPACE
Q_DECLARE_METATYPE(QChart*)
Q_DECLARE_METATYPE(QChartView::RubberBands)
Michal Klocek
Fix padding to be int, update unit test
r804 Q_DECLARE_METATYPE(Qt::Key)
Michal Klocek
Adds tst_qchartview draft
r774
class tst_QChartView : public QObject
{
Q_OBJECT
public Q_SLOTS:
void initTestCase();
void cleanupTestCase();
void init();
void cleanup();
private Q_SLOTS:
void qchartview_data();
void qchartview();
void chart_data();
void chart();
void rubberBand_data();
void rubberBand();
Jani Honkonen
Implement QChartView::setChart()
r2056 void setChart();
Michal Klocek
Adds tst_qchartview draft
r774
private:
QChartView* m_view;
};
void tst_QChartView::initTestCase()
{
Michal Klocek
Fix padding to be int, update unit test
r804 //test tracks mouse, give a while to user to relese it
QTest::qWait(1000);
Michal Klocek
Adds tst_qchartview draft
r774 }
void tst_QChartView::cleanupTestCase()
{
}
void tst_QChartView::init()
{
m_view = new QChartView(new QChart());
Michal Klocek
Increses margins prescision
r874 m_view->chart()->legend()->setVisible(false);
Michal Klocek
Adds tst_qchartview draft
r774 }
void tst_QChartView::cleanup()
{
delete m_view;
m_view =0;
}
void tst_QChartView::qchartview_data()
{
}
void tst_QChartView::qchartview()
{
QVERIFY(m_view->chart());
QCOMPARE(m_view->rubberBand(), QChartView::NoRubberBand);
Michal Klocek
Updates tstqchartview unit test
r802 m_view->show();
Michal Klocek
Adds tst_qchartview draft
r774 QTest::qWaitForWindowShown(m_view);
Michal Klocek
Adds QChartView empty constructor to be able to promote qchartview in qtdesigner
r1290
delete(new QChartView());
QChartView view;
QVERIFY(view.chart());
Michal Klocek
Adds tst_qchartview draft
r774 }
void tst_QChartView::chart_data()
{
QTest::addColumn<QChart*>("chart");
QTest::newRow("qchart") << new QChart();
}
void tst_QChartView::chart()
{
QFETCH(QChart*, chart);
QChartView* view = new QChartView(chart);
QCOMPARE(view->chart(), chart);
delete view;
}
void tst_QChartView::rubberBand_data()
{
QTest::addColumn<QChartView::RubberBands>("rubberBand");
Michal Klocek
Updates tstqchartview unit test
r802 QTest::addColumn<int>("Xcount");
QTest::addColumn<int>("Ycount");
Michal Klocek
Implements minimumMargins...
r1883 QTest::addColumn<QPoint>("min");
QTest::addColumn<QPoint>("max");
QTest::newRow("HorizonalRubberBand") << QChartView::RubberBands(QChartView::HorizonalRubberBand) << 0 << 1 << QPoint(5,5) << QPoint(5,5);
QTest::newRow("VerticalRubberBand") << QChartView::RubberBands(QChartView::VerticalRubberBand) << 1 << 0 << QPoint(5,5) << QPoint(5,5);
QTest::newRow("RectangleRubberBand") << QChartView::RubberBands(QChartView::RectangleRubberBand) << 1 << 1 << QPoint(5,5) << QPoint(5,5);
Michal Klocek
Adds tst_qchartview draft
r774 }
void tst_QChartView::rubberBand()
{
QFETCH(QChartView::RubberBands, rubberBand);
Michal Klocek
Updates tstqchartview unit test
r802 QFETCH(int, Xcount);
QFETCH(int, Ycount);
Michal Klocek
Implements minimumMargins...
r1883 QFETCH(QPoint, min);
QFETCH(QPoint, max);
Michal Klocek
Updates tstqchartview unit test
r802
Michal Klocek
Adds tst_qchartview draft
r774 m_view->setRubberBand(rubberBand);
Michal Klocek
Implements minimumMargins...
r1883
Michal Klocek
Adds tst_qchartview draft
r774 QCOMPARE(m_view->rubberBand(), rubberBand);
Michal Klocek
Updates tstqchartview unit test
r802
QLineSeries* line = new QLineSeries();
Michal Klocek
tst_qchart and tst_qchartview updates
r914 *line << QPointF(0, 0) << QPointF(200, 200);
Michal Klocek
Updates tstqchartview unit test
r802
m_view->chart()->addSeries(line);
Michal Klocek
Fixes tst_qchartview
r1652 m_view->chart()->createDefaultAxes();
Michal Klocek
Updates tstqchartview unit test
r802 m_view->show();
Michal Klocek
Fix padding to be int, update unit test
r804
Michal Klocek
Implements minimumMargins...
r1883 QRectF plotArea = m_view->chart()->plotArea();
Michal Klocek
Fix padding to be int, update unit test
r804 //this is hack since view does not get events otherwise
Michal Klocek
Updates tstqchartview unit test
r802 m_view->setMouseTracking(true);
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 QAbstractAxis* axisY = m_view->chart()->axisY();
Michal Klocek
Normalizes signal slots connections
r967 QSignalSpy spy0(axisY, SIGNAL(rangeChanged(qreal,qreal)));
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 QAbstractAxis* axisX = m_view->chart()->axisX();
Michal Klocek
Normalizes signal slots connections
r967 QSignalSpy spy1(axisX, SIGNAL(rangeChanged(qreal,qreal)));
Michal Klocek
Updates tstqchartview unit test
r802
Michal Klocek
Implements minimumMargins...
r1883
QValueAxis* vaxisX = qobject_cast<QValueAxis*>(axisX);
QValueAxis* vaxisY = qobject_cast<QValueAxis*>(axisY);
int minX = vaxisX->min();
int minY = vaxisY->min();
int maxX = vaxisX->max();
int maxY = vaxisY->max();
Michal Klocek
Updates tstqchartview unit test
r802 QTest::qWaitForWindowShown(m_view);
Michal Klocek
Implements minimumMargins...
r1883 QTest::mouseMove(m_view->viewport(), min + plotArea.topLeft().toPoint());
QTest::qWait(2000);
QTest::mousePress(m_view->viewport(), Qt::LeftButton, 0, min + plotArea.topLeft().toPoint());
QTest::qWait(2000);
QTest::mouseMove(m_view->viewport(), plotArea.bottomRight().toPoint() - max);
QTest::qWait(2000);
QTest::mouseRelease(m_view->viewport(), Qt::LeftButton, 0, plotArea.bottomRight().toPoint() - max);
Michal Klocek
Increses margins prescision
r874
Tero Ahola
Auto tests involving signal spys to wait before comparisons
r1109 TRY_COMPARE(spy0.count(), Xcount);
TRY_COMPARE(spy1.count(), Ycount);
Michal Klocek
Fix padding to be int, update unit test
r804
//this is hack since view does not get events otherwise
m_view->setMouseTracking(false);
Michal Klocek
Implements minimumMargins...
r1883 QVERIFY(vaxisX->min() >= minX );
QVERIFY(vaxisX->max() <= maxX );
QVERIFY(vaxisY->min() >= minY );
QVERIFY(vaxisY->max() <= maxY );
Michal Klocek
Fixes tst_qchartview
r1652
Michal Klocek
Fix padding to be int, update unit test
r804 }
Jani Honkonen
Implement QChartView::setChart()
r2056 void tst_QChartView::setChart()
{
QPointer<QChart> oldChart = m_view->chart();
QLineSeries *series1 = new QLineSeries();
series1->append(0,0);
series1->append(1,1);
oldChart->addSeries(series1);
QPointer<QChart> newChart = new QChart();
QLineSeries *series2 = new QLineSeries();
series2->append(0,1);
series2->append(1,0);
newChart->addSeries(series2);
// show current chart
m_view->show();
QTest::qWaitForWindowShown(m_view);
QTest::qWait(1000);
// set new chart
m_view->setChart(newChart);
QVERIFY(m_view->chart() == newChart);
QVERIFY(!oldChart.isNull()); // ownership of the oldChart is released and not deleted
QTest::qWait(1000);
// delete the view
delete m_view;
m_view = 0;
QVERIFY(newChart.isNull()); // view owns and deletes it
QVERIFY(!oldChart.isNull()); // not owned by view
delete oldChart;
}
Michal Klocek
Adds tst_qchartview draft
r774 QTEST_MAIN(tst_QChartView)
#include "tst_qchartview.moc"