1/****************************************************************************
2**
3** Copyright (C) 2017 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the test suite of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28
29#include <QtNetworkAuth/qoauthhttpserverreplyhandler.h>
30
31#include <QtCore>
32#include <QtTest>
33#include <QtNetwork>
34
35typedef QSharedPointer<QNetworkReply> QNetworkReplyPtr;
36
37class tst_QOAuthHttpServerReplyHandler : public QObject
38{
39 Q_OBJECT
40
41private Q_SLOTS:
42 void callback();
43};
44
45void tst_QOAuthHttpServerReplyHandler::callback()
46{
47 int count = 0;
48 QOAuthHttpServerReplyHandler replyHandler;
49 QUrlQuery query("callback=test");
50 QVERIFY(replyHandler.isListening());
51 QUrl callback(replyHandler.callback());
52 QVERIFY(!callback.isEmpty());
53 callback.setQuery(query);
54 QEventLoop eventLoop;
55 connect(sender: &replyHandler, signal: &QOAuthHttpServerReplyHandler::callbackReceived, slot: [&](
56 const QVariantMap &parameters) {
57 for (auto item : query.queryItems()) {
58 QVERIFY(parameters.contains(item.first));
59 QCOMPARE(parameters[item.first].toString(), item.second);
60 }
61 count = parameters.count();
62 eventLoop.quit();
63 });
64
65 QNetworkAccessManager networkAccessManager;
66 QNetworkRequest request;
67 request.setUrl(callback);
68 QNetworkReplyPtr reply;
69 reply.reset(t: networkAccessManager.get(request));
70 eventLoop.exec();
71 QCOMPARE(count, query.queryItems().count());
72}
73
74QTEST_MAIN(tst_QOAuthHttpServerReplyHandler)
75#include "tst_oauthhttpserverreplyhandler.moc"
76

source code of qtnetworkauth/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp