~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/poppler/qt4/tests/check_metadata.cpp

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <QtTest/QtTest>
 
2
 
 
3
#include <poppler-qt4.h>
 
4
 
 
5
class TestMetaData: public QObject
 
6
{
 
7
    Q_OBJECT
 
8
private slots:
 
9
    void checkStrings_data();
 
10
    void checkStrings();
 
11
    void checkStrings2_data();
 
12
    void checkStrings2();
 
13
    void checkStringKeys();
 
14
    void checkLinearised();
 
15
    void checkNumPages();
 
16
    void checkDate();
 
17
    void checkPageSize();
 
18
    void checkPortraitOrientation();
 
19
    void checkLandscapeOrientation();
 
20
    void checkUpsideDownOrientation();
 
21
    void checkSeascapeOrientation();
 
22
    void checkVersion();
 
23
    void checkPdfId();
 
24
    void checkNoPdfId();
 
25
};
 
26
 
 
27
void TestMetaData::checkStrings_data()
 
28
{
 
29
    QTest::addColumn<QString>("key");
 
30
    QTest::addColumn<QString>("value");
 
31
 
 
32
    QTest::newRow( "Author" ) << "Author" << "Brad Hards";
 
33
    QTest::newRow( "Title" ) << "Title" << "Two pages";
 
34
    QTest::newRow( "Subject" ) << "Subject"
 
35
                               << "A two page layout for poppler testing";
 
36
    QTest::newRow( "Keywords" ) << "Keywords" << "Qt4 bindings";
 
37
    QTest::newRow( "Creator" ) << "Creator" << "iText: cgpdftops CUPS filter";
 
38
    QTest::newRow( "Producer" ) << "Producer" << "Acrobat Distiller 7.0 for Macintosh";
 
39
}
 
40
 
 
41
void TestMetaData::checkStrings()
 
42
{
 
43
    Poppler::Document *doc;
 
44
    doc = Poppler::Document::load("../../../test/unittestcases/doublepage.pdf");
 
45
    QVERIFY( doc );
 
46
 
 
47
    QFETCH( QString, key );
 
48
    QFETCH( QString, value );
 
49
    QCOMPARE( doc->info(key), value );
 
50
 
 
51
    delete doc;
 
52
}
 
53
 
 
54
void TestMetaData::checkStrings2_data()
 
55
{
 
56
    QTest::addColumn<QString>("key");
 
57
    QTest::addColumn<QString>("value");
 
58
 
 
59
    QTest::newRow( "Title" ) << "Title" << "Malaga hotels";
 
60
    QTest::newRow( "Author" ) << "Author" << "Brad Hards";
 
61
    QTest::newRow( "Creator" ) << "Creator" << "Safari: cgpdftops CUPS filter";
 
62
    QTest::newRow( "Producer" )  << "Producer" << "Acrobat Distiller 7.0 for Macintosh";
 
63
    QTest::newRow( "Keywords" ) << "Keywords" << "First\rSecond\rthird";
 
64
    QTest::newRow( "Custom1" ) << "Custom1" << "CustomValue1";
 
65
    QTest::newRow( "Custom2" ) << "Custom2" << "CustomValue2";
 
66
}
 
67
 
 
68
void TestMetaData::checkStrings2()
 
69
{
 
70
    Poppler::Document *doc;
 
71
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
72
    QVERIFY( doc );
 
73
 
 
74
    QFETCH( QString, key );
 
75
    QFETCH( QString, value );
 
76
    QCOMPARE( doc->info(key), value );
 
77
 
 
78
    delete doc;
 
79
}
 
80
 
 
81
void TestMetaData::checkStringKeys()
 
82
{
 
83
    Poppler::Document *doc;
 
84
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
85
    QVERIFY( doc );
 
86
 
 
87
    QStringList keyList;
 
88
    keyList << "Title" << "Author" << "Creator" << "Keywords" << "CreationDate";
 
89
    keyList << "Producer" << "ModDate" << "Custom1" << "Custom2";
 
90
    keyList.sort();
 
91
    QStringList keysInDoc = doc->infoKeys();
 
92
    keysInDoc.sort();
 
93
    QCOMPARE( keysInDoc, keyList );
 
94
 
 
95
    delete doc;
 
96
}
 
97
 
 
98
void TestMetaData::checkLinearised()
 
99
{
 
100
    Poppler::Document *doc;
 
101
    doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
 
102
    QVERIFY( doc );
 
103
 
 
104
    QVERIFY( doc->isLinearized() );
 
105
 
 
106
    delete doc;
 
107
 
 
108
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
109
    QVERIFY( doc );
 
110
    QCOMPARE( doc->isLinearized(), false );
 
111
 
 
112
    delete doc;
 
113
}
 
114
 
 
115
void TestMetaData::checkPortraitOrientation()
 
116
{
 
117
    Poppler::Document *doc;
 
118
    doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
 
119
    QVERIFY( doc );
 
120
  
 
121
    Poppler::Page *page = doc->page(0);
 
122
    QCOMPARE( page->orientation(), Poppler::Page::Portrait );
 
123
 
 
124
    delete page;
 
125
    delete doc;
 
126
}
 
127
 
 
128
void TestMetaData::checkNumPages()
 
129
{
 
130
    Poppler::Document *doc;
 
131
    doc = Poppler::Document::load("../../../test/unittestcases/doublepage.pdf");
 
132
    QVERIFY( doc );
 
133
    QCOMPARE( doc->numPages(), 2 );
 
134
 
 
135
    delete doc;
 
136
 
 
137
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
138
    QVERIFY( doc );
 
139
    QCOMPARE( doc->numPages(), 1 );
 
140
 
 
141
    delete doc;
 
142
}
 
