Преглед на файлове

BUG: ctkDICOMBrowserTest: Add testImportDirectoryMode

Jean-Christophe Fillion-Robin преди 7 години
родител
ревизия
f7881c2eb2
променени са 3 файла, в които са добавени 41 реда и са изтрити 2 реда
  1. 26 0
      Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMBrowserTest.cpp
  2. 7 0
      Libs/DICOM/Widgets/ctkDICOMBrowser.cpp
  3. 8 2
      Libs/DICOM/Widgets/ctkDICOMBrowser.h

+ 26 - 0
Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMBrowserTest.cpp

@@ -20,11 +20,13 @@
 
 // Qt includes
 #include <QApplication>
+#include <QComboBox>
 #include <QTest>
 
 // CTK includes
 #include "ctkDICOMDatabase.h"
 #include "ctkDICOMBrowser.h"
+#include "ctkFileDialog.h"
 #include "ctkScopedCurrentDir.h"
 #include "ctkTest.h"
 #include "ctkUtils.h"
@@ -42,6 +44,8 @@ private slots:
 
   void testDatabaseDirectory();
 
+  void testImportDirectoryMode();
+
   void testImportDirectories();
   void testImportDirectories_data();
 
@@ -134,6 +138,28 @@ void ctkDICOMBrowserTester::testDatabaseDirectory()
 }
 
 // ----------------------------------------------------------------------------
+void ctkDICOMBrowserTester::testImportDirectoryMode()
+{
+  QSettings().setValue(ctkDICOMBrowser::databaseDirectorySettingsKey(), this->TemporaryDatabaseDirectoryName);
+
+  ctkDICOMBrowser browser;
+
+  browser.setImportDirectoryMode(ctkDICOMBrowser::ImportDirectoryCopy);
+  QCOMPARE(browser.importDirectoryMode(), ctkDICOMBrowser::ImportDirectoryCopy);
+
+  browser.setImportDirectoryMode(ctkDICOMBrowser::ImportDirectoryAddLink);
+  QCOMPARE(browser.importDirectoryMode(), ctkDICOMBrowser::ImportDirectoryAddLink);
+
+  QComboBox* comboBox = browser.importDialog()->bottomWidget()->findChild<QComboBox*>();
+
+  comboBox->setCurrentIndex(comboBox->findData(ctkDICOMBrowser::ImportDirectoryCopy));
+  QCOMPARE(browser.importDirectoryMode(), ctkDICOMBrowser::ImportDirectoryCopy);
+
+  comboBox->setCurrentIndex(comboBox->findData(ctkDICOMBrowser::ImportDirectoryAddLink));
+  QCOMPARE(browser.importDirectoryMode(), ctkDICOMBrowser::ImportDirectoryAddLink);
+}
+
+// ----------------------------------------------------------------------------
 void ctkDICOMBrowserTester::testImportDirectories()
 {
   QFETCH(QStringList, directories);

+ 7 - 0
Libs/DICOM/Widgets/ctkDICOMBrowser.cpp

@@ -765,6 +765,13 @@ void ctkDICOMBrowserPrivate::importOldSettings()
 }
 
 //----------------------------------------------------------------------------
+ctkFileDialog* ctkDICOMBrowser::importDialog() const
+{
+  Q_D(const ctkDICOMBrowser);
+  return d->ImportDialog;
+}
+
+//----------------------------------------------------------------------------
 ctkDICOMBrowser::ImportDirectoryMode ctkDICOMBrowser::importDirectoryMode()const
 {
   Q_D(const ctkDICOMBrowser);

+ 8 - 2
Libs/DICOM/Widgets/ctkDICOMBrowser.h

@@ -28,11 +28,12 @@
 #include "ctkDICOMWidgetsExport.h"
 
 class ctkDICOMBrowserPrivate;
+class ctkDICOMDatabase;
+class ctkDICOMTableManager;
+class ctkFileDialog;
 class ctkThumbnailLabel;
 class QMenu;
 class QModelIndex;
-class ctkDICOMDatabase;
-class ctkDICOMTableManager;
 
 /// \ingroup DICOM_Widgets
 ///
@@ -113,6 +114,11 @@ public:
   /// \sa setImportDirectoryMode(ctkDICOMBrowser::ImportDirectoryMode)
   ctkDICOMBrowser::ImportDirectoryMode importDirectoryMode()const;
 
+  /// \brief Return instance of import dialog.
+  ///
+  /// \internal
+  Q_INVOKABLE ctkFileDialog* importDialog()const;
+
 public Q_SLOTS:
 
   /// \brief Set value of ImportDirectoryMode settings.