[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeui/tests
From: Stephen Kelly <steveire () gmail ! com>
Date: 2010-03-22 13:31:01
Message-ID: 20100322133101.9BB41AC86C () svn ! kde ! org
[Download RAW message or body]
SVN commit 1106318 by skelly:
Add test infrastructure for item removal.
M +65 -0 kselectionproxymodeltest.cpp
M +4 -0 kselectionproxymodeltestsuite.h
M +63 -0 proxymodeltestsuite/modelcommander.cpp
M +10 -0 proxymodeltestsuite/modelcommander.h
M +15 -0 proxymodeltestsuite/modelselector.h
M +79 -0 proxymodeltestsuite/proxymodeltest.h
--- trunk/KDE/kdelibs/kdeui/tests/kselectionproxymodeltest.cpp #1106317:1106318
@@ -46,6 +46,10 @@
void testInsertInTopLevelData() { noop_testInsertInTopLevelData(); }
void testInsertInSecondLevelData() { noop_testInsertInSecondLevelData(); }
+ void testRemoveFromRootData() { noop_testRemoveFromRootData(); }
+ void testRemoveFromTopLevelData() { noop_testRemoveFromTopLevelData(); }
+ void testRemoveFromSecondLevelData() { noop_testRemoveFromSecondLevelData(); }
+
private:
ProxyModelTest *m_proxyModelTest;
};
@@ -101,6 +105,31 @@
noop_testInsertInSecondLevelData();
}
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ChildrenOfExactSelection>::testRemoveFromRootData() +{
+ noop_testRemoveFromRootData();
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ChildrenOfExactSelection>::testRemoveFromTopLevelData() +{
+ QTest::addColumn<SignalList>("signalList");
+ QTest::addColumn<PersistentChangeList>("changeList");
+
+ IndexFinder indexFinder;
+
+ newRemoveTest("remove01", indexFinder, 0, 0, 10);
+ newRemoveTest("remove02", indexFinder, 0, 4, 10);
+ newRemoveTest("remove03", indexFinder, 9, 9, 10);
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ChildrenOfExactSelection>::testRemoveFromSecondLevelData() +{
+ noop_testRemoveFromSecondLevelData();
+}
+
//END ChildrenOfExactSelection
//BEGIN ExactSelection
@@ -134,6 +163,24 @@
{
noop_testInsertInSecondLevelData();
}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ExactSelection>::testRemoveFromRootData() +{
+ noop_testRemoveFromRootData();
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ExactSelection>::testRemoveFromTopLevelData() +{
+ noop_testRemoveFromTopLevelData();
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::ExactSelection>::testRemoveFromSecondLevelData() +{
+ noop_testRemoveFromSecondLevelData();
+}
//END ExactSelection
//BEGIN SubTrees
@@ -168,6 +215,24 @@
testForwardingInsertData(IndexFinder(QList<int>() << 0 << 5));
}
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::SubTrees>::testRemoveFromRootData() +{
+ noop_testRemoveFromRootData();
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::SubTrees>::testRemoveFromTopLevelData() +{
+ testForwardingRemoveData(IndexFinder(QList<int>() << 0));
+}
+
+template<>
+void TestData<ImmediateSelectionStrategy<9>, \
KSelectionProxyModel::SubTrees>::testRemoveFromSecondLevelData() +{
+ testForwardingRemoveData(IndexFinder(QList<int>() << 0 << 5));
+}
+
//END SubTrees
//END ImmediateSelectionStrategy
--- trunk/KDE/kdelibs/kdeui/tests/kselectionproxymodeltestsuite.h #1106317:1106318
@@ -95,6 +95,10 @@
/* reimp */ void testInsertInRootData() { \
SelectorStrategy::testInsertInRootData(); } /* reimp */ void \
testInsertInTopLevelData() { SelectorStrategy::testInsertInTopLevelData(); } /* \
reimp */ void testInsertInSecondLevelData() { \
SelectorStrategy::testInsertInSecondLevelData(); } +
+ /* reimp */ void testRemoveFromRootData() { \
SelectorStrategy::testRemoveFromRootData(); } + /* reimp */ void \
testRemoveFromTopLevelData() { SelectorStrategy::testRemoveFromTopLevelData(); } + \
/* reimp */ void testRemoveFromSecondLevelData() { \
SelectorStrategy::testRemoveFromSecondLevelData(); } };
/**
--- trunk/KDE/kdelibs/kdeui/tests/proxymodeltestsuite/modelcommander.cpp \
#1106317:1106318 @@ -88,6 +88,21 @@
initTestModel(dataTag);
}
+void ModelCommander::init_testRemoveFromRoot(const QString& dataTag)
+{
+ initTestModel(dataTag);
+}
+
+void ModelCommander::init_testRemoveFromSecondLevel(const QString& dataTag)
+{
+ initTestModel(dataTag);
+}
+
+void ModelCommander::init_testRemoveFromTopLevel(const QString& dataTag)
+{
+ initTestModel(dataTag);
+}
+
void ModelCommander::initTestModel(const QString &dataTag)
{
Q_UNUSED(dataTag);
@@ -158,6 +173,21 @@
return executeTestInsert(QList<int>() << 5 << 5, dataTag);
}
+QStringList ModelCommander::execute_testRemoveFromRoot(const QString &dataTag)
+{
+ return executeTestRemove(QList<int>(), dataTag);
+}
+
+QStringList ModelCommander::execute_testRemoveFromTopLevel(const QString &dataTag)
+{
+ return executeTestRemove(QList<int>() << 5, dataTag);
+}
+
+QStringList ModelCommander::execute_testRemoveFromSecondLevel(const QString \
&dataTag) +{
+ return executeTestRemove(QList<int>() << 5 << 5, dataTag);
+}
+
void ModelCommander::execute(ModelChangeCommand* command)
{
m_currentCommand = command;
@@ -171,6 +201,39 @@
return m_currentCommand;
}
+QStringList ModelCommander::executeTestRemove(QList<int> rowAncestors, const QString \
&dataTag) +{
+ static const QStringList testData = QStringList() << "remove01"
+ << "remove02"
+ << "remove03";
+
+ if(dataTag.isEmpty())
+ return testData;
+
+ ModelRemoveCommand *rem = new ModelRemoveCommand(m_model, this);
+ if (dataTag == testData.at(0))
+ {
+ // Remove a single item from the top.
+ rem->setAncestorRowNumbers(rowAncestors);
+ rem->setStartRow(0);
+ rem->setEndRow(0);
+ } else if (dataTag == testData.at(1))
+ {
+ // Remove four items form the top.
+ rem->setAncestorRowNumbers(rowAncestors);
+ rem->setStartRow(0);
+ rem->setEndRow(4);
+ } else if (dataTag == testData.at(2))
+ {
+ // Remove a single item from the bottom.
+ rem->setAncestorRowNumbers(rowAncestors);
+ rem->setStartRow(m_model->rowCount() - 1);
+ rem->setEndRow(m_model->rowCount() - 1);
+ }
+ execute(rem);
+ return testData;
+}
+
QStringList ModelCommander::executeTestInsert(QList<int> rowAncestors, const QString \
&dataTag) {
static const QStringList testData = QStringList() << "insert01"
--- trunk/KDE/kdelibs/kdeui/tests/proxymodeltestsuite/modelcommander.h \
#1106317:1106318 @@ -40,13 +40,23 @@
void init_testInsertInTopLevel(const QString &dataTag);
void init_testInsertInSecondLevel(const QString &dataTag);
+ void init_testRemoveFromRoot(const QString &dataTag);
+ void init_testRemoveFromTopLevel(const QString &dataTag);
+ void init_testRemoveFromSecondLevel(const QString &dataTag);
+
QStringList execute_testInsertWhenEmpty(const QString &dataTag);
QStringList execute_testInsertInRoot(const QString &dataTag);
QStringList execute_testInsertInTopLevel(const QString &dataTag);
QStringList execute_testInsertInSecondLevel(const QString &dataTag);
+ QStringList execute_testRemoveFromRoot(const QString &dataTag);
+ QStringList execute_testRemoveFromTopLevel(const QString &dataTag);
+ QStringList execute_testRemoveFromSecondLevel(const QString &dataTag);
+
private:
QStringList executeTestInsert(QList<int> rowAncestors, const QString &dataTag);
+ QStringList executeTestRemove(QList<int> rowAncestors, const QString &dataTag);
+
void initTestModel(const QString &dataTag);
void execute(ModelChangeCommand *command);
--- trunk/KDE/kdelibs/kdeui/tests/proxymodeltestsuite/modelselector.h \
#1106317:1106318 @@ -72,6 +72,21 @@
dummyTestData();
}
+ void testRemoveFromRootData()
+ {
+ dummyTestData();
+ }
+
+ void testRemoveFromTopLevelData()
+ {
+ dummyTestData();
+ }
+
+ void testRemoveFromSecondLevelData()
+ {
+ dummyTestData();
+ }
+
protected slots:
void modelDestroyed() {
m_model = 0;
--- trunk/KDE/kdelibs/kdeui/tests/proxymodeltestsuite/proxymodeltest.h \
#1106317:1106318 @@ -57,6 +57,11 @@
virtual void testInsertInRootData() = 0;
virtual void testInsertInTopLevelData() = 0;
virtual void testInsertInSecondLevelData() = 0;
+
+ virtual void testRemoveFromRootData() = 0;
+ virtual void testRemoveFromTopLevelData() = 0;
+ virtual void testRemoveFromSecondLevelData() = 0;
+
};
class BuiltinTestInterface : BuiltinTestDataInterface
@@ -75,6 +80,15 @@
virtual void testInsertInSecondLevel_data() = 0;
virtual void testInsertInSecondLevel() = 0;
+
+ virtual void testRemoveFromRoot_data() = 0;
+ virtual void testRemoveFromRoot() = 0;
+
+ virtual void testRemoveFromTopLevel_data() = 0;
+ virtual void testRemoveFromTopLevel() = 0;
+
+ virtual void testRemoveFromSecondLevel_data() = 0;
+ virtual void testRemoveFromSecondLevel() = 0;
};
class ProxyModelTest : public QObject, protected BuiltinTestInterface
@@ -109,6 +123,10 @@
void testInsertInTopLevelData();
void testInsertInSecondLevelData();
+ void testRemoveFromRootData();
+ void testRemoveFromTopLevelData();
+ void testRemoveFromSecondLevelData();
+
protected slots:
void testMappings();
void verifyModel(const QModelIndex &parent, int start, int end);
@@ -136,6 +154,15 @@
void testInsertInSecondLevel_data() { testInsertInSecondLevelData(); }
void testInsertInSecondLevel() { doTest(); }
+ void testRemoveFromRoot_data() { testRemoveFromRootData(); }
+ void testRemoveFromRoot() { doTest(); }
+
+ void testRemoveFromTopLevel_data() { testRemoveFromTopLevelData(); }
+ void testRemoveFromTopLevel() { doTest(); }
+
+ void testRemoveFromSecondLevel_data() { testRemoveFromSecondLevelData(); }
+ void testRemoveFromSecondLevel() { doTest(); }
+
protected:
void connectTestSignals(QObject *reciever);
void disconnectTestSignals(QObject *reciever);
@@ -233,6 +260,16 @@
newInsertTest("insert18", rows, 0, 4, 0);
}
+ void testForwardingRemoveData(const IndexFinder &indexFinder)
+ {
+ QTest::addColumn<SignalList>("signalList");
+ QTest::addColumn<PersistentChangeList>("changeList");
+
+ newRemoveTest("remove01", indexFinder, 0, 0, 10);
+ newRemoveTest("remove02", indexFinder, 0, 4, 10);
+ newRemoveTest("remove03", indexFinder, 9, 9, 10);
+ }
+
void newInsertTest(const QString &name, const IndexFinder &indexFinder, int start, \
int end, int rowCount) {
processTestName(name);
@@ -249,6 +286,25 @@
QTest::newRow(name.toAscii()) << signalList << persistentList;
}
+ void newRemoveTest(const QString &name, const IndexFinder &indexFinder, int start, \
int end, int rowCount) + {
+ processTestName(name);
+
+ SignalList signalList;
+ PersistentChangeList persistentList;
+
+ signalList << m_proxyModelTest->getSignal(RowsAboutToBeRemoved, indexFinder, \
start, end); + signalList << m_proxyModelTest->getSignal(RowsRemoved, indexFinder, \
start, end); +
+ persistentList << m_proxyModelTest->getChange( indexFinder, start, end, -1, true \
); + if (rowCount - 1 != end)
+ {
+ persistentList << m_proxyModelTest->getChange( indexFinder, end + 1, rowCount \
- 1, -1 * (end - start + 1) ); + }
+
+ QTest::newRow(name.toAscii()) << signalList << persistentList;
+ }
+
void noop_testInsertWhenEmptyData()
{
QTest::addColumn<SignalList>("signalList");
@@ -297,6 +353,29 @@
noop_testInsertInRootData();
}
+ void noop_testRemoveFromRootData()
+ {
+ QTest::addColumn<SignalList>("signalList");
+ QTest::addColumn<PersistentChangeList>("changeList");
+
+ // These commands have no effect because this model shows children of selection.
+
+ noopTest("remove01");
+ noopTest("remove02");
+ noopTest("remove03");
+ }
+
+ void noop_testRemoveFromTopLevelData()
+ {
+ // Same test names etc.
+ noop_testRemoveFromRootData();
+ }
+
+ void noop_testRemoveFromSecondLevelData()
+ {
+ noop_testRemoveFromRootData();
+ }
+
ProxyModelTest *m_proxyModelTest;
QString m_currentTestFunction;
QSet<QString> m_testNames;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic