Browse Source

Add more code coverage to ctkColorDialog

Julien Finet 14 years ago
parent
commit
e347f5e0b4

+ 2 - 0
Libs/Widgets/Testing/Cpp/CMakeLists.txt

@@ -11,6 +11,7 @@ CREATE_TEST_SOURCELIST(Tests ${KIT}CppTests.cxx
   ctkCollapsibleButtonTest1.cpp
   ctkCollapsibleButtonTest1.cpp
   ctkCollapsibleGroupBoxTest1.cpp
   ctkCollapsibleGroupBoxTest1.cpp
   ctkColorDialogTest1.cpp
   ctkColorDialogTest1.cpp
+  ctkColorDialogTest2.cpp
   ctkColorPickerButtonTest1.cpp
   ctkColorPickerButtonTest1.cpp
   ctkComboBoxTest1.cpp
   ctkComboBoxTest1.cpp
   ctkConfirmExitDialogTest1.cpp
   ctkConfirmExitDialogTest1.cpp
@@ -88,6 +89,7 @@ SIMPLE_TEST( ctkCheckablePushButtonTest1 )
 SIMPLE_TEST( ctkCollapsibleButtonTest1 )
 SIMPLE_TEST( ctkCollapsibleButtonTest1 )
 SIMPLE_TEST( ctkCollapsibleGroupBoxTest1 )
 SIMPLE_TEST( ctkCollapsibleGroupBoxTest1 )
 SIMPLE_TEST( ctkColorDialogTest1 )
 SIMPLE_TEST( ctkColorDialogTest1 )
+SIMPLE_TEST( ctkColorDialogTest2 )
 SIMPLE_TEST( ctkColorPickerButtonTest1 )
 SIMPLE_TEST( ctkColorPickerButtonTest1 )
 SIMPLE_TEST( ctkComboBoxTest1 )
 SIMPLE_TEST( ctkComboBoxTest1 )
 SIMPLE_TEST( ctkConfirmExitDialogTest1 )
 SIMPLE_TEST( ctkConfirmExitDialogTest1 )

+ 48 - 7
Libs/Widgets/Testing/Cpp/ctkColorDialogTest1.cpp

@@ -20,10 +20,11 @@
 
 
 // Qt includes
 // Qt includes
 #include <QApplication>
 #include <QApplication>
-#include <QCheckBox>
+#include <QTimer>
 
 
 // CTK includes
 // CTK includes
 #include "ctkColorDialog.h"
 #include "ctkColorDialog.h"
+#include "ctkColorPickerButton.h"
 
 
 // STD includes
 // STD includes
 #include <cstdlib>
 #include <cstdlib>
@@ -35,21 +36,61 @@ int ctkColorDialogTest1(int argc, char * argv [] )
   QApplication app(argc, argv);
   QApplication app(argc, argv);
 
 
   ctkColorDialog colorDialog;
   ctkColorDialog colorDialog;
-  QWidget* extraPanel = new QWidget;
+  ctkColorDialog colorDialog1(Qt::red);
+
+  ctkColorPickerButton* extraPanel = new ctkColorPickerButton;
+  QObject::connect(extraPanel, SIGNAL(colorChanged(QColor)),
+                   &colorDialog, SLOT(setColor(QColor)));
   colorDialog.addTab(extraPanel, "Extra");
   colorDialog.addTab(extraPanel, "Extra");
-  if (extraPanel != colorDialog.widget(0))
+  int index = colorDialog.indexOf(extraPanel);
+  if (index != 0 ||
+      extraPanel != colorDialog.widget(index) ||
+      colorDialog.widget(-1) != 0)
     {
     {
+    std::cerr << "ctkColorDialog::addTab failed" << std::endl;
     return EXIT_FAILURE;
     return EXIT_FAILURE;
     }
     }
-  // the following is only in interactive mode
-  if (argc < 2 || QString(argv[1]) != "-I" )
+
+  // fake removeTab
+  colorDialog.removeTab(-1);
+  index = colorDialog.indexOf(extraPanel);
+  if (index != 0 ||
+      colorDialog.widget(0) != extraPanel)
     {
     {
-    return EXIT_SUCCESS;
+    std::cerr << "ctkColorDialog::removeTab failed" << std::endl;
+    return EXIT_FAILURE;
     }
     }
- if (!colorDialog.exec())
+
+  // true removeTab  
+  colorDialog.removeTab(index);
+  index = colorDialog.indexOf(extraPanel);
+  if (index != -1 ||
+      colorDialog.widget(0) != 0)
     {
     {
+    std::cerr << "ctkColorDialog::removeTab failed" << std::endl;
     return EXIT_FAILURE;
     return EXIT_FAILURE;
     }
     }
+
+  // Add the panel back
+  colorDialog.addTab(extraPanel, "Extra chooser");
+  extraPanel->setColor(Qt::darkBlue);
+
+  if (colorDialog.currentColor() != Qt::darkBlue)
+    {
+    std::cerr << "ctkColorDialog::setColor failed" << std::endl;
+    return EXIT_FAILURE;
+    }
+
+  colorDialog.open();
+
+  // the following is only in interactive mode
+  if (argc < 2 || QString(argv[1]) != "-I" )
+    {
+    QTimer::singleShot(200, &colorDialog, SLOT(accept()));
+    }
+
+  return app.exec();
+
   ctkColorDialog::addDefaultTab(extraPanel, "Extra");
   ctkColorDialog::addDefaultTab(extraPanel, "Extra");
   QColor color = ctkColorDialog::getColor(Qt::black,0 , "", 0);
   QColor color = ctkColorDialog::getColor(Qt::black,0 , "", 0);
   return EXIT_SUCCESS;
   return EXIT_SUCCESS;

+ 51 - 0
Libs/Widgets/Testing/Cpp/ctkColorDialogTest2.cpp

@@ -0,0 +1,51 @@
+/*=========================================================================
+
+  Library:   CTK
+
+  Copyright (c) Kitware Inc.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.commontk.org/LICENSE
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=========================================================================*/
+
+// Qt includes
+#include <QApplication>
+#include <QTimer>
+// CTK includes
+#include "ctkColorDialog.h"
+#include "ctkColorPickerButton.h"
+
+// STD includes
+#include <cstdlib>
+#include <iostream>
+
+//-----------------------------------------------------------------------------
+int ctkColorDialogTest2(int argc, char * argv [] )
+{
+  QApplication app(argc, argv);
+
+  ctkColorPickerButton* extraPanel = new ctkColorPickerButton;
+  ctkColorDialog::addDefaultTab(extraPanel, "Extra", SIGNAL(colorChanged(QColor)));
+
+  if (argc < 2 || QString(argv[1]) != "-I" )
+    {
+    // quit for the first event loop of the opened dialog
+    QTimer::singleShot(200, &app, SLOT(quit()));
+    // quit the application
+    QTimer::singleShot(300, &app, SLOT(quit()));
+    }
+
+  QColor color = ctkColorDialog::getColor(Qt::black,0 , "", 0);
+  
+  return app.exec();
+}

+ 1 - 1
Libs/Widgets/Testing/Cpp/ctkConfirmExitDialogTest1.cpp

@@ -84,7 +84,7 @@ int ctkConfirmExitDialogTest1(int argc, char * argv [] )
   confirmDialog.setDontShowAnymore(false);
   confirmDialog.setDontShowAnymore(false);
   // modal dialog
   // modal dialog
   confirmDialog.open();
   confirmDialog.open();
-  // the following is only in interactive mode
+
   if (argc < 2 || QString(argv[1]) != "-I" )
   if (argc < 2 || QString(argv[1]) != "-I" )
     {
     {
     QTimer::singleShot(200, &confirmDialog, SLOT(accept()));
     QTimer::singleShot(200, &confirmDialog, SLOT(accept()));