summaryrefslogtreecommitdiffstats
path: root/examples/widgets/itemviews/editabletreemodel
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-11-28 13:57:47 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-12-06 18:22:41 +0100
commit283cdcd3d5fad368c9df1bcae69cbfbf9ade623f (patch)
treea3bd5e38cfde5e8027c044e3cb12da8fbf5c427b /examples/widgets/itemviews/editabletreemodel
parentd50b56b47544ad2b72811045f64df24eaaf0cf59 (diff)
EditableTreeModel: Add a test
Add a test running QAbstractItemModelTester on the model. Pick-to: 6.6 Change-Id: I40c141c7e754ca05234da611534bd65e456be2fb Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Diffstat (limited to 'examples/widgets/itemviews/editabletreemodel')
-rw-r--r--examples/widgets/itemviews/editabletreemodel/CMakeLists.txt28
-rw-r--r--examples/widgets/itemviews/editabletreemodel/test.cpp37
2 files changed, 64 insertions, 1 deletions
diff --git a/examples/widgets/itemviews/editabletreemodel/CMakeLists.txt b/examples/widgets/itemviews/editabletreemodel/CMakeLists.txt
index eb616b9f85..9c98b49626 100644
--- a/examples/widgets/itemviews/editabletreemodel/CMakeLists.txt
+++ b/examples/widgets/itemviews/editabletreemodel/CMakeLists.txt
@@ -10,7 +10,7 @@ endif()
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/itemviews/editabletreemodel")
-find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Test Widgets)
qt_standard_project_setup()
@@ -49,3 +49,29 @@ install(TARGETS editabletreemodel
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
)
+
+#! [1]
+# Unit Test
+
+include(CTest)
+
+qt_add_executable(editabletreemodel_tester
+ test.cpp
+ treeitem.cpp treeitem.h
+ treemodel.cpp treemodel.h)
+
+target_link_libraries(editabletreemodel_tester PRIVATE
+ Qt6::Core
+ Qt6::Test
+)
+
+qt_add_resources(editabletreemodel_tester "editabletreemodel"
+ PREFIX
+ "/"
+ FILES
+ ${editabletreemodel_resource_files}
+)
+
+add_test(NAME editabletreemodel_tester
+ COMMAND editabletreemodel_tester)
+#! [1]
diff --git a/examples/widgets/itemviews/editabletreemodel/test.cpp b/examples/widgets/itemviews/editabletreemodel/test.cpp
new file mode 100644
index 0000000000..c041fe9402
--- /dev/null
+++ b/examples/widgets/itemviews/editabletreemodel/test.cpp
@@ -0,0 +1,37 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#include "treemodel.h"
+
+#include <QAbstractItemModelTester>
+#include <QObject>
+#include <QTest>
+
+using namespace Qt::StringLiterals;
+
+//! [1]
+class TestEditableTreeModel : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testTreeModel();
+};
+
+void TestEditableTreeModel::testTreeModel()
+{
+ constexpr auto fileName = ":/default.txt"_L1;
+ QFile file(fileName);
+ QVERIFY2(file.open(QIODevice::ReadOnly | QIODevice::Text),
+ qPrintable(fileName + " cannot be opened: "_L1 + file.errorString()));
+
+ const QStringList headers{"column1"_L1, "column2"_L1};
+ TreeModel model(headers, QString::fromUtf8(file.readAll()));
+
+ QAbstractItemModelTester tester(&model);
+}
+
+QTEST_APPLESS_MAIN(TestEditableTreeModel)
+
+#include "test.moc"
+//! [1]