Changeset View
Changeset View
Standalone View
Standalone View
tests/FilenameTest.cpp
- This file was added.
1 | #include <QDir> | ||||
---|---|---|---|---|---|
2 | #include <QFile> | ||||
3 | #include <QtTest> | ||||
4 | #include <QUuid> | ||||
5 | | ||||
6 | #include "ExportManager.h" | ||||
7 | | ||||
8 | class FilenameTest : public QObject | ||||
9 | { | ||||
10 | Q_OBJECT | ||||
11 | private: | ||||
12 | ExportManager* em; | ||||
13 | private Q_SLOTS: | ||||
14 | void initTestCase(); | ||||
15 | void testStrings(); | ||||
16 | void testDateTokens(); | ||||
17 | void testWindowTitle(); | ||||
18 | void testNumbering(); | ||||
19 | void testCombined(); | ||||
20 | }; | ||||
21 | | ||||
22 | void FilenameTest::initTestCase() | ||||
23 | { | ||||
24 | em = ExportManager::instance(); | ||||
25 | em->setTimestamp(QDateTime::fromString(QStringLiteral("2019-03-22T10:43:25"), Qt::ISODate)); | ||||
26 | em->setWindowTitle(QStringLiteral("Spectacle")); | ||||
27 | } | ||||
28 | | ||||
29 | void FilenameTest::testStrings() | ||||
30 | { | ||||
31 | QCOMPARE(em->formatFilename(QStringLiteral("Screenshot")), QStringLiteral("Screenshot")); | ||||
32 | // empty string produces Screenshot per default | ||||
33 | QCOMPARE(em->formatFilename(QStringLiteral("")), QStringLiteral("Screenshot")); | ||||
34 | // not a placeholder | ||||
35 | QCOMPARE(em->formatFilename(QStringLiteral("%")), QStringLiteral("%")); | ||||
36 | QCOMPARE(em->formatFilename(QStringLiteral("%K")), QStringLiteral("%K")); | ||||
37 | } | ||||
38 | | ||||
39 | void FilenameTest::testDateTokens() | ||||
40 | { | ||||
41 | QCOMPARE(em->formatFilename(QStringLiteral("%Y")), QStringLiteral("2019")); | ||||
42 | QCOMPARE(em->formatFilename(QStringLiteral("%y")), QStringLiteral("19")); | ||||
43 | QCOMPARE(em->formatFilename(QStringLiteral("%M")), QStringLiteral("03")); | ||||
44 | QCOMPARE(em->formatFilename(QStringLiteral("%D")), QStringLiteral("22")); | ||||
45 | QCOMPARE(em->formatFilename(QStringLiteral("%H")), QStringLiteral("10")); | ||||
46 | QCOMPARE(em->formatFilename(QStringLiteral("%m")), QStringLiteral("43")); | ||||
47 | QCOMPARE(em->formatFilename(QStringLiteral("%S")), QStringLiteral("25")); | ||||
48 | } | ||||
49 | | ||||
50 | void FilenameTest::testWindowTitle() | ||||
51 | { | ||||
52 | em->setGrabMode(ImageGrabber::ActiveWindow); | ||||
53 | QCOMPARE(em->formatFilename(QStringLiteral("%T")), QStringLiteral("Spectacle")); | ||||
54 | QCOMPARE(em->formatFilename(QStringLiteral("Before%TAfter")), | ||||
55 | QStringLiteral("BeforeSpectacleAfter")); | ||||
56 | em->setGrabMode(ImageGrabber::FullScreen); | ||||
57 | //Empty String produces Screenshot | ||||
58 | QCOMPARE(em->formatFilename(QStringLiteral("%T")), QStringLiteral("Screenshot")); | ||||
59 | QCOMPARE(em->formatFilename(QStringLiteral("Before%TAfter")), QStringLiteral("BeforeAfter")); | ||||
60 | QCOMPARE(em->formatFilename(QStringLiteral("Before_%T_After")), QStringLiteral("Before_After")); | ||||
61 | } | ||||
62 | | ||||
63 | void FilenameTest::testNumbering() | ||||
64 | { | ||||
65 | QString baseName = QStringLiteral("spectacle_test_")+ QUuid::createUuid().toString(); | ||||
66 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%d")), baseName+QStringLiteral("_1")); | ||||
67 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%1d")), baseName+QStringLiteral("_1")); | ||||
68 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%2d")), baseName+QStringLiteral("_01")); | ||||
69 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%3d")), baseName+QStringLiteral("_001")); | ||||
70 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%4d")), baseName+QStringLiteral("_0001")); | ||||
71 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%d_%2d_%3d")), | ||||
72 | baseName+QStringLiteral("_1_01_001")); | ||||
73 | QFile file(QDir(em->defaultSaveLocation()).filePath(baseName + QStringLiteral("_1.png"))); | ||||
74 | file.open(QIODevice::WriteOnly); | ||||
75 | QCOMPARE(em->formatFilename(baseName+QStringLiteral("_%d")), baseName+QStringLiteral("_2")); | ||||
76 | file.remove(); | ||||
77 | } | ||||
78 | | ||||
79 | void FilenameTest::testCombined() | ||||
80 | { | ||||
81 | em->setGrabMode(ImageGrabber::ActiveWindow); | ||||
82 | QCOMPARE(em->formatFilename(QStringLiteral("App_%T_Date_%Y%M%D_Time_%H:%m:%S%F")), | ||||
83 | QStringLiteral("App_Spectacle_Date_20190322_Time_10:43:25%F")); | ||||
84 | em->setGrabMode(ImageGrabber::FullScreen); | ||||
85 | QCOMPARE(em->formatFilename(QStringLiteral("App_%T_Date_%Y%M%D_Time_%H:%m:%S%F")), | ||||
86 | QStringLiteral("App_Date_20190322_Time_10:43:25%F")); | ||||
87 | } | ||||
88 | | ||||
89 | QTEST_MAIN(FilenameTest) | ||||
90 | | ||||
91 | #include "FilenameTest.moc" |