summaryrefslogtreecommitdiff
path: root/qt5/tests/check_outline.cpp
blob: 3d9371a4556fee2feb88d01b52f856ef09705536 (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
#include <QtTest/QtTest>

#include <poppler-qt5.h>

#include <memory>

class TestOutline : public QObject
{
    Q_OBJECT
public:
    TestOutline(QObject *parent = nullptr) : QObject(parent) { }
private slots:
    void checkOutline_xr02();
};

void TestOutline::checkOutline_xr02()
{
    std::unique_ptr<Poppler::Document> document { Poppler::Document::load(TESTDATADIR "/unittestcases/xr02.pdf") };
    QVERIFY(document.get());

    const auto outline = document->outline();
    QCOMPARE(outline.size(), 2);

    const auto &foo = outline[0];
    QVERIFY(!foo.isNull());
    QCOMPARE(foo.name(), QStringLiteral("foo"));
    QCOMPARE(foo.isOpen(), false);
    const auto fooDest = foo.destination();
    QVERIFY(!fooDest.isNull());
    QCOMPARE(fooDest->pageNumber(), 1);
    QVERIFY(foo.externalFileName().isEmpty());
    QVERIFY(foo.uri().isEmpty());
    QVERIFY(!foo.hasChildren());
    QVERIFY(foo.children().isEmpty());

    const auto &bar = outline[1];
    QVERIFY(!bar.isNull());
    QCOMPARE(bar.name(), QStringLiteral("bar"));
    QCOMPARE(bar.isOpen(), false);
    const auto barDest = bar.destination();
    QVERIFY(!barDest.isNull());
    QCOMPARE(barDest->pageNumber(), 2);
    QVERIFY(bar.externalFileName().isEmpty());
    QVERIFY(bar.uri().isEmpty());
    QVERIFY(!bar.hasChildren());
    QVERIFY(bar.children().isEmpty());
}

QTEST_GUILESS_MAIN(TestOutline)
#include "check_outline.moc"