void Ut_NotificationPreviewPresenter::testRemoveNotification() { NotificationPreviewPresenter presenter; QSignalSpy changedSpy(&presenter, SIGNAL(notificationChanged())); // Create two notifications createNotification(1); createNotification(2); presenter.updateNotification(1); presenter.updateNotification(2); // Remove the first one presenter.removeNotification(1); // Check that an empty notification is signaled onwards QCOMPARE(changedSpy.count(), 2); QCOMPARE(presenter.notification(), (LipstickNotification *)0); // Show and remove the second one presenter.showNextNotification(); presenter.removeNotification(2); // Check that an empty notification is signaled onwards QCOMPARE(changedSpy.count(), 4); QCOMPARE(presenter.notification(), (LipstickNotification *)0); // Check that the window is not yet hidden QCOMPARE(homeWindowVisible[homeWindows.first()], true); // Check that the window is hidden when it's time to show the next notification (which doesn't exist) presenter.showNextNotification(); QCOMPARE(homeWindowVisible[homeWindows.first()], false); }
void Ut_NotificationPreviewPresenter::testUpdateNotificationRemovesNotificationFromQueueIfNotShowable() { NotificationPreviewPresenter presenter; // Create two notifications LipstickNotification *notification1 = createNotification(1); LipstickNotification *notification2 = createNotification(2); presenter.updateNotification(1); presenter.updateNotification(2); // Update the notifications to have no summary or body QSignalSpy changedSpy(&presenter, SIGNAL(notificationChanged())); QSignalSpy presentedSpy(&presenter, SIGNAL(notificationPresented(uint))); notification1->setHints(QVariantHash()); notification2->setHints(QVariantHash()); presenter.updateNotification(1); presenter.updateNotification(2); // Check that the current notification is not removed QCOMPARE(changedSpy.count(), 0); // The notifications should be considered presented QCOMPARE(presentedSpy.count(), 2); // Check that the other notification is removed from the queue presenter.showNextNotification(); QCOMPARE(changedSpy.count(), 1); QCOMPARE(presenter.notification(), (LipstickNotification *)0); QCOMPARE(presentedSpy.count(), 2); }
void Ut_NotificationPreviewPresenter::testAddNotificationWhenWindowAlreadyOpen() { NotificationPreviewPresenter presenter; QSignalSpy changedSpy(&presenter, SIGNAL(notificationChanged())); QSignalSpy presentedSpy(&presenter, SIGNAL(notificationPresented(uint))); // Create a notification: this will create a window createNotification(1); presenter.updateNotification(1); // Reset stubs to see what happens next homeWindows.clear(); // Create another notification LipstickNotification *notification = createNotification(2); presenter.updateNotification(2); // The second notification should not be signaled onwards yet since the first one is being presented QCOMPARE(changedSpy.count(), 1); QCOMPARE(presentedSpy.count(), 1); QCOMPARE(presentedSpy.last().at(0).toUInt(), (uint)1); // Show the next notification presenter.showNextNotification(); // Check that the window was not unnecessarily created again QCOMPARE(homeWindows.isEmpty(), true); // Check that the expected notification is signaled onwards QCOMPARE(changedSpy.count(), 2); QCOMPARE(presenter.notification(), notification); QCOMPARE(presentedSpy.count(), 2); QCOMPARE(presentedSpy.last().at(0).toUInt(), (uint)2); }
void Ut_NotificationPreviewPresenter::testAddNotificationWhenWindowNotOpen() { NotificationPreviewPresenter presenter; QSignalSpy changedSpy(&presenter, SIGNAL(notificationChanged())); QSignalSpy presentedSpy(&presenter, SIGNAL(notificationPresented(uint))); // Check that the window is not automatically created QCOMPARE(homeWindows.isEmpty(), true); // Check that the window is created when a notification is added LipstickNotification *notification = createNotification(1); presenter.updateNotification(1); QCOMPARE(homeWindows.count(), 1); // Check window properties QCOMPARE(homeWindowTitle[homeWindows.first()], QString("Notification")); QCOMPARE(homeWindowContextProperties[homeWindows.first()].value("initialSize").toSize(), QGuiApplication::primaryScreen()->size()); QCOMPARE(homeWindowContextProperties[homeWindows.first()].value("notificationPreviewPresenter"), QVariant::fromValue(static_cast<QObject *>(&presenter))); QCOMPARE(homeWindowCategories[homeWindows.first()], QString("notification")); // Check that the window was shown QCOMPARE(homeWindowVisible[homeWindows.first()], true); // Check that the expected notification is signaled onwards QCOMPARE(changedSpy.count(), 1); QCOMPARE(presenter.notification(), notification); QCOMPARE(presentedSpy.count(), 1); QCOMPARE(presentedSpy.last().at(0).toUInt(), (uint)1); }