Forráskód Böngészése

ctkCheckableModelHelperTest1 - Fix style

* Use QScopedPointer when possible

* Add "Line " << __LINE__ <<" - ..." to test error output

* Use "local scoping" to isolate different part of the test
Jean-Christophe Fillion-Robin 13 éve
szülő
commit
7ad948edd6
1 módosított fájl, 272 hozzáadás és 265 törlés
  1. 272 265
      Libs/Core/Testing/Cpp/ctkCheckableModelHelperTest1.cpp

+ 272 - 265
Libs/Core/Testing/Cpp/ctkCheckableModelHelperTest1.cpp

@@ -22,6 +22,7 @@
 #include <QCoreApplication>
 #include <QDebug>
 #include <QFocusEvent>
+#include <QScopedPointer>
 #include <QStandardItem>
 #include <QStandardItemModel>
 #include <QTimer>
@@ -37,6 +38,7 @@
 int ctkCheckableModelHelperTest1(int argc, char * argv [] )
 {
   QCoreApplication app(argc, argv);
+  Q_UNUSED(app);
 
   QStandardItemModel model;
   QList<QStandardItem*> row0;
@@ -70,273 +72,278 @@ int ctkCheckableModelHelperTest1(int argc, char * argv [] )
   QStandardItemModel modelForce;
   modelForce.appendRow(row0);
 
-  QModelIndex modelIndex;
-  ctkCheckableModelHelper* modelHelperCF =
-    new ctkCheckableModelHelper(Qt::Horizontal);
-
-  modelHelperCF->setForceCheckability(true);
-  if (!modelHelperCF->forceCheckability())
-    {
-    std::cerr << "ctkCheckableModelHelper::setForceCheckability() failed: "
-              << static_cast<int>(modelHelperCF->forceCheckability()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelperCF->isCheckable(modelIndex);
-  modelHelperCF->toggleCheckState(modelIndex);
-
-  modelHelperCF->setForceCheckability(false);
-  if (modelHelperCF->forceCheckability())
-    {
-    std::cerr << "ctkCheckableModelHelper::setForceCheckability() failed: "
-              << static_cast<int>(modelHelperCF->forceCheckability()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelperCF->setCheckState(modelIndex, Qt::Unchecked);
-
-  modelHelperCF->setDefaultCheckState(Qt::Checked);
-  if (modelHelperCF->defaultCheckState() != Qt::Checked)
-    {
-    std::cerr << "ctkCheckableModelHelper::setDefaultCheckState() failed: "
-              << static_cast<int>(modelHelperCF->defaultCheckState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelperCF->setRootIndex(modelIndex);
-  modelHelperCF->setForceCheckability(true);
-  modelHelperCF->setCheckState(modelIndex, Qt::Checked);
-  Qt::CheckState statutCheck = Qt::Checked;
-  if (modelHelperCF->checkState(modelIndex, statutCheck))
-    {
-    std::cerr << "ctkCheckableModelHelper::setCheckState() failed: "
-            << static_cast<int>(modelHelperCF->checkState(modelIndex, statutCheck)) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelperCF->checkState(modelIndex);
-
-  modelHelperCF->setModel(&modelForce);
-  if (!modelHelperCF->model())
-    {
-    std::cerr << "ctkCheckableModelHelper::setModel() failed: "
-              << "is null" << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelperCF->setCheckState(modelIndex, Qt::Checked);
-  if (modelHelperCF->checkState(modelIndex, statutCheck))
-    {
-    std::cerr << "ctkCheckableModelHelper::setCheckState() failed: "
-            << static_cast<int>(modelHelperCF->checkState(modelIndex, statutCheck)) << std::endl;
-    return EXIT_FAILURE;
-    }
-
+  {
+    QModelIndex modelIndex;
+    QScopedPointer<ctkCheckableModelHelper> modelHelperCF(new ctkCheckableModelHelper(Qt::Horizontal));
+
+    modelHelperCF->setForceCheckability(true);
+    if (!modelHelperCF->forceCheckability())
+      {
+      std::cerr << "Line " << __LINE__
+                << " - ctkCheckableModelHelper::setForceCheckability() failed: "
+                << static_cast<int>(modelHelperCF->forceCheckability()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelperCF->isCheckable(modelIndex);
+    modelHelperCF->toggleCheckState(modelIndex);
+
+    modelHelperCF->setForceCheckability(false);
+    if (modelHelperCF->forceCheckability())
+      {
+      std::cerr << "Line " << __LINE__
+                << " - ctkCheckableModelHelper::setForceCheckability() failed: "
+                << static_cast<int>(modelHelperCF->forceCheckability()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelperCF->setCheckState(modelIndex, Qt::Unchecked);
+
+    modelHelperCF->setDefaultCheckState(Qt::Checked);
+    if (modelHelperCF->defaultCheckState() != Qt::Checked)
+      {
+      std::cerr << "Line " << __LINE__
+                << " - ctkCheckableModelHelper::setDefaultCheckState() failed: "
+                << static_cast<int>(modelHelperCF->defaultCheckState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelperCF->setRootIndex(modelIndex);
+    modelHelperCF->setForceCheckability(true);
+    modelHelperCF->setCheckState(modelIndex, Qt::Checked);
+    Qt::CheckState statutCheck = Qt::Checked;
+    if (modelHelperCF->checkState(modelIndex, statutCheck))
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::setCheckState() failed: "
+                << static_cast<int>(modelHelperCF->checkState(modelIndex, statutCheck))
+                << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelperCF->checkState(modelIndex);
+
+    modelHelperCF->setModel(&modelForce);
+    if (!modelHelperCF->model())
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::setModel() failed: "
+                << "is null" << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelperCF->setCheckState(modelIndex, Qt::Checked);
+    if (modelHelperCF->checkState(modelIndex, statutCheck))
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::setCheckState() failed: "
+                << static_cast<int>(modelHelperCF->checkState(modelIndex, statutCheck))
+                << std::endl;
+      return EXIT_FAILURE;
+      }
+  } // end of local scope
+
+  {
     // Row & Column dummy insert
-  QList<QStandardItem*> col0;
-  col0 << new QStandardItem << new QStandardItem << new QStandardItem;
-  col0[0]->setText("not user checkable");
-  modelForce.appendColumn(col0);
-  modelForce.appendRow(row1);
-
-  delete modelHelperCF;
-
-  ctkCheckableModelHelper* modelHelperRC =
-    new ctkCheckableModelHelper(Qt::Vertical);
-  modelHelperRC->setForceCheckability(true);
-  modelHelperRC->setModel(&modelForce);
-  modelForce.appendColumn(col0);
-  modelForce.appendRow(row1);
-
-  //Header is checked by default
-  model.setHeaderData(0, Qt::Horizontal, Qt::Checked, Qt::CheckStateRole);
-
-  ctkCheckableModelHelper* modelHelper =
-    new ctkCheckableModelHelper(Qt::Horizontal);
-  modelHelper->setModel(&model);
-
-  // propagatetoitems is true by default
-  //modelHelper->setPropagateToItems(true);
-  modelHelper->toggleHeaderCheckState(-1);
-
-  // As propagateToItems is true, once the model is set to the modelHelper,
-  // the checkable header is updated from the check state of all the items
-  // all the items are unchecked by default, so the header becomes unchecked
-  if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "ctkCheckableModelHelper::checkstate() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-  // Retrieve checkstate of the header
-  Qt::CheckState checkstate;
-  if (!modelHelper->headerCheckState(0, checkstate))
-    {
-    std::cerr << "ctkCheckableModelHelper::checkstate() failed: "
-              << static_cast<int>(checkstate) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  if (modelHelper->propagateDepth() == 0)
-    {
-    std::cerr << "ctkCheckableModelHelper::propagateDepth() failed: "
-              << modelHelper->propagateDepth() << std::endl;
-    return EXIT_FAILURE;
-    }
-  modelHelper->setPropagateDepth(0);
-  if (modelHelper->propagateDepth() != 0)
-    {
-    std::cerr << "ctkCheckableModelHelper::propagateDepth() failed: "
-              << modelHelper->propagateDepth() << std::endl;
-    return EXIT_FAILURE;
-    }
-  if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "ctkCheckableModelHelper::propagateToItems() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  // check the header
-  modelHelper->setHeaderCheckState(0, Qt::Checked);
-  
-  // make sure it didn't uncheck the checkable items
-  if (modelHelper->headerCheckState(0) != Qt::Checked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << __LINE__ << " ctkCheckableModelHelper::toggleCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0))
-              << " "        << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
+    QList<QStandardItem*> col0;
+    col0 << new QStandardItem << new QStandardItem << new QStandardItem;
+    col0[0]->setText("not user checkable");
+    modelForce.appendColumn(col0);
+    modelForce.appendRow(row1);
+
+    QScopedPointer<ctkCheckableModelHelper> modelHelperRC(new ctkCheckableModelHelper(Qt::Vertical));
+    modelHelperRC->setForceCheckability(true);
+    modelHelperRC->setModel(&modelForce);
+    modelForce.appendColumn(col0);
+    modelForce.appendRow(row1);
+
+  } // end of local scope
+
+  {
+    // Header is checked by default
+    model.setHeaderData(0, Qt::Horizontal, Qt::Checked, Qt::CheckStateRole);
+
+    QScopedPointer<ctkCheckableModelHelper> modelHelper(new ctkCheckableModelHelper(Qt::Horizontal));
+    modelHelper->setModel(&model);
+
+    // propagatetoitems is true by default
+    //modelHelper->setPropagateToItems(true);
+    modelHelper->toggleHeaderCheckState(-1);
+
+    // As propagateToItems is true, once the model is set to the modelHelper,
+    // the checkable header is updated from the check state of all the items
+    // all the items are unchecked by default, so the header becomes unchecked
+    if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::checkstate() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+    // Retrieve checkstate of the header
+    Qt::CheckState checkstate;
+    if (!modelHelper->headerCheckState(0, checkstate))
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::checkstate() failed: "
+                << static_cast<int>(checkstate) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    if (modelHelper->propagateDepth() == 0)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::propagateDepth() failed: "
+                << modelHelper->propagateDepth() << std::endl;
+      return EXIT_FAILURE;
+      }
+    modelHelper->setPropagateDepth(0);
+    if (modelHelper->propagateDepth() != 0)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::propagateDepth() failed: "
+                << modelHelper->propagateDepth() << std::endl;
+      return EXIT_FAILURE;
+      }
+    if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::propagateToItems() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    // check the header
+    modelHelper->setHeaderCheckState(0, Qt::Checked);
 
-  row0[0]->setCheckState(Qt::Checked);
-  // make sure it didn't uncheck the checkable items
-  if (modelHelper->headerCheckState(0) != Qt::Checked ||
-      row0[0]->checkState() != Qt::Checked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "QStandardItem::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  // The checkable header gets updated with the item check states
-  modelHelper->setPropagateDepth(-1);
-
-  if (modelHelper->propagateDepth() == 0 ||
-      modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
-      row0[0]->checkState() != Qt::Checked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "ctkCheckableModelHelper::setPropagateToItems() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  row0[0]->setCheckState(Qt::Unchecked);
-  
-  if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "QStandardItem::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  row1[0]->setCheckState(Qt::Checked);
-  
     // make sure it didn't uncheck the checkable items
-  if (modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Checked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "QStandardItem::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  row1[0]->setCheckState(Qt::Checked);
-  
-  // make sure it didn't check the checkable items
-  if (modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Checked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "QStandardItem::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  row0[0]->setCheckState(Qt::Checked);
-  row2[0]->setCheckState(Qt::Checked);
-
-  // make sure the header is now checked
-  if (modelHelper->headerCheckState(0) != Qt::Checked ||
-      row0[0]->checkState() != Qt::Checked ||
-      row1[0]->checkState() != Qt::Checked ||
-      row2[0]->checkState() != Qt::Checked)
-    {
-    std::cerr << "QStandardItem::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  modelHelper->setHeaderCheckState(0, Qt::Unchecked);
-    
-  if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
-      row0[0]->checkState() != Qt::Unchecked ||
-      row1[0]->checkState() != Qt::Unchecked ||
-      row2[0]->checkState() != Qt::Unchecked)
-    {
-    std::cerr << "ctkCheckableModelHelper::setCheckState() failed: "
-              << static_cast<int>(modelHelper->headerCheckState(0)) << " "
-              << static_cast<int>(row0[0]->checkState()) << " "
-              << static_cast<int>(row1[0]->checkState()) << " "
-              << static_cast<int>(row2[0]->checkState()) << std::endl;
-    return EXIT_FAILURE;
-    }
-
-  delete modelHelper;
+    if (modelHelper->headerCheckState(0) != Qt::Checked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::toggleCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0))
+                << " "        << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    row0[0]->setCheckState(Qt::Checked);
+    // make sure it didn't uncheck the checkable items
+    if (modelHelper->headerCheckState(0) != Qt::Checked ||
+        row0[0]->checkState() != Qt::Checked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - QStandardItem::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    // The checkable header gets updated with the item check states
+    modelHelper->setPropagateDepth(-1);
+
+    if (modelHelper->propagateDepth() == 0 ||
+        modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
+        row0[0]->checkState() != Qt::Checked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::setPropagateToItems() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    row0[0]->setCheckState(Qt::Unchecked);
+
+    if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - QStandardItem::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    row1[0]->setCheckState(Qt::Checked);
+
+      // make sure it didn't uncheck the checkable items
+    if (modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Checked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - QStandardItem::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    row1[0]->setCheckState(Qt::Checked);
+
+    // make sure it didn't check the checkable items
+    if (modelHelper->headerCheckState(0) != Qt::PartiallyChecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Checked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - QStandardItem::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    row0[0]->setCheckState(Qt::Checked);
+    row2[0]->setCheckState(Qt::Checked);
+
+    // make sure the header is now checked
+    if (modelHelper->headerCheckState(0) != Qt::Checked ||
+        row0[0]->checkState() != Qt::Checked ||
+        row1[0]->checkState() != Qt::Checked ||
+        row2[0]->checkState() != Qt::Checked)
+      {
+      std::cerr << "Line " << __LINE__ << " - QStandardItem::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+
+    modelHelper->setHeaderCheckState(0, Qt::Unchecked);
+
+    if (modelHelper->headerCheckState(0) != Qt::Unchecked ||
+        row0[0]->checkState() != Qt::Unchecked ||
+        row1[0]->checkState() != Qt::Unchecked ||
+        row2[0]->checkState() != Qt::Unchecked)
+      {
+      std::cerr << "Line " << __LINE__ << " - ctkCheckableModelHelper::setCheckState() failed: "
+                << static_cast<int>(modelHelper->headerCheckState(0)) << " "
+                << static_cast<int>(row0[0]->checkState()) << " "
+                << static_cast<int>(row1[0]->checkState()) << " "
+                << static_cast<int>(row2[0]->checkState()) << std::endl;
+      return EXIT_FAILURE;
+      }
+  } // end of local scope
   return EXIT_SUCCESS;
 }