aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprofiler/tests
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-08-05 11:02:25 +0200
committerUlf Hermann <ulf.hermann@qt.io>2016-08-08 13:12:42 +0000
commita36a6e0ad308cce5330a24bdd773c10ad9f93bbc (patch)
tree3fba68b432a63428194e21782c9508ef76699dd8 /src/plugins/qmlprofiler/tests
parent82069466ffae86f14430f49a26e5db1f2bf74610 (diff)
QmlProfiler: Add test for config widget
Change-Id: I468ed3c7f75b79d16231b57246e494e29a89b920 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qmlprofiler/tests')
-rw-r--r--src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.cpp96
-rw-r--r--src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.h55
-rw-r--r--src/plugins/qmlprofiler/tests/tests.pri6
3 files changed, 155 insertions, 2 deletions
diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.cpp
new file mode 100644
index 00000000000..e291c15f5df
--- /dev/null
+++ b/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.cpp
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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.
+**
+****************************************************************************/
+#include "qmlprofilerconfigwidget_test.h"
+#include <QtTest>
+
+namespace QmlProfiler {
+namespace Internal {
+
+QmlProfilerConfigWidgetTest::QmlProfilerConfigWidgetTest(QObject *parent) :
+ QObject(parent), widget(&settings)
+{
+ widget.show();
+ flushEnabled = widget.findChild<QCheckBox*>("flushEnabled");
+ QVERIFY(flushEnabled);
+ flushInterval = widget.findChild<QSpinBox*>("flushInterval");
+ QVERIFY(flushInterval);
+ aggregateTraces = widget.findChild<QCheckBox*>("aggregateTraces");
+ QVERIFY(aggregateTraces);
+}
+
+void QmlProfilerConfigWidgetTest::testUpdateFromSettings()
+{
+ QSignalSpy flushes(flushEnabled, SIGNAL(stateChanged(int)));
+ QCOMPARE(flushEnabled->checkState(), Qt::Unchecked);
+ settings.setFlushEnabled(true);
+ QCOMPARE(flushEnabled->checkState(), Qt::Checked);
+ settings.setFlushEnabled(false);
+ QCOMPARE(flushEnabled->checkState(), Qt::Unchecked);
+ QCOMPARE(flushes.count(), 2);
+
+
+ QSignalSpy intervals(flushInterval, SIGNAL(valueChanged(int)));
+ QCOMPARE(flushInterval->value(), 1000);
+ settings.setFlushInterval(200);
+ QCOMPARE(flushInterval->value(), 200);
+ settings.setFlushInterval(1000);
+ QCOMPARE(flushInterval->value(), 1000);
+ QCOMPARE(intervals.count(), 2);
+
+ QSignalSpy aggregates(aggregateTraces, SIGNAL(stateChanged(int)));
+ QCOMPARE(aggregateTraces->checkState(), Qt::Unchecked);
+ settings.setAggregateTraces(true);
+ QCOMPARE(aggregateTraces->checkState(), Qt::Checked);
+ settings.setAggregateTraces(false);
+ QCOMPARE(aggregateTraces->checkState(), Qt::Unchecked);
+ QCOMPARE(aggregates.count(), 2);
+}
+
+void QmlProfilerConfigWidgetTest::testChangeWidget()
+{
+ QCOMPARE(flushEnabled->checkState(), Qt::Unchecked);
+ QVERIFY(!settings.flushEnabled());
+ flushEnabled->setCheckState(Qt::Checked);
+ QVERIFY(settings.flushEnabled());
+ flushEnabled->setCheckState(Qt::Unchecked);
+ QVERIFY(!settings.flushEnabled());
+
+ QCOMPARE(flushInterval->value(), 1000);
+ QCOMPARE(settings.flushInterval(), 1000u);
+ flushInterval->setValue(200);
+ QCOMPARE(settings.flushInterval(), 200u);
+ flushInterval->setValue(1000);
+ QCOMPARE(settings.flushInterval(), 1000u);
+
+ QCOMPARE(aggregateTraces->checkState(), Qt::Unchecked);
+ QVERIFY(!settings.aggregateTraces());
+ aggregateTraces->setCheckState(Qt::Checked);
+ QVERIFY(settings.aggregateTraces());
+ aggregateTraces->setCheckState(Qt::Unchecked);
+ QVERIFY(!settings.aggregateTraces());
+}
+
+} // namespace Internal
+} // namespace QmlProfiler
diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.h b/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.h
new file mode 100644
index 00000000000..3e39f4beb22
--- /dev/null
+++ b/src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.h
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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.
+**
+****************************************************************************/
+#pragma once
+
+#include <qmlprofiler/qmlprofilerconfigwidget.h>
+#include <QObject>
+#include <QCheckBox>
+#include <QSpinBox>
+
+namespace QmlProfiler {
+namespace Internal {
+
+class QmlProfilerConfigWidgetTest : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QmlProfilerConfigWidgetTest(QObject *parent = 0);
+
+private slots:
+ void testUpdateFromSettings();
+ void testChangeWidget();
+
+private:
+ QmlProfilerSettings settings;
+ QmlProfilerConfigWidget widget;
+
+ QCheckBox *flushEnabled;
+ QSpinBox *flushInterval;
+ QCheckBox *aggregateTraces;
+};
+
+} // namespace Internal
+} // namespace QmlProfiler
diff --git a/src/plugins/qmlprofiler/tests/tests.pri b/src/plugins/qmlprofiler/tests/tests.pri
index 8cbefe4b760..6d976a2716c 100644
--- a/src/plugins/qmlprofiler/tests/tests.pri
+++ b/src/plugins/qmlprofiler/tests/tests.pri
@@ -13,7 +13,8 @@ SOURCES += \
$$PWD/qmlprofileranimationsmodel_test.cpp \
$$PWD/qmlprofilerattachdialog_test.cpp \
$$PWD/qmlprofilerbindingloopsrenderpass_test.cpp \
- $$PWD/qmlprofilerclientmanager_test.cpp
+ $$PWD/qmlprofilerclientmanager_test.cpp \
+ $$PWD/qmlprofilerconfigwidget_test.cpp
HEADERS += \
$$PWD/debugmessagesmodel_test.h \
@@ -30,4 +31,5 @@ HEADERS += \
$$PWD/qmlprofileranimationsmodel_test.h \
$$PWD/qmlprofilerattachdialog_test.h \
$$PWD/qmlprofilerbindingloopsrenderpass_test.h \
- $$PWD/qmlprofilerclientmanager_test.h
+ $$PWD/qmlprofilerclientmanager_test.h \
+ $$PWD/qmlprofilerconfigwidget_test.h