Improve the Object properties api. Use QString and export the methods that get/return...
[qtgstreamer:qtgstreamer.git] / tests / propertiestest.cpp
1 /*
2     Copyright (C) 2010  George Kiagiadakis <kiagiadakis.george@gmail.com>
3
4     This library is free software; you can redistribute it and/or modify
5     it under the terms of the GNU Lesser General Public License as published
6     by the Free Software Foundation; either version 2.1 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #include "qgsttest.h"
18 #include <QGst/Object>
19
20 class PropertiesTest : public QGstTest
21 {
22     Q_OBJECT
23 private slots:
24     void findPropertyTest();
25     void listPropertiesTest();
26     void getPropertyTest();
27 };
28
29 void PropertiesTest::findPropertyTest()
30 {
31     GstObject *bin = GST_OBJECT(gst_object_ref(GST_OBJECT(gst_bin_new(NULL))));
32     gst_object_sink(bin);
33     QGst::ObjectPtr object = QGst::ObjectPtr::wrap(bin, false);
34
35     QGlib::ParamSpecPtr param = object->findProperty("name");
36     QVERIFY(!param.isNull());
37     QVERIFY(param->name() == "name");
38
39     qDebug() << param->name() << param->nick() << param->description();
40 }
41
42 void PropertiesTest::listPropertiesTest()
43 {
44     GstObject *bin = GST_OBJECT(gst_object_ref(GST_OBJECT(gst_bin_new(NULL))));
45     gst_object_sink(bin);
46     QGst::ObjectPtr object = QGst::ObjectPtr::wrap(bin, false);
47
48     QList<QGlib::ParamSpecPtr> paramlist = object->listProperties();
49     QVERIFY(!paramlist.isEmpty());
50
51     foreach(const QGlib::ParamSpecPtr & param, paramlist) {
52         qDebug() << param->name() << param->nick() << param->description();
53     }
54 }
55
56 void PropertiesTest::getPropertyTest()
57 {
58     GstObject *bin = GST_OBJECT(gst_object_ref(GST_OBJECT(gst_bin_new(NULL))));
59     gst_object_sink(bin);
60     QGst::ObjectPtr object = QGst::ObjectPtr::wrap(bin, false);
61
62     try {
63         QString name = object->property("name").get<QString>();
64         QVERIFY(!name.isEmpty());
65         qDebug() << name;
66     } catch(...) {
67         QFAIL("Exception");
68     }
69 }
70
71 QTEST_APPLESS_MAIN(PropertiesTest)
72
73 #include "moc_qgsttest.cpp"
74 #include "propertiestest.moc"