143
 
 
144
void TestMetaData::checkDate()
 
145
{
 
146
    Poppler::Document *doc;
 
147
 
 
148
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
149
    QVERIFY( doc );
 
150
    QCOMPARE( doc->date("ModDate"), QDateTime(QDate(2005, 12, 5), QTime(9,44,46), Qt::UTC ) );
 
151
    QCOMPARE( doc->date("CreationDate"), QDateTime(QDate(2005, 8, 13), QTime(1,12,11), Qt::UTC ) );
 
152
 
 
153
    delete doc;
 
154
}
 
155
 
 
156
void TestMetaData::checkPageSize()
 
157
{
 
158
    Poppler::Document *doc;
 
159
 
 
160
    doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
 
161
    QVERIFY( doc );
 
162
    Poppler::Page *page = doc->page(0);
 
163
    QCOMPARE( page->pageSize(), QSize(595, 842) );
 
164
    QCOMPARE( page->pageSizeF(), QSizeF(595.22, 842) );
 
165
 
 
166
    delete page;
 
167
    delete doc;
 
168
}
 
169
 
 
170
 
 
171
void TestMetaData::checkLandscapeOrientation()
 
172
{
 
173
    Poppler::Document *doc;
 
174
    doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
 
175
    QVERIFY( doc );
 
176
  
 
177
    Poppler::Page *page = doc->page(1);
 
178
    QCOMPARE( page->orientation(), Poppler::Page::Landscape );
 
179
 
 
180
    delete page;
 
181
    delete doc;
 
182
}
 
183
 
 
184
void TestMetaData::checkUpsideDownOrientation()
 
185
{
 
186
    Poppler::Document *doc;
 
187
    doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
 
188
    QVERIFY( doc );
 
189
 
 
190
    Poppler::Page *page = doc->page(2);
 
191
    QCOMPARE( page->orientation(), Poppler::Page::UpsideDown );
 
192
 
 
193
    delete page;
 
194
    delete doc;
 
195
}
 
196
 
 
197
void TestMetaData::checkSeascapeOrientation()
 
198
{
 
199
    Poppler::Document *doc;
 
200
    doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
 
201
    QVERIFY( doc );
 
202
 
 
203
    Poppler::Page *page = doc->page(3);
 
204
    QCOMPARE( page->orientation(), Poppler::Page::Seascape );
 
205
 
 
206
    delete page;
 
207
    delete doc;
 
208
}
 
209
 
 
210
void TestMetaData::checkVersion()
 
211
{
 
212
    Poppler::Document *doc;
 
213
    doc = Poppler::Document::load("../../../test/unittestcases/doublepage.pdf");
 
214
    QVERIFY( doc );
 
215
 
 
216
    QCOMPARE( doc->pdfVersion(), 1.6 );
 
217
    int major = 0, minor = 0;
 
218
    doc->getPdfVersion( &major, &minor );
 
219
    QCOMPARE( major, 1 );
 
220
    QCOMPARE( minor, 6 );
 
221
 
 
222
    delete doc;
 
223
}
 
224
 
 
225
void TestMetaData::checkPdfId()
 
226
{
 
227
    Poppler::Document *doc;
 
228
    doc = Poppler::Document::load("../../../test/unittestcases/A6EmbeddedFiles.pdf");
 
229
    QVERIFY( doc );
 
230
 
 
231
    const QByteArray referencePermanentId( "00C9D5B6D8FB11D7A902003065D630AA" );
 
232
    const QByteArray referenceUpdateId( "39AECAE6D8FB11D7A902003065D630AA" );
 
233
 
 
234
    {
 
235
    // no IDs wanted, just existance check
 
236
    QVERIFY( doc->getPdfId( 0, 0 ) );
 
237
    }
 
238
    {
 
239
    // only permanent ID
 
240
    QByteArray permanentId;
 
241
    QVERIFY( doc->getPdfId( &permanentId, 0 ) );
 
242
    QCOMPARE( permanentId.toUpper(), referencePermanentId );
 
243
    }
 
244
    {
 
245
    // only update ID
 
246
    QByteArray updateId;
 
247
    QVERIFY( doc->getPdfId( 0, &updateId ) );
 
248
    QCOMPARE( updateId.toUpper(), referenceUpdateId );
 
249
    }
 
250
    {
 
251
    // both IDs
 
252
    QByteArray permanentId;
 
253
    QByteArray updateId;
 
254
    QVERIFY( doc->getPdfId( &permanentId, &updateId ) );
 
255
    QCOMPARE( permanentId.toUpper(), referencePermanentId );
 
256
    QCOMPARE( updateId.toUpper(), referenceUpdateId );
 
257
    }
 
258
 
 
259
    delete doc;
 
260
}
 
261
 
 
262
void TestMetaData::checkNoPdfId()
 
263
{
 
264
    Poppler::Document *doc;
 
265
    doc = Poppler::Document::load("../../../test/unittestcases/WithActualText.pdf");
 
266
    QVERIFY( doc );
 
267
 
 
268
    QVERIFY( !doc->getPdfId( 0, 0 ) );
 
269
 
 
270
    delete doc;
 
271
}
 
272
 
 
273
QTEST_MAIN(TestMetaData)
 
274
#include "check_metadata.moc"
 
275