diff options
author | Vijith Kini <vijith@claysol.com> | 2019-02-19 19:51:34 +0530 |
---|---|---|
committer | Vijith Kini <vijith@claysol.com> | 2019-02-20 18:29:35 +0000 |
commit | 53c30cd29e9cad2003d10bbb57365d7ef61d6a4d (patch) | |
tree | f6bc609c84a867a07e2c5ac65e3abbbb0eb410dd /tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp | |
parent | 05369331163c3c07907c2caed98e3eaabbdfe023 (diff) |
Add client certificate store test cases
Change-Id: Ib8fdfdd21c064f31acfcf8ce2cf840463d10c07e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp')
-rw-r--r-- | tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp b/tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp new file mode 100644 index 000000000..5c4d82f46 --- /dev/null +++ b/tests/auto/core/qwebengineclientcertificatestore/tst_qwebengineclientcertificatestore.cpp @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtWebEngineCore/qwebengineclientcertificatestore.h> + +class tst_QWebEngineClientCertificateStore : public QObject +{ + Q_OBJECT + +public: + tst_QWebEngineClientCertificateStore(); + ~tst_QWebEngineClientCertificateStore(); + +private Q_SLOTS: + void addAndListCertificates(); + void removeAndClearCertificates(); +}; + +tst_QWebEngineClientCertificateStore::tst_QWebEngineClientCertificateStore() +{ +} + +tst_QWebEngineClientCertificateStore::~tst_QWebEngineClientCertificateStore() +{ +} + +void tst_QWebEngineClientCertificateStore::addAndListCertificates() +{ + // Load QSslCertificate + QFile certFile(":/resources/certificate.crt"); + certFile.open(QIODevice::ReadOnly); + const QSslCertificate cert(certFile.readAll(), QSsl::Pem); + + // Load QSslKey + QFile keyFile(":/resources/privatekey.key"); + keyFile.open(QIODevice::ReadOnly); + const QSslKey sslKey(keyFile.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, ""); + + // Load second QSslCertificate + QFile certFileSecond(":/resources/certificate1.crt"); + certFileSecond.open(QIODevice::ReadOnly); + const QSslCertificate certSecond(certFileSecond.readAll(), QSsl::Pem); + + // Load second QSslKey + QFile keyFileSecond(":/resources/privatekey1.key"); + keyFileSecond.open(QIODevice::ReadOnly); + const QSslKey sslKeySecond(keyFileSecond.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, ""); + + // Add certificates to in-memory store + QWebEngineClientCertificateStore::getInstance()->add(cert, sslKey); + QWebEngineClientCertificateStore::getInstance()->add(certSecond, sslKeySecond); + + QCOMPARE(2, QWebEngineClientCertificateStore::getInstance()->toList().length()); +} + +void tst_QWebEngineClientCertificateStore::removeAndClearCertificates() +{ + QCOMPARE(2, QWebEngineClientCertificateStore::getInstance()->toList().length()); + + // Remove one certificate from in-memory store + auto list = QWebEngineClientCertificateStore::getInstance()->toList(); + QWebEngineClientCertificateStore::getInstance()->remove(list[0]); + QCOMPARE(1, QWebEngineClientCertificateStore::getInstance()->toList().length()); + + // Remove all certificates in-memory store + QWebEngineClientCertificateStore::getInstance()->clear(); + QCOMPARE(0, QWebEngineClientCertificateStore::getInstance()->toList().length()); +} + +QTEST_MAIN(tst_QWebEngineClientCertificateStore) +#include "tst_qwebengineclientcertificatestore.moc" |