summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/util/qundogroup
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/util/qundogroup')
-rw-r--r--tests/auto/widgets/util/qundogroup/.gitignore1
-rw-r--r--tests/auto/widgets/util/qundogroup/qundogroup.pro4
-rw-r--r--tests/auto/widgets/util/qundogroup/testdata/qundogroup.ts25
-rw-r--r--tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp641
4 files changed, 0 insertions, 671 deletions
diff --git a/tests/auto/widgets/util/qundogroup/.gitignore b/tests/auto/widgets/util/qundogroup/.gitignore
deleted file mode 100644
index bc3e8c4691..0000000000
--- a/tests/auto/widgets/util/qundogroup/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tst_qundogroup
diff --git a/tests/auto/widgets/util/qundogroup/qundogroup.pro b/tests/auto/widgets/util/qundogroup/qundogroup.pro
deleted file mode 100644
index bd8dac197b..0000000000
--- a/tests/auto/widgets/util/qundogroup/qundogroup.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-CONFIG += testcase
-QT += widgets testlib
-SOURCES += tst_qundogroup.cpp
-TARGET = tst_qundogroup
diff --git a/tests/auto/widgets/util/qundogroup/testdata/qundogroup.ts b/tests/auto/widgets/util/qundogroup/testdata/qundogroup.ts
deleted file mode 100644
index a059bcb486..0000000000
--- a/tests/auto/widgets/util/qundogroup/testdata/qundogroup.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="en">
-<context>
- <name>QUndoGroup</name>
- <message>
- <source>Undo %1</source>
- <translation>undo-prefix %1 undo-suffix</translation>
- </message>
- <message>
- <source>Undo</source>
- <comment>Default text for undo action</comment>
- <translation>Undo-default-text</translation>
- </message>
- <message>
- <source>Redo %1</source>
- <translation>redo-prefix %1 redo-suffix</translation>
- </message>
- <message>
- <source>Redo</source>
- <comment>Default text for redo action</comment>
- <translation>Redo-default-text</translation>
- </message>
-</context>
-</TS>
diff --git a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp b/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp
deleted file mode 100644
index c1524d870d..0000000000
--- a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp
+++ /dev/null
@@ -1,641 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite 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 <QUndoGroup>
-#include <QUndoStack>
-#include <QAction>
-
-/******************************************************************************
-** Commands
-*/
-
-class InsertCommand : public QUndoCommand
-{
-public:
- InsertCommand(QString *str, int idx, const QString &text,
- QUndoCommand *parent = 0);
-
- virtual void undo();
- virtual void redo();
-
-private:
- QString *m_str;
- int m_idx;
- QString m_text;
-};
-
-class RemoveCommand : public QUndoCommand
-{
-public:
- RemoveCommand(QString *str, int idx, int len, QUndoCommand *parent = 0);
-
- virtual void undo();
- virtual void redo();
-
-private:
- QString *m_str;
- int m_idx;
- QString m_text;
-};
-
-class AppendCommand : public QUndoCommand
-{
-public:
- AppendCommand(QString *str, const QString &text, QUndoCommand *parent = 0);
-
- virtual void undo();
- virtual void redo();
- virtual int id() const;
- virtual bool mergeWith(const QUndoCommand *other);
-
- bool merged;
-
-private:
- QString *m_str;
- QString m_text;
-};
-
-InsertCommand::InsertCommand(QString *str, int idx, const QString &text,
- QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- QVERIFY(str->length() >= idx);
-
- setText("insert");
-
- m_str = str;
- m_idx = idx;
- m_text = text;
-}
-
-void InsertCommand::redo()
-{
- QVERIFY(m_str->length() >= m_idx);
-
- m_str->insert(m_idx, m_text);
-}
-
-void InsertCommand::undo()
-{
- QCOMPARE(m_str->mid(m_idx, m_text.length()), m_text);
-
- m_str->remove(m_idx, m_text.length());
-}
-
-RemoveCommand::RemoveCommand(QString *str, int idx, int len, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- QVERIFY(str->length() >= idx + len);
-
- setText("remove");
-
- m_str = str;
- m_idx = idx;
- m_text = m_str->mid(m_idx, len);
-}
-
-void RemoveCommand::redo()
-{
- QCOMPARE(m_str->mid(m_idx, m_text.length()), m_text);
-
- m_str->remove(m_idx, m_text.length());
-}
-
-void RemoveCommand::undo()
-{
- QVERIFY(m_str->length() >= m_idx);
-
- m_str->insert(m_idx, m_text);
-}
-
-AppendCommand::AppendCommand(QString *str, const QString &text, QUndoCommand *parent)
- : QUndoCommand(parent)
-{
- setText("append");
-
- m_str = str;
- m_text = text;
- merged = false;
-}
-
-void AppendCommand::redo()
-{
- m_str->append(m_text);
-}
-
-void AppendCommand::undo()
-{
- QCOMPARE(m_str->mid(m_str->length() - m_text.length()), m_text);
-
- m_str->truncate(m_str->length() - m_text.length());
-}
-
-int AppendCommand::id() const
-{
- return 1;
-}
-
-bool AppendCommand::mergeWith(const QUndoCommand *other)
-{
- if (other->id() != id())
- return false;
- m_text += static_cast<const AppendCommand*>(other)->m_text;
- merged = true;
- return true;
-}
-
-/******************************************************************************
-** tst_QUndoStack
-*/
-
-class tst_QUndoGroup : public QObject
-{
- Q_OBJECT
-public:
- tst_QUndoGroup();
-
-private slots:
- void setActive();
- void addRemoveStack();
- void deleteStack();
- void checkSignals();
- void addStackAndDie();
- void commandTextFormat();
-};
-
-tst_QUndoGroup::tst_QUndoGroup()
-{
-}
-
-void tst_QUndoGroup::setActive()
-{
- QUndoGroup group;
- QUndoStack stack1(&group), stack2(&group);
-
- QCOMPARE(group.activeStack(), nullptr);
- QCOMPARE(stack1.isActive(), false);
- QCOMPARE(stack2.isActive(), false);
-
- QUndoStack stack3;
- QCOMPARE(stack3.isActive(), true);
-
- group.addStack(&stack3);
- QCOMPARE(stack3.isActive(), false);
-
- stack1.setActive();
- QCOMPARE(group.activeStack(), &stack1);
- QCOMPARE(stack1.isActive(), true);
- QCOMPARE(stack2.isActive(), false);
- QCOMPARE(stack3.isActive(), false);
-
- group.setActiveStack(&stack2);
- QCOMPARE(group.activeStack(), &stack2);
- QCOMPARE(stack1.isActive(), false);
- QCOMPARE(stack2.isActive(), true);
- QCOMPARE(stack3.isActive(), false);
-
- group.removeStack(&stack2);
- QCOMPARE(group.activeStack(), nullptr);
- QCOMPARE(stack1.isActive(), false);
- QCOMPARE(stack2.isActive(), true);
- QCOMPARE(stack3.isActive(), false);
-
- group.removeStack(&stack2);
- QCOMPARE(group.activeStack(), nullptr);
- QCOMPARE(stack1.isActive(), false);
- QCOMPARE(stack2.isActive(), true);
- QCOMPARE(stack3.isActive(), false);
-}
-
-void tst_QUndoGroup::addRemoveStack()
-{
- QUndoGroup group;
-
- QUndoStack stack1(&group);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1);
-
- QUndoStack stack2;
- group.addStack(&stack2);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1 << &stack2);
-
- group.addStack(&stack1);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1 << &stack2);
-
- group.removeStack(&stack1);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack2);
-
- group.removeStack(&stack1);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack2);
-
- group.removeStack(&stack2);
- QCOMPARE(group.stacks(), QList<QUndoStack*>());
-}
-
-void tst_QUndoGroup::deleteStack()
-{
- QUndoGroup group;
-
- QUndoStack *stack1 = new QUndoStack(&group);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1);
- QCOMPARE(group.activeStack(), nullptr);
-
- stack1->setActive();
- QCOMPARE(group.activeStack(), stack1);
-
- QUndoStack *stack2 = new QUndoStack(&group);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack2);
- QCOMPARE(group.activeStack(), stack1);
-
- QUndoStack *stack3 = new QUndoStack(&group);
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack2 << stack3);
- QCOMPARE(group.activeStack(), stack1);
-
- delete stack2;
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack3);
- QCOMPARE(group.activeStack(), stack1);
-
- delete stack1;
- QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack3);
- QCOMPARE(group.activeStack(), nullptr);
-
- stack3->setActive(false);
- QCOMPARE(group.activeStack(), nullptr);
-
- stack3->setActive(true);
- QCOMPARE(group.activeStack(), stack3);
-
- group.removeStack(stack3);
- QCOMPARE(group.stacks(), QList<QUndoStack*>());
- QCOMPARE(group.activeStack(), nullptr);
-
- delete stack3;
-}
-
-static QString glue(const QString &s1, const QString &s2)
-{
- QString result;
-
- result.append(s1);
- if (!s1.isEmpty() && !s2.isEmpty())
- result.append(' ');
- result.append(s2);
-
- return result;
-}
-
-#define CHECK_STATE(_activeStack, _clean, _canUndo, _undoText, _canRedo, _redoText, \
- _cleanChanged, _indexChanged, _undoChanged, _redoChanged) \
- QCOMPARE(group.activeStack(), (QUndoStack*)_activeStack); \
- QCOMPARE(group.isClean(), _clean); \
- QCOMPARE(group.canUndo(), _canUndo); \
- QCOMPARE(group.undoText(), QString(_undoText)); \
- QCOMPARE(group.canRedo(), _canRedo); \
- QCOMPARE(group.redoText(), QString(_redoText)); \
- if (_indexChanged) { \
- QCOMPARE(indexChangedSpy.count(), 1); \
- indexChangedSpy.clear(); \
- } else { \
- QCOMPARE(indexChangedSpy.count(), 0); \
- } \
- if (_cleanChanged) { \
- QCOMPARE(cleanChangedSpy.count(), 1); \
- QCOMPARE(cleanChangedSpy.at(0).at(0).toBool(), _clean); \
- cleanChangedSpy.clear(); \
- } else { \
- QCOMPARE(cleanChangedSpy.count(), 0); \
- } \
- if (_undoChanged) { \
- QCOMPARE(canUndoChangedSpy.count(), 1); \
- QCOMPARE(canUndoChangedSpy.at(0).at(0).toBool(), _canUndo); \
- QCOMPARE(undo_action->isEnabled(), _canUndo); \
- QCOMPARE(undoTextChangedSpy.count(), 1); \
- QCOMPARE(undoTextChangedSpy.at(0).at(0).toString(), QString(_undoText)); \
- QCOMPARE(undo_action->text(), glue("foo", _undoText)); \
- canUndoChangedSpy.clear(); \
- undoTextChangedSpy.clear(); \
- } else { \
- QCOMPARE(canUndoChangedSpy.count(), 0); \
- QCOMPARE(undoTextChangedSpy.count(), 0); \
- } \
- if (_redoChanged) { \
- QCOMPARE(canRedoChangedSpy.count(), 1); \
- QCOMPARE(canRedoChangedSpy.at(0).at(0).toBool(), _canRedo); \
- QCOMPARE(redo_action->isEnabled(), _canRedo); \
- QCOMPARE(redoTextChangedSpy.count(), 1); \
- QCOMPARE(redoTextChangedSpy.at(0).at(0).toString(), QString(_redoText)); \
- QCOMPARE(redo_action->text(), glue("bar", _redoText)); \
- canRedoChangedSpy.clear(); \
- redoTextChangedSpy.clear(); \
- } else { \
- QCOMPARE(canRedoChangedSpy.count(), 0); \
- QCOMPARE(redoTextChangedSpy.count(), 0); \
- }
-
-void tst_QUndoGroup::checkSignals()
-{
- QUndoGroup group;
- const QScopedPointer<QAction> undo_action(group.createUndoAction(0, QString("foo")));
- const QScopedPointer<QAction> redo_action(group.createRedoAction(0, QString("bar")));
- QSignalSpy indexChangedSpy(&group, &QUndoGroup::indexChanged);
- QSignalSpy cleanChangedSpy(&group, &QUndoGroup::cleanChanged);
- QSignalSpy canUndoChangedSpy(&group, &QUndoGroup::canUndoChanged);
- QSignalSpy undoTextChangedSpy(&group, &QUndoGroup::undoTextChanged);
- QSignalSpy canRedoChangedSpy(&group, &QUndoGroup::canRedoChanged);
- QSignalSpy redoTextChangedSpy(&group, &QUndoGroup::redoTextChanged);
-
- QString str;
-
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- group.undo();
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- group.redo();
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- QUndoStack *stack1 = new QUndoStack(&group);
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- stack1->push(new AppendCommand(&str, "foo"));
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- stack1->setActive();
- CHECK_STATE(stack1, // activeStack
- false, // clean
- true, // canUndo
- "append", // undoText
- false, // canRedo
- "", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->push(new InsertCommand(&str, 0, "bar"));
- CHECK_STATE(stack1, // activeStack
- false, // clean
- true, // canUndo
- "insert", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->undo();
- CHECK_STATE(stack1, // activeStack
- false, // clean
- true, // canUndo
- "append", // undoText
- true, // canRedo
- "insert", // redoText
- false, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->undo();
- CHECK_STATE(stack1, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- true, // canRedo
- "append", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->undo();
- CHECK_STATE(stack1, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- true, // canRedo
- "append", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- group.undo();
- CHECK_STATE(stack1, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- true, // canRedo
- "append", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- group.redo();
- CHECK_STATE(stack1, // activeStack
- false, // clean
- true, // canUndo
- "append", // undoText
- true, // canRedo
- "insert", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->setActive(false);
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- QUndoStack *stack2 = new QUndoStack(&group);
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- false, // cleanChanged
- false, // indexChanged
- false, // undoChanged
- false) // redoChanged
-
- stack2->setActive();
- CHECK_STATE(stack2, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- stack1->setActive();
- CHECK_STATE(stack1, // activeStack
- false, // clean
- true, // canUndo
- "append", // undoText
- true, // canRedo
- "insert", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-
- delete stack1;
- CHECK_STATE(0, // activeStack
- true, // clean
- false, // canUndo
- "", // undoText
- false, // canRedo
- "", // redoText
- true, // cleanChanged
- true, // indexChanged
- true, // undoChanged
- true) // redoChanged
-}
-
-void tst_QUndoGroup::addStackAndDie()
-{
- // Test that QUndoStack doesn't keep a reference to QUndoGroup after the
- // group is deleted.
- QUndoStack *stack = new QUndoStack;
- QUndoGroup *group = new QUndoGroup;
- group->addStack(stack);
- delete group;
- stack->setActive(true);
- delete stack;
-}
-
-void tst_QUndoGroup::commandTextFormat()
-{
-#if !QT_CONFIG(process)
- QSKIP("No QProcess available");
-#else
- QString binDir = QLibraryInfo::location(QLibraryInfo::BinariesPath);
-
- if (QProcess::execute(binDir + "/lrelease -version") != 0)
- QSKIP("lrelease is missing or broken");
-
- const QString tsFile = QFINDTESTDATA("testdata/qundogroup.ts");
- QVERIFY(!tsFile.isEmpty());
- QFile::remove("qundogroup.qm"); // Avoid confusion by strays.
- QVERIFY(!QProcess::execute(binDir + "/lrelease -silent " + tsFile + " -qm qundogroup.qm"));
-
- QTranslator translator;
-
- QVERIFY(translator.load("qundogroup.qm"));
- QFile::remove("qundogroup.qm");
- qApp->installTranslator(&translator);
-
- QUndoGroup group;
- const QScopedPointer<QAction> undo_action(group.createUndoAction(0));
- const QScopedPointer<QAction> redo_action(group.createRedoAction(0));
-
- QCOMPARE(undo_action->text(), QString("Undo-default-text"));
- QCOMPARE(redo_action->text(), QString("Redo-default-text"));
-
- QUndoStack stack(&group);
- stack.setActive();
- QString str;
-
- stack.push(new AppendCommand(&str, "foo"));
- QCOMPARE(undo_action->text(), QString("undo-prefix append undo-suffix"));
- QCOMPARE(redo_action->text(), QString("Redo-default-text"));
-
- stack.push(new InsertCommand(&str, 0, "bar"));
- stack.undo();
- QCOMPARE(undo_action->text(), QString("undo-prefix append undo-suffix"));
- QCOMPARE(redo_action->text(), QString("redo-prefix insert redo-suffix"));
-
- stack.undo();
- QCOMPARE(undo_action->text(), QString("Undo-default-text"));
- QCOMPARE(redo_action->text(), QString("redo-prefix append redo-suffix"));
-
- qApp->removeTranslator(&translator);
-#endif
-}
-
-QTEST_MAIN(tst_QUndoGroup)
-
-#include "tst_qundogroup.moc"
-