QGstClock test
[qtgstreamer:qtgstreamer.git] / tests / auto / clocktest.cpp
1 /*
2     Copyright (C) 2010  Collabora Multimedia.
3       @author Mauricio Piacentini <mauricio.piacentini@collabora.co.uk>
4
5     This library is free software; you can redistribute it and/or modify
6     it under the terms of the GNU Lesser General Public License as published
7     by the Free Software Foundation; either version 2.1 of the License, or
8     (at your option) any later version.
9
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU Lesser General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18 #include "qgsttest.h"
19 #include <QGst/Clock>
20
21 class ClockTest : public QGstTest
22 {
23     Q_OBJECT
24
25 private Q_SLOTS:
26     void systemTest();
27     void timeFromClockTimeTest();
28     void clockTimeFromTimeTest();
29 };
30
31 void ClockTest::systemTest()
32 {
33     QGst::ClockPtr sysclock = QGst::Clock::systemClock();
34
35     QGst::ClockTime clocktime1 = sysclock->clockTime();
36     QTime time1 = sysclock->time();
37     QVERIFY(time1.isValid());
38
39     QGst::ClockTime clocktime2 = sysclock->clockTime();
40     QVERIFY(clocktime2 > clocktime1);
41 }
42
43 void ClockTest::timeFromClockTimeTest()
44 {
45     QCOMPARE(QGst::Clock::timeFromClockTime(3600 * 1000 * 1000000LL).toString(),
46              QString("01:00:00")); // 1 hour
47     QCOMPARE(QGst::Clock::timeFromClockTime(4000 * 1000 * 1000000LL).toString(),
48              QString("01:06:40"));
49     QCOMPARE(QGst::Clock::timeFromClockTime(50001 * 1000 * 1000000LL).toString(),
50              QString("13:53:21"));
51     QCOMPARE(QGst::Clock::timeFromClockTime(120000 * 1000 * 1000000LL).toString(),
52              QString("09:20:00")); // wraps
53 }
54
55 void ClockTest::clockTimeFromTimeTest()
56 {
57     QCOMPARE(static_cast<quint64>(QGst::Clock::clockTimeFromTime(QTime(1, 0))),
58              static_cast<quint64>(3600 * 1000 * 1000000LL)); // 1 hour
59
60     QCOMPARE(static_cast<quint64>(QGst::Clock::clockTimeFromTime(QTime(1, 6, 40))),
61              static_cast<quint64>(4000 * 1000 * 1000000LL));
62
63     QCOMPARE(static_cast<quint64>(QGst::Clock::clockTimeFromTime(QTime(13, 53, 21, 15))),
64              static_cast<quint64>((50001 * 1000 +15) * 1000000LL));
65 }
66
67
68 QTEST_MAIN(ClockTest)
69
70 #include "moc_qgsttest.cpp"
71 #include "clocktest.moc"
72