[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