void tst_QWinJumpList::testRecent() { if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS10) QSKIP("QTBUG-48751: Recent items do not work on Windows 10", Continue); QScopedPointer<QWinJumpList> jumplist(new QWinJumpList); QWinJumpListCategory *recent1 = jumplist->recent(); QVERIFY(recent1); QVERIFY(!recent1->isVisible()); QVERIFY(recent1->title().isEmpty()); recent1->clear(); QVERIFY(recent1->isEmpty()); recent1->addItem(0); QVERIFY(recent1->isEmpty()); recent1->setVisible(true); QVERIFY(recent1->isVisible()); recent1->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath()); QTest::ignoreMessage(QtWarningMsg, "QWinJumpListCategory::addItem(): only tasks/custom categories support separators."); recent1->addSeparator(); QTest::ignoreMessage(QtWarningMsg, "QWinJumpListCategory::addItem(): only tasks/custom categories support destinations."); recent1->addDestination(QCoreApplication::applicationDirPath()); // cleanup the first jumplist instance and give the system a little time to update. // then test that another jumplist instance loads up the recent item(s) added above jumplist.reset(); QTest::qWait(100); jumplist.reset(new QWinJumpList); QWinJumpListCategory *recent2 = jumplist->recent(); QVERIFY(recent2); QCOMPARE(recent2->count(), 1); QWinJumpListItem* item = recent2->items().value(0); QVERIFY(item); const QString itemPath = item->filePath(); const QString applicationFilePath = QCoreApplication::applicationFilePath(); QVERIFY2(!itemPath.compare(applicationFilePath, Qt::CaseInsensitive), msgFileNameMismatch(itemPath, applicationFilePath)); QEXPECT_FAIL("", "QWinJumpListItem::title not supported for recent items", Continue); QCOMPARE(item->title(), QStringLiteral("tst_QWinJumpList")); recent2->clear(); QVERIFY(recent2->isEmpty()); }
void tst_QWinJumpList::testTasks() { QWinJumpList jumplist; QWinJumpListCategory *tasks = jumplist.tasks(); QVERIFY(tasks); QVERIFY(!tasks->isVisible()); QVERIFY(tasks->isEmpty()); QVERIFY(tasks->title().isEmpty()); tasks->setVisible(true); QVERIFY(tasks->isVisible()); tasks->addItem(0); QVERIFY(tasks->isEmpty()); QWinJumpListItem* link1 = tasks->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath()); QCOMPARE(link1->type(), QWinJumpListItem::Link); QCOMPARE(link1->title(), QStringLiteral("tst_QWinJumpList")); QCOMPARE(link1->filePath(), QCoreApplication::applicationFilePath()); QCOMPARE(tasks->count(), 1); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1); QWinJumpListItem* link2 = tasks->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath(), QStringList(QStringLiteral("-test"))); QCOMPARE(link2->type(), QWinJumpListItem::Link); QCOMPARE(link2->title(), QStringLiteral("tst_QWinJumpList")); QCOMPARE(link2->filePath(), QCoreApplication::applicationFilePath()); QCOMPARE(link2->arguments(), QStringList(QStringLiteral("-test"))); QCOMPARE(tasks->count(), 2); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2); QWinJumpListItem* separator = tasks->addSeparator(); QCOMPARE(separator->type(), QWinJumpListItem::Separator); QCOMPARE(tasks->count(), 3); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2 << separator); QWinJumpListItem* destination = tasks->addDestination(QCoreApplication::applicationDirPath()); QCOMPARE(destination->type(), QWinJumpListItem::Destination); QCOMPARE(destination->filePath(), QCoreApplication::applicationDirPath()); QCOMPARE(tasks->count(), 4); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2 << separator << destination); tasks->clear(); QVERIFY(tasks->isEmpty()); QVERIFY(tasks->items().isEmpty()); }
void tst_QWinJumpList::testRecent() { QScopedPointer<QWinJumpList> jumplist(new QWinJumpList); QWinJumpListCategory *recent1 = jumplist->recent(); QVERIFY(recent1); QVERIFY(!recent1->isVisible()); QVERIFY(recent1->title().isEmpty()); recent1->clear(); QVERIFY(recent1->isEmpty()); recent1->addItem(0); QVERIFY(recent1->isEmpty()); recent1->setVisible(true); QVERIFY(recent1->isVisible()); recent1->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath()); QTest::ignoreMessage(QtWarningMsg, "QWinJumpListCategory::addItem(): only tasks/custom categories support separators."); recent1->addSeparator(); QTest::ignoreMessage(QtWarningMsg, "QWinJumpListCategory::addItem(): only tasks/custom categories support destinations."); recent1->addDestination(QCoreApplication::applicationDirPath()); // cleanup the first jumplist instance and give the system a little time to update. // then test that another jumplist instance loads up the recent item(s) added above jumplist.reset(); QTest::qWait(100); jumplist.reset(new QWinJumpList); QWinJumpListCategory *recent2 = jumplist->recent(); QVERIFY(recent2); QCOMPARE(recent2->count(), 1); QWinJumpListItem* item = recent2->items().value(0); QVERIFY(item); QCOMPARE(item->filePath(), QCoreApplication::applicationFilePath()); QEXPECT_FAIL("", "QWinJumpListItem::title not supported for recent items", Continue); QCOMPARE(item->title(), QStringLiteral("tst_QWinJumpList")); recent2->clear(); QVERIFY(recent2->isEmpty()); }