[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/plugins/chartshape/tests
From: Johannes Simon <johannes.simon () gmail ! com>
Date: 2010-09-20 18:49:04
Message-ID: 20100920184904.26E10AC88F () svn ! kde ! org
[Download RAW message or body]
SVN commit 1177609 by jsimon:
Add another test case for KDChartModel (which fails right now)
M +17 -0 ModelObserver.cpp
M +17 -0 ModelObserver.h
M +102 -0 TestKDChartModel.cpp
M +2 -0 TestKDChartModel.h
--- trunk/koffice/plugins/chartshape/tests/ModelObserver.cpp #1177608:1177609
@@ -28,6 +28,8 @@
m_source = source;
m_numRows = 0;
m_numCols = 0;
+ m_lastDataChange.valid = false;
+ m_lastHeaderDataChange.valid = false;
connect( source, SIGNAL( rowsInserted( const QModelIndex&, int, int ) ),
this , SLOT( slotRowsInserted( const QModelIndex&, int, int ) ) );
@@ -91,3 +93,18 @@
m_numRows = m_source->rowCount();
m_numCols = m_source->columnCount();
}
+
+void ModelObserver::slotHeaderDataChanged( Qt::Orientation orientation, int first, int last )
+{
+ m_lastHeaderDataChange.orientation = orientation;
+ m_lastHeaderDataChange.first = first;
+ m_lastHeaderDataChange.last = last;
+ m_lastHeaderDataChange.valid = true;
+}
+
+void ModelObserver::slotDataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight )
+{
+ m_lastDataChange.topLeft = topLeft;
+ m_lastDataChange.bottomRight = bottomRight;
+ m_lastHeaderDataChange.valid = true;
+}
--- trunk/koffice/plugins/chartshape/tests/ModelObserver.h #1177608:1177609
@@ -26,6 +26,19 @@
class QAbstractItemModel;
+struct HeaderDataChange {
+ Qt::Orientation orientation;
+ int first;
+ int last;
+ bool valid;
+};
+
+struct DataChange {
+ QModelIndex topLeft;
+ QModelIndex bottomRight;
+ bool valid;
+};
+
class ModelObserver : public QObject
{
Q_OBJECT
@@ -38,12 +51,16 @@
void slotColumnsInserted( const QModelIndex & parent, int start, int end );
void slotRowsRemoved( const QModelIndex & parent, int start, int end );
void slotColumnsRemoved( const QModelIndex & parent, int start, int end );
+ void slotHeaderDataChanged( Qt::Orientation, int first, int last );
+ void slotDataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight );
void slotModelReset();
public:
QAbstractItemModel *m_source;
int m_numRows;
int m_numCols;
+ HeaderDataChange m_lastHeaderDataChange;
+ DataChange m_lastDataChange;
};
#endif // KCHART_MODELOBSERVER_H
--- trunk/koffice/plugins/chartshape/tests/TestKDChartModel.cpp #1177608:1177609
@@ -199,4 +199,106 @@
QCOMPARE( m_model->data( m_model->index( 9, 1 ) ), QVariant( 6.3 ) );
}
+void TestKDChartModel::testDataChanges()
+{
+ DataSet dataSet1( 0 );
+ DataSet dataSet2( 1 );
+
+ dataSet1.setYDataRegion( CellRegion( m_table, QRect( 2, 2, 10, 1 ) ) );
+ dataSet2.setYDataRegion( CellRegion( m_table, QRect( 2, 3, 10, 1 ) ) );
+
+ m_model->addDataSet( &dataSet1 );
+ m_model->addDataSet( &dataSet2 );
+
+ // Test changing dataset-wide data
+
+ dataSet1.setLabelDataRegion( CellRegion( m_table, QPoint( 2, 2 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.orientation, Qt::Vertical );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.first, 0 );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.last, 0 );
+
+ // Forget the last change to test another one
+ m_testModel->m_lastHeaderDataChange.valid = false;
+
+ dataSet2.setLabelDataRegion( CellRegion( m_table, QPoint( 2, 3 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.orientation, Qt::Vertical );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.first, 1 );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.last, 1 );
+
+ // Test changing data points
+
+ // Forget the last change to test another one
+ m_testModel->m_lastDataChange.valid = false;
+
+ dataSet1.setYDataRegion( CellRegion( m_table, QRect( 3, 2, 9, 1 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastDataChange.topLeft, m_model->index( 0, 0 ) );
+ QCOMPARE( m_testModel->m_lastDataChange.bottomRight, m_model->index( 9, 0 ) );
+
+ // Forget the last change to test another one
+ m_testModel->m_lastDataChange.valid = false;
+
+ dataSet2.setYDataRegion( CellRegion( m_table, QRect( 3, 3, 9, 1 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastDataChange.topLeft, m_model->index( 0, 1 ) );
+ // The number of rows (data points) is now reduced by one because
+ // both y data regions have been reduced by one cell.
+ QCOMPARE( m_testModel->m_lastDataChange.bottomRight, m_model->index( 8, 1 ) );
+}
+
+void TestKDChartModel::testDataChangesWithTwoDimensions()
+{
+ DataSet dataSet1( 0 );
+ DataSet dataSet2( 1 );
+
+ dataSet1.setXDataRegion( CellRegion( m_table, QRect( 2, 1, 10, 1 ) ) );
+ dataSet1.setYDataRegion( CellRegion( m_table, QRect( 2, 2, 10, 1 ) ) );
+ dataSet1.setLabelDataRegion( CellRegion( m_table, QPoint( 1, 2 ) ) );
+
+ dataSet2.setXDataRegion( CellRegion( m_table, QRect( 2, 1, 10, 1 ) ) );
+ dataSet2.setYDataRegion( CellRegion( m_table, QRect( 2, 3, 10, 1 ) ) );
+ dataSet2.setLabelDataRegion( CellRegion( m_table, QPoint( 1, 3 ) ) );
+
+ m_model->setDataDimensions( 2 );
+ m_model->addDataSet( &dataSet1 );
+ m_model->addDataSet( &dataSet2 );
+
+ // Test changing dataset-wide data
+
+ dataSet1.setLabelDataRegion( CellRegion( m_table, QPoint( 2, 2 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.orientation, Qt::Vertical );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.first, 0 );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.last, 1 );
+
+ // Forget the last change to test another one
+ m_testModel->m_lastHeaderDataChange.valid = false;
+
+ dataSet2.setLabelDataRegion( CellRegion( m_table, QPoint( 2, 3 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.orientation, Qt::Vertical );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.first, 2 );
+ QCOMPARE( m_testModel->m_lastHeaderDataChange.last, 3 );
+
+ // Test changing data points
+
+ // Forget the last change to test another one
+ m_testModel->m_lastDataChange.valid = false;
+
+ dataSet1.setYDataRegion( CellRegion( m_table, QRect( 3, 2, 9, 1 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastDataChange.topLeft, m_model->index( 0, 0 ) );
+ QCOMPARE( m_testModel->m_lastDataChange.bottomRight, m_model->index( 9, 1 ) );
+
+ // Forget the last change to test another one
+ m_testModel->m_lastDataChange.valid = false;
+
+ dataSet2.setYDataRegion( CellRegion( m_table, QRect( 3, 3, 9, 1 ) ) );
+ QVERIFY( m_testModel->m_lastHeaderDataChange.valid );
+ QCOMPARE( m_testModel->m_lastDataChange.topLeft, m_model->index( 0, 2 ) );
+ QCOMPARE( m_testModel->m_lastDataChange.bottomRight, m_model->index( 9, 3 ) );
+}
+
QTEST_MAIN( TestKDChartModel )
--- trunk/koffice/plugins/chartshape/tests/TestKDChartModel.h #1177608:1177609
@@ -45,6 +45,8 @@
void testDataSetInsertion();
void testDataSetInsertionAndRemoval();
void testData();
+ void testDataChanges();
+ void testDataChangesWithTwoDimensions();
private:
KDChartModel *m_model;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic