aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qmlnetwork
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qmlnetwork')
-rw-r--r--tests/auto/qmlnetwork/CMakeLists.txt8
-rw-r--r--tests/auto/qmlnetwork/qqmlnetworkinformation/CMakeLists.txt39
-rw-r--r--tests/auto/qmlnetwork/qqmlnetworkinformation/data/tst_networkinformation.qml14
-rw-r--r--tests/auto/qmlnetwork/qqmlnetworkinformation/tst_qqmlnetworkinformation.cpp51
-rw-r--r--tests/auto/qmlnetwork/qqmlsslconfiguration/CMakeLists.txt43
-rw-r--r--tests/auto/qmlnetwork/qqmlsslconfiguration/data/cert.pem34
-rw-r--r--tests/auto/qmlnetwork/qqmlsslconfiguration/data/key.pem52
-rw-r--r--tests/auto/qmlnetwork/qqmlsslconfiguration/qml/tst_sslconfiguration.qml158
-rw-r--r--tests/auto/qmlnetwork/qqmlsslconfiguration/tst_sslconfiguration_qml.cpp6
-rw-r--r--tests/auto/qmlnetwork/qqmlsslkey/CMakeLists.txt29
-rw-r--r--tests/auto/qmlnetwork/qqmlsslkey/qml/tst_sslkey.qml60
-rw-r--r--tests/auto/qmlnetwork/qqmlsslkey/tst_sslkey_qml.cpp6
12 files changed, 500 insertions, 0 deletions
diff --git a/tests/auto/qmlnetwork/CMakeLists.txt b/tests/auto/qmlnetwork/CMakeLists.txt
new file mode 100644
index 0000000000..74cdf06a51
--- /dev/null
+++ b/tests/auto/qmlnetwork/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+add_subdirectory(qqmlnetworkinformation)
+if(QT_FEATURE_qml_ssl)
+ add_subdirectory(qqmlsslconfiguration)
+ add_subdirectory(qqmlsslkey)
+endif()
diff --git a/tests/auto/qmlnetwork/qqmlnetworkinformation/CMakeLists.txt b/tests/auto/qmlnetwork/qqmlnetworkinformation/CMakeLists.txt
new file mode 100644
index 0000000000..a9554a9295
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlnetworkinformation/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if (NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+ cmake_minimum_required(VERSION 3.16)
+ project(tst_qqmlnetworkinformation LANGUAGES C CXX ASM)
+ find_package(Qt6BuildInternals COMPONENTS STANDALONE_TEST)
+endif()
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/data/tst_*)
+list(APPEND test_data ${test_data_glob})
+
+qt_internal_add_test(tst_qqmlnetworkinformation
+ QMLTEST
+ SOURCES
+ tst_qqmlnetworkinformation.cpp
+ LIBRARIES
+ Qt::QmlPrivate
+ Qt::QuickTestUtilsPrivate
+ Qt::Network
+ TESTDATA ${test_data}
+)
+
+if(QT_BUILD_STANDALONE_TESTS)
+ qt_import_qml_plugins(tst_qqmlnetworkinformation)
+endif()
+
+qt_internal_extend_target(tst_qqmlnetworkinformation CONDITION ANDROID OR IOS
+ DEFINES
+ QT_QMLTEST_DATADIR=":/data"
+)
+
+qt_internal_extend_target(tst_qqmlnetworkinformation CONDITION NOT ANDROID AND NOT IOS
+ DEFINES
+ QT_QMLTEST_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
+)
diff --git a/tests/auto/qmlnetwork/qqmlnetworkinformation/data/tst_networkinformation.qml b/tests/auto/qmlnetwork/qqmlnetworkinformation/data/tst_networkinformation.qml
new file mode 100644
index 0000000000..a429e05320
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlnetworkinformation/data/tst_networkinformation.qml
@@ -0,0 +1,14 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQml
+import QtNetwork
+
+QtObject {
+ property int local: NetworkInformation.Reachability.Local
+ property int reachability: NetworkInformation.reachability
+ property bool isBehindCaptivePortal: NetworkInformation.isBehindCaptivePortal
+ property int ethernet: NetworkInformation.TransportMedium.Ethernet
+ property int transportMedium: NetworkInformation.transportMedium
+ property bool isMetered: NetworkInformation.isMetered
+}
diff --git a/tests/auto/qmlnetwork/qqmlnetworkinformation/tst_qqmlnetworkinformation.cpp b/tests/auto/qmlnetwork/qqmlnetworkinformation/tst_qqmlnetworkinformation.cpp
new file mode 100644
index 0000000000..768d751c53
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlnetworkinformation/tst_qqmlnetworkinformation.cpp
@@ -0,0 +1,51 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QQmlEngine>
+#include <QQmlComponent>
+#include <QtNetwork/qnetworkinformation.h>
+#include <QtQuickTestUtils/private/qmlutils_p.h>
+
+class tst_qqmlnetworkinformation : public QQmlDataTest
+{
+ Q_OBJECT
+
+public:
+ explicit tst_qqmlnetworkinformation() : QQmlDataTest(QT_QMLTEST_DATADIR) { }
+
+private Q_SLOTS:
+ void networkInformation();
+};
+
+void tst_qqmlnetworkinformation::networkInformation()
+{
+ QNetworkInformation::loadDefaultBackend();
+ QNetworkInformation *networkinfo = QNetworkInformation::instance();
+#if defined(Q_OS_LINUX) || defined(Q_OS_WIN) || defined(Q_OS_ANDROID) || defined(Q_OS_DARWIN)
+ QVERIFY(networkinfo);
+#else
+ QSKIP("Platform does not provide network information");
+#endif
+
+ QQmlEngine engine;
+ QQmlComponent component(&engine, testFileUrl("tst_networkinformation.qml"));
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
+ QScopedPointer<QObject> object(component.create());
+ QVERIFY(!object.isNull());
+
+ QCOMPARE(object->property("local").toInt(),
+ static_cast<int>(QNetworkInformation::Reachability::Local));
+ QCOMPARE(object->property("reachability").toInt(),
+ static_cast<int>(networkinfo->reachability()));
+ QCOMPARE(object->property("isBehindCaptivePortal").toBool(),
+ networkinfo->isBehindCaptivePortal());
+ QCOMPARE(object->property("ethernet").toInt(),
+ static_cast<int>(QNetworkInformation::TransportMedium::Ethernet));
+ QCOMPARE(object->property("transportMedium").toInt(),
+ static_cast<int>(networkinfo->transportMedium()));
+ QCOMPARE(object->property("isMetered").toBool(), networkinfo->isMetered());
+}
+
+QTEST_MAIN(tst_qqmlnetworkinformation)
+
+#include "tst_qqmlnetworkinformation.moc"
diff --git a/tests/auto/qmlnetwork/qqmlsslconfiguration/CMakeLists.txt b/tests/auto/qmlnetwork/qqmlsslconfiguration/CMakeLists.txt
new file mode 100644
index 0000000000..bc5709dc86
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslconfiguration/CMakeLists.txt
@@ -0,0 +1,43 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+ cmake_minimum_required(VERSION 3.16)
+ project(tst_sslconfiguration_qml LANGUAGES CXX)
+ find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
+endif()
+
+qt_internal_add_test(tst_sslconfiguration_qml
+ QMLTEST
+ SOURCES
+ tst_sslconfiguration_qml.cpp
+ LIBRARIES
+ Qt::Qml
+ Qt::QuickTestUtilsPrivate
+ Qt::QmlNetwork
+)
+
+qt_policy(SET QTP0001 NEW)
+
+qt_add_qml_module(tst_sslconfiguration_qml
+ URI QmlTestUri
+ VERSION 1.0
+ QML_FILES
+ qml/tst_sslconfiguration.qml
+)
+
+set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/data/cert.pem"
+ PROPERTIES QT_RESOURCE_ALIAS data/cert.pem)
+set_source_files_properties("${CMAKE_CURRENT_LIST_DIR}/data/key.pem"
+ PROPERTIES QT_RESOURCE_ALIAS data/key.pem)
+
+qt_add_resources(tst_sslconfiguration_qml
+ "data"
+ PREFIX
+ "/"
+ FILES
+ "${CMAKE_CURRENT_LIST_DIR}/data/cert.pem"
+ "${CMAKE_CURRENT_LIST_DIR}/data/key.pem"
+)
+
+qt_autogen_tools_initial_setup(tst_sslconfiguration_qml)
diff --git a/tests/auto/qmlnetwork/qqmlsslconfiguration/data/cert.pem b/tests/auto/qmlnetwork/qqmlsslconfiguration/data/cert.pem
new file mode 100644
index 0000000000..3fb973e1be
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslconfiguration/data/cert.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF6zCCA9OgAwIBAgIJAMPfLBc9ERZGMA0GCSqGSIb3DQEBCwUAMIGLMQswCQYD
+VQQGEwJERTEPMA0GA1UECAwGQmVybGluMQ8wDQYDVQQHDAZCZXJsaW4xEzARBgNV
+BAoMClF0UHJvdG9idWYxDDAKBgNVBAsMA1JuRDESMBAGA1UEAwwJbG9jYWxob3N0
+MSMwIQYJKoZIhvcNAQkBFhRxdHByb3RvYnVmQGdtYWlsLmNvbTAeFw0xOTA0MjMx
+NTI5MzNaFw0yMDA0MjIxNTI5MzNaMIGLMQswCQYDVQQGEwJERTEPMA0GA1UECAwG
+QmVybGluMQ8wDQYDVQQHDAZCZXJsaW4xEzARBgNVBAoMClF0UHJvdG9idWYxDDAK
+BgNVBAsMA1JuRDESMBAGA1UEAwwJbG9jYWxob3N0MSMwIQYJKoZIhvcNAQkBFhRx
+dHByb3RvYnVmQGdtYWlsLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBANCB7zdc6v+gsYCsGIYsT3iyGPgvFG7cJJWnQO9iW6Tn/kBcreYuCdVSSODK
+/NtPaA1r8j9FCDvLkzewNQ2Idv08/oKBYfOaVtQvh1cn7ktr1usiXtYv16cimeKk
+8iYbiczkZOah2xq+ivm9+05WkYTzcSjBpXg19894024GHd7oRV9G5MCr760k8YLM
+ALnoPpTl0yfs5cEcTybqvZFZNqkHDX2ziEbcF/mVcxcyEsmenbX6MI0easg2qZeq
+Sb7AW7tIMVoWUxDkUIor4vogbgU2IljAjzn0i+fPncB41TU5IiIU35vO67kFBXyI
+Ms3LpN1+Siz5HYHjwaWl0ecebuT83kP33VNc1ULkKJG5UbZUYfgZjUwZPgFFzVzQ
+cif0mhYj9s5Nmn6Q/twxeIXOIZAQdLOq625Wwx8bh+mGaV5mtw3wtXJjbceGa1z/
+Pnni4x2B7IfSiOzGLZZNRRHIjUskeONHUHn8YBrLLg5RT+tvPnGDVPh0cKEH2P4F
+cNRPmaqg75siFoJ+m3DlFM952tRcfzJumgbUfEnrL8bxTZPYVoq22qCDm3UGNW8n
+pthv8Y2hemv6V9lF050z2vpL2DtU9RmtkBWx7ipPUdsEOm4e0rdOCk7zo8IAiWMQ
+6o1L23IPTsqaEpqk3b7tT+5dtLkpeomAT8Hz91ChWUb6jrTVAgMBAAGjUDBOMB0G
+A1UdDgQWBBQIb2RjqkeMsUjH9QJ5BYnAtJ/vojAfBgNVHSMEGDAWgBQIb2RjqkeM
+sUjH9QJ5BYnAtJ/vojAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQDG
+2x+I9C+4XFCpg9KVA+BBi6+7yi4ulH0yv7W3hNWBV2MxTpvVN6RIt8xI1sPFXc2T
+g2wCIAIPGIPNDe8hO3gcfIIe059P+J3ZNjybUg5p6CR9O7kqgqV/nL4gVRuBJeYq
+6YLr1lKL9r3Zdbkq1tcaCaj816zdXVky0us72XP28/xJc96crgKzDI69vESy5jq6
+QT/HoBwYiSaWXNgb0zJzc//e0upXSLeTkYizAJ5OGkQ/MQYE7gDvtPlGVhQ0rnl/
+FLsiZJokuxtLOTvYJ8Gynjz3QwbClN/bmUbOgD0fqW6BEZyZSJ4zCz0BJnwg46gc
+IN+p6vi50MG4ZcJcnMl/3tAxt2RxHNLi0j21NSLyFj60gK+vL3/zzkdYF9ZxX1L+
+dqhTqioCVrV96rJIQbz6JrbFhUCdyEHYG7yi6LxHTUex33XouhGAfZ0lri5wWZq8
+0Rx8PEZ7SbjARtnvA7uXIAfgD+n3oqnkg9IDPH8PbdRcJrAdje3O2c1+OzTAC8ni
+czaCWG748gfZPe0JpENP7P56RTh9avj4sHISCx4r+sh0lruLp2JZPr9qtw09uWlq
+Mn58bcnDu9RjVfPXk43s9WfJC9XII+JoNcW3iJDSHxQb9XLvwR9ntWhkVvOKenPP
+b00kWr6FfId6fiOmUww5WkW+Wtt4XOYsypaN+DskeA==
+-----END CERTIFICATE-----
diff --git a/tests/auto/qmlnetwork/qqmlsslconfiguration/data/key.pem b/tests/auto/qmlnetwork/qqmlsslconfiguration/data/key.pem
new file mode 100644
index 0000000000..176f5210c1
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslconfiguration/data/key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+0mVZG9D69wbsZefVDJii9NLvWThGog==
+-----END PRIVATE KEY-----
diff --git a/tests/auto/qmlnetwork/qqmlsslconfiguration/qml/tst_sslconfiguration.qml b/tests/auto/qmlnetwork/qqmlsslconfiguration/qml/tst_sslconfiguration.qml
new file mode 100644
index 0000000000..f4404e5557
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslconfiguration/qml/tst_sslconfiguration.qml
@@ -0,0 +1,158 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick
+import QtTest
+import QtNetwork
+import QmlTestUri
+
+Item {
+ id: root
+
+ property sslConfiguration userSslObject;
+ property sslConfiguration defaultSslObject;
+ property sslDtlsConfiguration dtlsDefaultSslObj;
+ property sslKey key;
+
+ TestCase {
+ name: "qtSslConfigurationTest"
+
+ function test_1initialization() {
+ userSslObject.peerVerifyMode = SslSocket.QueryPeer
+ userSslObject.peerVerifyDepth = 0
+ userSslObject.protocol = Ssl.TlsV1_2
+ userSslObject.sslOptions = [Ssl.SslOptionDisableEmptyFragments]
+
+ defaultSslObject.peerVerifyMode = SslSocket.VerifyPeer;
+ dtlsDefaultSslObj.peerVerifyMode = SslSocket.VerifyNone;
+
+ key.keyFile = ":/data/key.pem"
+ key.keyAlgorithm = Ssl.Rsa
+ key.keyFormat = Ssl.Pem
+
+ // Call invokable functions for ssl object
+ userSslObject.setCertificateFiles([":/data/cert.pem"])
+ userSslObject.setPrivateKey(key)
+ }
+
+ function test_sslEnumsFields_data() {
+ return [
+ // enum SslProtocol
+ { tag: "SslProtocol.TlsV1_2OrLater",
+ field: Ssl.TlsV1_2OrLater, answer: 7 },
+ { tag: "SslProtocol.DtlsV1_2",
+ field: Ssl.DtlsV1_2, answer: 10 },
+ { tag: "SslProtocol.DtlsV1_2OrLater",
+ field: Ssl.DtlsV1_2OrLater, answer: 11},
+ { tag: "SslProtocol.TlsV1_3",
+ field: Ssl.TlsV1_3, answer: 12 },
+ { tag: "SslProtocol.TlsV1_3OrLater",
+ field: Ssl.TlsV1_3OrLater, answer: 13 },
+ { tag: "SslProtocol.UnknownProtocol",
+ field: Ssl.UnknownProtocol, answer: -1 },
+
+ // enum EncodingFormat
+ { tag: "EncodingFormat.Pem",
+ field: Ssl.Pem, answer: 0 },
+ { tag: "EncodingFormat.Der",
+ field: Ssl.Der, answer: 1 },
+
+ // enum KeyType
+ { tag: "KeyType.key",
+ field: Ssl.PrivateKey, answer: 0 },
+ { tag: "KeyType.PublicKey",
+ field: Ssl.PublicKey, answer: 1 },
+
+ //enum KeyAlgorithm
+ { tag: "KeyAlgorithm.Opaque",
+ field: Ssl.Opaque, answer: 0 },
+ { tag: "KeyAlgorithm.Rsa",
+ field: Ssl.Rsa, answer: 1 },
+ { tag: "KeyAlgorithm.Dsa",
+ field: Ssl.Dsa, answer: 2 },
+ { tag: "KeyAlgorithm.Ec",
+ field: Ssl.Ec, answer: 3 },
+ { tag: "KeyAlgorithm.Dh",
+ field: Ssl.Dh, answer: 4 },
+
+ // enum SslOption
+ { tag: "SslOption.SslOptionDisableEmptyFragments",
+ field: Ssl.SslOptionDisableEmptyFragments, answer: 0x01 },
+ { tag: "SslOption.SslOptionDisableSessionTickets",
+ field: Ssl.SslOptionDisableSessionTickets, answer: 0x02 },
+ { tag: "SslOption.SslOptionDisableCompression",
+ field: Ssl.SslOptionDisableCompression, answer: 0x04 },
+ { tag: "SslOption.SslOptionDisableServerNameIndication",
+ field: Ssl.SslOptionDisableServerNameIndication, answer: 0x08 },
+ { tag: "SslOption.SslOptionDisableLegacyRenegotiation",
+ field: Ssl.SslOptionDisableLegacyRenegotiation, answer: 0x10 },
+ { tag: "SslOption.SslOptionDisableSessionSharing",
+ field: Ssl.SslOptionDisableSessionSharing, answer: 0x20 },
+ { tag: "SslOption.SslOptionDisableSessionPersistence",
+ field: Ssl.SslOptionDisableSessionPersistence, answer: 0x40 },
+ { tag: "SslOption.SslOptionDisableServerCipherPreference",
+ field: Ssl.SslOptionDisableServerCipherPreference, answer: 0x80 },
+
+ // enum PeerVerifyMode
+ { tag: "PeerVerifyMode.VerifyNone",
+ field: SslSocket.VerifyNone, answer: 0 },
+ { tag: "PeerVerifyMode.QueryPeer",
+ field: SslSocket.QueryPeer, answer: 1 },
+ { tag: "PeerVerifyMode.VerifyPeer",
+ field: SslSocket.VerifyPeer, answer: 2 },
+ { tag: "PeerVerifyMode.AutoVerifyPeer",
+ field: SslSocket.AutoVerifyPeer, answer: 3 }
+ ]
+ }
+
+ function test_sslEnumsFields(data) {
+ compare(data.field, data.answer)
+ }
+
+ function test_sslConfigurationFields_data() {
+ return [
+ { tag: "userSslObject is creatable object",
+ field: typeof userSslObject, answer: "object" },
+ { tag: "defaultSslObject is creatable object",
+ field: typeof defaultSslObject, answer: "object" },
+ { tag: "dtlsDefaultSslObj is creatable object",
+ field: typeof dtlsDefaultSslObj, answer: "object" },
+ { tag: "key is creatable object",
+ field: typeof key, answer: "object" },
+ { tag: "userSslObject.sslOptions is creatable object",
+ field: typeof userSslObject.sslOptions,
+ answer: "object" },
+
+ // userSslObject
+ { tag: "userSslObject.peerVerifyMode == Ssl.QueryPeer",
+ field: userSslObject.peerVerifyMode, answer: SslSocket.QueryPeer },
+ // defaultSslObject
+ { tag: "defaultSslObject.peerVerifyMode == Ssl.VerifyPeer",
+ field: defaultSslObject.peerVerifyMode, answer: SslSocket.VerifyPeer },
+ // dtlsDefaultSslObj
+ { tag: "dtlsDefaultSslObj.peerVerifyMode == Ssl.VerifyNone",
+ field: dtlsDefaultSslObj.peerVerifyMode,
+ answer: SslSocket.VerifyNone },
+
+ // userSslObject
+ { tag: "userSslObject.peerVerifyDepth == 0",
+ field: userSslObject.peerVerifyDepth, answer: 0 },
+ { tag: "userSslObject.sslOptions == Ssl.SslOptionDisableEmptyFragments",
+ field: userSslObject.sslOptions[0],
+ answer: Ssl.SslOptionDisableEmptyFragments },
+ { tag: "SSL configuration protocol == SslProtocol.TlsV1_2",
+ field: userSslObject.protocol, answer: Ssl.TlsV1_2 },
+ { tag: "key.keyFile == :/data/key.pem",
+ field: key.keyFile, answer: ":/data/key.pem" },
+ { tag: "key.keyAlgorithm == Ssl.Rsa",
+ field: key.keyAlgorithm, answer: Ssl.Rsa },
+ { tag: "key.keyFormat == Ssl.Pem",
+ field: key.keyFormat, answer: Ssl.Pem }
+ ]
+ }
+
+ function test_sslConfigurationFields(data) {
+ compare(data.field, data.answer)
+ }
+ }
+}
diff --git a/tests/auto/qmlnetwork/qqmlsslconfiguration/tst_sslconfiguration_qml.cpp b/tests/auto/qmlnetwork/qqmlsslconfiguration/tst_sslconfiguration_qml.cpp
new file mode 100644
index 0000000000..eded07c9ac
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslconfiguration/tst_sslconfiguration_qml.cpp
@@ -0,0 +1,6 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtQuickTest>
+
+QUICK_TEST_MAIN(tst_sslconfiguration_qml)
diff --git a/tests/auto/qmlnetwork/qqmlsslkey/CMakeLists.txt b/tests/auto/qmlnetwork/qqmlsslkey/CMakeLists.txt
new file mode 100644
index 0000000000..eb9562add6
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslkey/CMakeLists.txt
@@ -0,0 +1,29 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+ cmake_minimum_required(VERSION 3.16)
+ project(tst_sslkey_qml LANGUAGES CXX)
+ find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
+endif()
+
+qt_internal_add_test(tst_sslkey_qml
+ QMLTEST
+ SOURCES
+ tst_sslkey_qml.cpp
+ LIBRARIES
+ Qt::Qml
+ Qt::QuickTestUtilsPrivate
+ Qt::QmlNetwork
+)
+
+qt_policy(SET QTP0001 NEW)
+
+qt_add_qml_module(tst_sslkey_qml
+ URI QmlTestUri
+ VERSION 1.0
+ QML_FILES
+ qml/tst_sslkey.qml
+)
+
+qt_autogen_tools_initial_setup(tst_sslkey_qml)
diff --git a/tests/auto/qmlnetwork/qqmlsslkey/qml/tst_sslkey.qml b/tests/auto/qmlnetwork/qqmlsslkey/qml/tst_sslkey.qml
new file mode 100644
index 0000000000..3b4aab2ec6
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslkey/qml/tst_sslkey.qml
@@ -0,0 +1,60 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick
+import QtTest
+import QtNetwork
+import QmlTestUri
+
+Item {
+ id: root
+
+ property sslKey keyFirst;
+ property sslKey keySecond;
+
+ TestCase {
+ name: "qtSslKeyTest"
+
+ function test_1initialization() {
+ keyFirst.keyFile = ":/assets/key.pem"
+ keyFirst.keyAlgorithm = Ssl.Rsa
+ keyFirst.keyFormat = Ssl.Pem
+ keyFirst.keyType = Ssl.PrivateKey
+
+ keySecond = keyFirst;
+ }
+
+ function test_sslConfigurationFields_data() {
+ return [
+ { tag: "key is creatable object",
+ field: typeof keyFirst, answer: "object" },
+ { tag: "keySecond is creatable object",
+ field: typeof keySecond, answer: "object" },
+
+ // key values
+ { tag: "keyFirst.keyFile == :/assets/key.pem",
+ field: keyFirst.keyFile, answer: ":/assets/key.pem" },
+ { tag: "keyFirst.keyAlgorithm == Ssl.Rsa",
+ field: keyFirst.keyAlgorithm, answer: Ssl.Rsa },
+ { tag: "keyFirst.keyFormat == Ssl.Pem",
+ field: keyFirst.keyFormat, answer: Ssl.Pem },
+ { tag: "keyFirst.keyType == Ssl.PrivateKey",
+ field: keyFirst.keyType, answer: Ssl.PrivateKey },
+
+ // keySecond values
+ { tag: "keySecond.keyFile == :/assets/key.pem",
+ field: keySecond.keyFile, answer: ":/assets/key.pem" },
+ { tag: "keySecond.keyAlgorithm == Ssl.Rsa",
+ field: keySecond.keyAlgorithm, answer: Ssl.Rsa },
+ { tag: "keySecond.keyFormat == Ssl.Pem",
+ field: keySecond.keyFormat, answer: Ssl.Pem },
+ { tag: "keySecond.keyType == Ssl.PrivateKey",
+ field: keySecond.keyType, answer: Ssl.PrivateKey }
+ ]
+ }
+
+ function test_sslConfigurationFields(data) {
+ compare(data.field, data.answer)
+ }
+ }
+}
diff --git a/tests/auto/qmlnetwork/qqmlsslkey/tst_sslkey_qml.cpp b/tests/auto/qmlnetwork/qqmlsslkey/tst_sslkey_qml.cpp
new file mode 100644
index 0000000000..9369c356d8
--- /dev/null
+++ b/tests/auto/qmlnetwork/qqmlsslkey/tst_sslkey_qml.cpp
@@ -0,0 +1,6 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtQuickTest>
+
+QUICK_TEST_MAIN(tst_sslkey_qml)