summaryrefslogtreecommitdiffstats
path: root/tests/auto/pdf/qpdfpagenavigator/tst_qpdfpagenavigator.cpp
blob: 327a9f36a5759d2c337495f95cc99c0695a07381 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only


#include <QtTest/QtTest>

#include <QPdfDocument>
#include <QPdfView>
#include <QPdfPageNavigator>

class tst_QPdfPageNavigator: public QObject
{
    Q_OBJECT

private slots:
    void offScreenSignals();
};

void tst_QPdfPageNavigator::offScreenSignals()
{
    QPdfDocument document;
    QPdfView pdfView;
    QPdfPageNavigator *navigator = pdfView.pageNavigator();

    QSignalSpy currentPageChanged(navigator, &QPdfPageNavigator::currentPageChanged);
    QSignalSpy currentLocationChanged(navigator, &QPdfPageNavigator::currentLocationChanged);
    QSignalSpy backAvailableChanged(navigator, &QPdfPageNavigator::backAvailableChanged);
    QSignalSpy forwardAvailableChanged(navigator, &QPdfPageNavigator::forwardAvailableChanged);
    QSignalSpy jumped(navigator, &QPdfPageNavigator::jumped);

    QCOMPARE(document.load(QFINDTESTDATA("pdf-sample.bookmarks_pages.pdf")), QPdfDocument::Error::None);
    QVERIFY2(document.pageCount() == 3, "Test document has changed! 3 pages expected.");
    pdfView.setDocument(&document);

    // Start with a clean history
    QCOMPARE(forwardAvailableChanged.count(), 0);
    QCOMPARE(backAvailableChanged.count(), 0);

    navigator->jump(3, QPoint());
    QCOMPARE(forwardAvailableChanged.count(), 0);
    QCOMPARE(backAvailableChanged.count(), 1);
    QCOMPARE(currentPageChanged.count(), 1);
    QCOMPARE(currentLocationChanged.count(), 0);
    QCOMPARE(jumped.count(), 1);

    navigator->jump(1, QPoint());
    QCOMPARE(forwardAvailableChanged.count(), 0);
    QCOMPARE(backAvailableChanged.count(), 1);
    QCOMPARE(currentPageChanged.count(), 2);
    QCOMPARE(currentLocationChanged.count(), 0);
    QCOMPARE(jumped.count(), 2);

    navigator->back();
    QCOMPARE(forwardAvailableChanged.count(), 1);
    QCOMPARE(backAvailableChanged.count(), 1);
    QCOMPARE(currentPageChanged.count(), 3);
    QCOMPARE(currentLocationChanged.count(), 0);
    QCOMPARE(jumped.count(), 3);

    navigator->forward();
    QCOMPARE(forwardAvailableChanged.count(), 2);
    QCOMPARE(backAvailableChanged.count(), 1);
    QCOMPARE(currentPageChanged.count(), 4);
    QCOMPARE(currentLocationChanged.count(), 0);
    QCOMPARE(jumped.count(), 4);
}

QTEST_MAIN(tst_QPdfPageNavigator)

#include "tst_qpdfpagenavigator.moc"