Files
fedora-tools/plasma-task-group-shortcuts/tests/test-taskselection.cpp
T

91 lines
3.2 KiB
C++

// SPDX-License-Identifier: MIT
#include "../taskselection.h"
#include <QStandardItemModel>
#include <QTest>
#include <abstracttasksmodel.h>
using TaskManager::AbstractTasksModel;
class TaskSelectionTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void returnsTopLevelTask();
void selectsChildByCyclePosition();
void startsWithFirstChild();
void keepsSeparateLaunchersAsSlots();
void mergesLauncherWithRunningApplication();
};
void TaskSelectionTest::returnsTopLevelTask()
{
QStandardItemModel model;
model.appendRow(new QStandardItem(QStringLiteral("Dolphin")));
QCOMPARE(taskToActivate(model, 0, 0), model.index(0, 0));
QVERIFY(!taskToActivate(model, 1, 0).isValid());
}
void TaskSelectionTest::selectsChildByCyclePosition()
{
QStandardItemModel model;
auto *group = new QStandardItem(QStringLiteral("Dolphin"));
group->appendRow(new QStandardItem(QStringLiteral("one")));
group->appendRow(new QStandardItem(QStringLiteral("two")));
group->appendRow(new QStandardItem(QStringLiteral("three")));
model.appendRow(group);
const QModelIndex parent = model.index(0, 0);
QCOMPARE(taskToActivate(model, 0, 0), model.index(0, 0, parent));
QCOMPARE(taskToActivate(model, 0, 1), model.index(1, 0, parent));
QCOMPARE(taskToActivate(model, 0, 2), model.index(2, 0, parent));
QCOMPARE(taskToActivate(model, 0, 3), model.index(0, 0, parent));
QCOMPARE(taskToActivate(model, 0, -1), model.index(2, 0, parent));
QCOMPARE(taskToActivate(model, 0, -2), model.index(1, 0, parent));
}
void TaskSelectionTest::startsWithFirstChild()
{
QStandardItemModel model;
auto *group = new QStandardItem(QStringLiteral("Firefox"));
group->appendRow(new QStandardItem(QStringLiteral("first")));
group->appendRow(new QStandardItem(QStringLiteral("second")));
model.appendRow(group);
QCOMPARE(taskToActivate(model, 0, 0), model.index(0, 0, model.index(0, 0)));
}
void TaskSelectionTest::keepsSeparateLaunchersAsSlots()
{
QStandardItemModel model;
model.appendRow(new QStandardItem(QStringLiteral("launcher")));
model.appendRow(new QStandardItem(QStringLiteral("window")));
QCOMPARE(logicalTaskRows(model, true), QVector<int>({0, 1}));
}
void TaskSelectionTest::mergesLauncherWithRunningApplication()
{
QStandardItemModel model;
model.appendRow(new QStandardItem(QStringLiteral("Dolphin launcher")));
model.appendRow(new QStandardItem(QStringLiteral("Firefox window")));
model.appendRow(new QStandardItem(QStringLiteral("Dolphin windows")));
model.setData(model.index(0, 0), true, AbstractTasksModel::IsLauncher);
model.setData(model.index(0, 0), QStringLiteral("org.kde.dolphin"), AbstractTasksModel::AppId);
model.setData(model.index(1, 0), true, AbstractTasksModel::IsWindow);
model.setData(model.index(1, 0), QStringLiteral("firefox"), AbstractTasksModel::AppId);
model.setData(model.index(2, 0), true, AbstractTasksModel::IsWindow);
model.setData(model.index(2, 0), QStringLiteral("org.kde.dolphin"), AbstractTasksModel::AppId);
QCOMPARE(logicalTaskRows(model, false), QVector<int>({2, 1}));
}
QTEST_GUILESS_MAIN(TaskSelectionTest)
#include "test-taskselection.moc"