summaryrefslogtreecommitdiff
path: root/tests/auto
diff options
context:
space:
mode:
authorKurt Pattyn <pattyn.kurt@gmail.com>2014-02-12 15:17:58 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-15 14:40:02 +0100
commit45eadd663ff22df46fadf03c45db7e058e71e476 (patch)
tree896959f43e107cd446b3e948a295e0a7661d4f47 /tests/auto
parentabb6912c11dc322718724eb11e70617d8428b6f5 (diff)
downloadqtwebsockets-45eadd663ff22df46fadf03c45db7e058e71e476.tar.gz
Add user configurable mask generation
Created a QMaskGenerator abstract base class to serve as a basis for user specific mask generators. Added the possibility to override the default mask generation in QWebSocket. Change-Id: Iaa02b44193f854d103b5f352617789175fe61f89 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/auto.pro3
-rw-r--r--tests/auto/qdefaultmaskgenerator/qdefaultmaskgenerator.pro14
-rw-r--r--tests/auto/qdefaultmaskgenerator/tst_defaultmaskgenerator.cpp158
3 files changed, 174 insertions, 1 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 34b232b..31900a4 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -7,7 +7,8 @@ contains(QT_CONFIG, private_tests): SUBDIRS += \
websocketprotocol \
dataprocessor \
websocketframe \
- handshakerequest
+ handshakerequest \
+ qdefaultmaskgenerator
SUBDIRS += \
qwebsocket \
diff --git a/tests/auto/qdefaultmaskgenerator/qdefaultmaskgenerator.pro b/tests/auto/qdefaultmaskgenerator/qdefaultmaskgenerator.pro
new file mode 100644
index 0000000..1ddccb3
--- /dev/null
+++ b/tests/auto/qdefaultmaskgenerator/qdefaultmaskgenerator.pro
@@ -0,0 +1,14 @@
+CONFIG += console
+CONFIG += testcase c++11
+CONFIG -= app_bundle
+
+TEMPLATE = app
+
+TARGET = tst_defaultmaskgenerator
+
+QT = core testlib websockets websockets-private
+
+SOURCES += tst_defaultmaskgenerator.cpp
+
+requires(contains(QT_CONFIG, private_tests))
+DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qdefaultmaskgenerator/tst_defaultmaskgenerator.cpp b/tests/auto/qdefaultmaskgenerator/tst_defaultmaskgenerator.cpp
new file mode 100644
index 0000000..46e6d61
--- /dev/null
+++ b/tests/auto/qdefaultmaskgenerator/tst_defaultmaskgenerator.cpp
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtTest/QtTest>
+#include <QtTest/qtestcase.h>
+#include <QtTest/QSignalSpy>
+#include <QtCore/QBuffer>
+#include <QtCore/QByteArray>
+#include <QtCore/QDebug>
+
+#include "private/qdefaultmaskgenerator_p.h"
+
+QT_USE_NAMESPACE
+
+class tst_QDefaultMaskGenerator : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QDefaultMaskGenerator();
+
+private Q_SLOTS:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+ void tst_randomnessWithoutSeed();
+ void tst_randomnessWithSeed();
+
+private:
+};
+
+
+
+tst_QDefaultMaskGenerator::tst_QDefaultMaskGenerator()
+{
+}
+
+void tst_QDefaultMaskGenerator::initTestCase()
+{
+}
+
+void tst_QDefaultMaskGenerator::cleanupTestCase()
+{
+}
+
+void tst_QDefaultMaskGenerator::init()
+{
+}
+
+void tst_QDefaultMaskGenerator::cleanup()
+{
+}
+
+void tst_QDefaultMaskGenerator::tst_randomnessWithoutSeed()
+{
+ //generate two series of data, and see if they differ
+ {
+ QDefaultMaskGenerator generator;
+
+ QVector<quint32> series1, series2;
+ for (int i = 0; i < 1000; ++i)
+ series1 << generator.nextMask();
+ for (int i = 0; i < 1000; ++i)
+ series2 << generator.nextMask();
+
+ QVERIFY(series1 != series2);
+ }
+}
+
+void tst_QDefaultMaskGenerator::tst_randomnessWithSeed()
+{
+ //generate two series of data, and see if they differ
+ //the generator is seeded
+ {
+ QDefaultMaskGenerator generator;
+ generator.seed();
+
+ QVector<quint32> series1, series2;
+ for (int i = 0; i < 1000; ++i)
+ series1 << generator.nextMask();
+ for (int i = 0; i < 1000; ++i)
+ series2 << generator.nextMask();
+
+ QVERIFY(series1 != series2);
+ }
+ //generates two series of data with 2 distinct generators
+ //both generators are seeded
+ {
+ QDefaultMaskGenerator generator1, generator2;
+ generator1.seed();
+ generator2.seed();
+
+ QVector<quint32> series1, series2;
+ for (int i = 0; i < 1000; ++i) {
+ series1 << generator1.nextMask();
+ series2 << generator2.nextMask();
+ }
+
+ QVERIFY(series1 != series2);
+ }
+ //generates two series of data with 2 distinct generators
+ //only one of the two is seeded
+ {
+ QDefaultMaskGenerator generator1, generator2;
+ generator1.seed();
+
+ QVector<quint32> series1, series2;
+ for (int i = 0; i < 1000; ++i) {
+ series1 << generator1.nextMask();
+ series2 << generator2.nextMask();
+ }
+
+ QVERIFY(series1 != series2);
+ }
+}
+
+QTEST_MAIN(tst_QDefaultMaskGenerator)
+
+#include "tst_defaultmaskgenerator.moc"