summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarius Bugge Monsen <mmonsen@trolltech.com>2009-05-11 11:42:17 +0200
committerMarius Bugge Monsen <mmonsen@trolltech.com>2009-05-11 11:42:17 +0200
commitf2692e22c44a80774082b7b1d1b2d16f7f4f740a (patch)
tree116b386d01f267feb93986643eedbc3b8a8d9413 /tests
parent90eb9e9270c0748f69d1cccc4bde36cd987436a9 (diff)
Add test data for QtTableSelectionManager current cell and anchor cell.
Diffstat (limited to 'tests')
-rw-r--r--tests/qtableselectionmanager/tst_qtableselectionmanager.cpp244
1 files changed, 244 insertions, 0 deletions
diff --git a/tests/qtableselectionmanager/tst_qtableselectionmanager.cpp b/tests/qtableselectionmanager/tst_qtableselectionmanager.cpp
index 07e0fe1..e1e3b8b 100644
--- a/tests/qtableselectionmanager/tst_qtableselectionmanager.cpp
+++ b/tests/qtableselectionmanager/tst_qtableselectionmanager.cpp
@@ -109,10 +109,132 @@ void tst_QtTableSelectionManager::getSetCheck()
*/
void tst_QtTableSelectionManager::currentCell_data()
{
+ QTest::addColumn<bool>("useModel");
+ QTest::addColumn<int>("rowCount");
+ QTest::addColumn<int>("columnCount");
+ QTest::addColumn<int>("initialCurrentRow");
+ QTest::addColumn<int>("initialCurrentColumn");
+ QTest::addColumn<int>("newCurrentRow");
+ QTest::addColumn<int>("newCurrentColumn");
+ QTest::addColumn<int>("expectedCurrentRow");
+ QTest::addColumn<int>("expectedCurrentColumn");
+ QTest::addColumn<int>("insertRowsAt");
+ QTest::addColumn<int>("insertRowCount");
+ QTest::addColumn<int>("insertColumnsAt");
+ QTest::addColumn<int>("insertColumnCount");
+ QTest::addColumn<int>("removeRowsAt");
+ QTest::addColumn<int>("removeRowCount");
+ QTest::addColumn<int>("removeColumnsAt");
+ QTest::addColumn<int>("removeColumnCount");
+ QTest::addColumn<int>("moveRowsFrom");
+ QTest::addColumn<int>("moveRowsTo");
+ QTest::addColumn<int>("moveRowCount");
+ QTest::addColumn<int>("moveColumnsFrom");
+ QTest::addColumn<int>("moveColumnsTo");
+ QTest::addColumn<int>("moveColumnCount");
+ QTest::addColumn<int>("changedCurrentRow");
+ QTest::addColumn<int>("changedCurrentColumn");
+ QTest::addColumn<int>("signalCount");
+
+ QTest::newRow("no model")
+ << false
+ << 0 << 0 // cell count
+ << -1 << -1 // current cell
+ << 0 << 0 // new current
+ << -1 << -1 // expected current
+ << 0 << 0 // insert rows
+ << 0 << 0 // insert columns
+ << 0 << 0 // remove rows
+ << 0 << 0 // remove columns
+ << 0 << 0 << 0 // move rows
+ << 0 << 0 << 0 // move columns
+ << -1 << -1 // changed current
+ << 0; // signals
}
void tst_QtTableSelectionManager::currentCell()
{
+ QFETCH(bool, useModel);
+ QFETCH(int, rowCount);
+ QFETCH(int, columnCount);
+ QFETCH(int, initialCurrentRow);
+ QFETCH(int, initialCurrentColumn);
+ QFETCH(int, newCurrentRow);
+ QFETCH(int, newCurrentColumn);
+ QFETCH(int, expectedCurrentRow);
+ QFETCH(int, expectedCurrentColumn);
+ QFETCH(int, insertRowsAt);
+ QFETCH(int, insertRowCount);
+ QFETCH(int, insertColumnsAt);
+ QFETCH(int, insertColumnCount);
+ QFETCH(int, removeRowsAt);
+ QFETCH(int, removeRowCount);
+ QFETCH(int, removeColumnsAt);
+ QFETCH(int, removeColumnCount);
+ QFETCH(int, moveRowsFrom);
+ QFETCH(int, moveRowsTo);
+ QFETCH(int, moveRowCount);
+ QFETCH(int, moveColumnsFrom);
+ QFETCH(int, moveColumnsTo);
+ QFETCH(int, moveColumnCount);
+ QFETCH(int, changedCurrentRow);
+ QFETCH(int, changedCurrentColumn);
+ QFETCH(int, signalCount);
+
+ QSignalSpy currentChanged(manager, SIGNAL(currentChanged(int,int,int,int)));
+
+ // start without model
+ manager->setModel(0);
+
+ // setup the model row and column count
+ model->setRowCount(rowCount);
+ model->setColumnCount(columnCount);
+
+ // with or without data model
+ manager->setModel(useModel ? model : 0);
+ QCOMPARE(manager->model(), (useModel ? model : 0));
+
+ // check initial current item and selection
+ QCOMPARE(manager->currentRow(), initialCurrentRow);
+ QCOMPARE(manager->currentColumn(), initialCurrentColumn);
+ //QCOMPARE(manager->selectionRanges().count(), selectionRangesCount);
+
+ // set current cell
+ manager->setCurrentCell(newCurrentRow, newCurrentColumn);
+ QCOMPARE(manager->currentRow(), expectedCurrentRow);
+ QCOMPARE(manager->currentColumn(), expectedCurrentColumn);
+ //QCOMPARE(manager->selectionRanges().count(), selectionRangesCount);
+
+ // insert rows
+ for (int i = insertRowsAt; i < insertRowCount; ++i)
+ model->insertRow(i);
+
+ // insert columns
+ for (int j = insertColumnsAt; j < insertColumnCount; ++j)
+ model->insertColumn(j);
+
+ // remove rows
+ for (int k = removeRowsAt; k < removeRowCount; ++k)
+ model->removeRow(k);
+
+ // remove columns
+ for (int l = removeColumnsAt; l < removeColumnCount; ++l)
+ model->removeColumn(l);
+
+ // move rows
+ for (int m = 0; m < moveRowCount; ++m)
+ model->moveRow(moveRowsFrom, moveRowsTo + m);
+
+ // move columns
+ for (int n = 0; n < moveColumnCount; ++n)
+ model->moveColumn(moveColumnsFrom, moveColumnsTo + n);
+
+ // check again
+ QCOMPARE(manager->currentRow(), changedCurrentRow);
+ QCOMPARE(manager->currentColumn(), changedCurrentColumn);
+
+ // check signals
+ QCOMPARE(currentChanged.count(), signalCount);
}
/*
@@ -121,10 +243,132 @@ void tst_QtTableSelectionManager::currentCell()
*/
void tst_QtTableSelectionManager::anchorCell_data()
{
+ QTest::addColumn<bool>("useModel");
+ QTest::addColumn<int>("rowCount");
+ QTest::addColumn<int>("columnCount");
+ QTest::addColumn<int>("initialAnchorRow");
+ QTest::addColumn<int>("initialAnchorColumn");
+ QTest::addColumn<int>("newAnchorRow");
+ QTest::addColumn<int>("newAnchorColumn");
+ QTest::addColumn<int>("expectedAnchorRow");
+ QTest::addColumn<int>("expectedAnchorColumn");
+ QTest::addColumn<int>("insertRowsAt");
+ QTest::addColumn<int>("insertRowCount");
+ QTest::addColumn<int>("insertColumnsAt");
+ QTest::addColumn<int>("insertColumnCount");
+ QTest::addColumn<int>("removeRowsAt");
+ QTest::addColumn<int>("removeRowCount");
+ QTest::addColumn<int>("removeColumnsAt");
+ QTest::addColumn<int>("removeColumnCount");
+ QTest::addColumn<int>("moveRowsFrom");
+ QTest::addColumn<int>("moveRowsTo");
+ QTest::addColumn<int>("moveRowCount");
+ QTest::addColumn<int>("moveColumnsFrom");
+ QTest::addColumn<int>("moveColumnsTo");
+ QTest::addColumn<int>("moveColumnCount");
+ QTest::addColumn<int>("changedAnchorRow");
+ QTest::addColumn<int>("changedAnchorColumn");
+ QTest::addColumn<int>("signalCount");
+
+ QTest::newRow("no model")
+ << false
+ << 0 << 0 // cell count
+ << -1 << -1 // anchor cell
+ << 0 << 0 // new anchor
+ << -1 << -1 // expected anchor
+ << 0 << 0 // insert rows
+ << 0 << 0 // insert columns
+ << 0 << 0 // remove rows
+ << 0 << 0 // remove columns
+ << 0 << 0 << 0 // move rows
+ << 0 << 0 << 0 // move columns
+ << -1 << -1 // changed anchor
+ << 0; // signals
}
void tst_QtTableSelectionManager::anchorCell()
{
+ QFETCH(bool, useModel);
+ QFETCH(int, rowCount);
+ QFETCH(int, columnCount);
+ QFETCH(int, initialAnchorRow);
+ QFETCH(int, initialAnchorColumn);
+ QFETCH(int, newAnchorRow);
+ QFETCH(int, newAnchorColumn);
+ QFETCH(int, expectedAnchorRow);
+ QFETCH(int, expectedAnchorColumn);
+ QFETCH(int, insertRowsAt);
+ QFETCH(int, insertRowCount);
+ QFETCH(int, insertColumnsAt);
+ QFETCH(int, insertColumnCount);
+ QFETCH(int, removeRowsAt);
+ QFETCH(int, removeRowCount);
+ QFETCH(int, removeColumnsAt);
+ QFETCH(int, removeColumnCount);
+ QFETCH(int, moveRowsFrom);
+ QFETCH(int, moveRowsTo);
+ QFETCH(int, moveRowCount);
+ QFETCH(int, moveColumnsFrom);
+ QFETCH(int, moveColumnsTo);
+ QFETCH(int, moveColumnCount);
+ QFETCH(int, changedAnchorRow);
+ QFETCH(int, changedAnchorColumn);
+ QFETCH(int, signalCount);
+
+ QSignalSpy anchorChanged(manager, SIGNAL(anchorChanged(int,int,int,int)));
+
+ // start without model
+ manager->setModel(0);
+
+ // setup the model row and column count
+ model->setRowCount(rowCount);
+ model->setColumnCount(columnCount);
+
+ // with or without data model
+ manager->setModel(useModel ? model : 0);
+ QCOMPARE(manager->model(), (useModel ? model : 0));
+
+ // check initial anchor item and selection
+ QCOMPARE(manager->anchorRow(), initialAnchorRow);
+ QCOMPARE(manager->anchorColumn(), initialAnchorColumn);
+ //QCOMPARE(manager->selectionRanges().count(), selectionRangesCount);
+
+ // set anchor cell
+ manager->setAnchorCell(newAnchorRow, newAnchorColumn);
+ QCOMPARE(manager->anchorRow(), expectedAnchorRow);
+ QCOMPARE(manager->anchorColumn(), expectedAnchorColumn);
+ //QCOMPARE(manager->selectionRanges().count(), selectionRangesCount);
+
+ // insert rows
+ for (int i = insertRowsAt; i < insertRowCount; ++i)
+ model->insertRow(i);
+
+ // insert columns
+ for (int j = insertColumnsAt; j < insertColumnCount; ++j)
+ model->insertColumn(j);
+
+ // remove rows
+ for (int k = removeRowsAt; k < removeRowCount; ++k)
+ model->removeRow(k);
+
+ // remove columns
+ for (int l = removeColumnsAt; l < removeColumnCount; ++l)
+ model->removeColumn(l);
+
+ // move rows
+ for (int m = 0; m < moveRowCount; ++m)
+ model->moveRow(moveRowsFrom, moveRowsTo + m);
+
+ // move columns
+ for (int n = 0; n < moveColumnCount; ++n)
+ model->moveColumn(moveColumnsFrom, moveColumnsTo + n);
+
+ // check again
+ QCOMPARE(manager->anchorRow(), changedAnchorRow);
+ QCOMPARE(manager->anchorColumn(), changedAnchorColumn);
+
+ // check signals
+ QCOMPARE(anchorChanged.count(), signalCount);
}
void tst_QtTableSelectionManager::selections_data()