diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2016-08-05 11:02:25 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2016-08-08 13:12:42 +0000 |
commit | a36a6e0ad308cce5330a24bdd773c10ad9f93bbc (patch) | |
tree | 3fba68b432a63428194e21782c9508ef76699dd8 /src/plugins/qmlprofiler/tests | |
parent | 82069466ffae86f14430f49a26e5db1f2bf74610 (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.cpp | 96 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/tests/qmlprofilerconfigwidget_test.h | 55 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/tests/tests.pri | 6 |
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 |