diff options
Diffstat (limited to 'test/qt/tst_qdbustype.cpp')
-rw-r--r-- | test/qt/tst_qdbustype.cpp | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/test/qt/tst_qdbustype.cpp b/test/qt/tst_qdbustype.cpp deleted file mode 100644 index 9520ae6d..00000000 --- a/test/qt/tst_qdbustype.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/* -*- C++ -*- - * - * Copyright (C) 2006 Trolltech AS. All rights reserved. - * Author: Thiago Macieira <thiago.macieira@trolltech.com> - * - * Licensed under the Academic Free License version 2.1 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ -#define DBUS_API_SUBJECT_TO_CHANGE 1 -#include <qcoreapplication.h> -#include <QtTest/QtTest> - -#include <dbus/qdbus.h> - -class tst_QDBusType: public QObject -{ - Q_OBJECT - -private slots: - void fromType_data(); - void fromType(); - void fromSignature_data(); - void fromSignature(); - void arrayOf_data(); - void arrayOf(); - void mapOf_data(); - void mapOf(); -}; - -inline QTestData &operator<<(QTestData &data, QVariant::Type t) -{ - return data << int(t); -} - -void tst_QDBusType::fromType_data() -{ - fromSignature_data(); -} - -void tst_QDBusType:: arrayOf_data() -{ - fromSignature_data(); -} - -void tst_QDBusType::mapOf_data() -{ - fromSignature_data(); -} - -void tst_QDBusType::fromSignature_data() -{ - QTest::addColumn<QString>("signature"); - QTest::addColumn<char>("type"); - QTest::addColumn<int>("qvariantType"); - QTest::addColumn<bool>("isValid"); - QTest::addColumn<bool>("isBasic"); - QTest::addColumn<bool>("isContainer"); - QTest::addColumn<int>("subtypeCount"); - - QTest::newRow("null") << QString() << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("empty") << QString("") << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("invalid") << QString("~") << '\0' << QVariant::Invalid << false << false << false << 0; - - // integers: - QTest::newRow("byte") << "y" << 'y' << QVariant::UInt << true << true << false << 0; - QTest::newRow("boolean") << "b" << 'b' << QVariant::Bool << true << true << false << 0; - QTest::newRow("int16") << "n" << 'n' << QVariant::Int << true << true << false << 0; - QTest::newRow("uint16") << "q" << 'q' << QVariant::UInt << true << true << false << 0; - QTest::newRow("int32") << "i" << 'i' << QVariant::Int << true << true << false << 0; - QTest::newRow("uint32") << "u" << 'u' << QVariant::UInt << true << true << false << 0; - QTest::newRow("int64") << "x" << 'x' << QVariant::LongLong << true << true << false << 0; - QTest::newRow("uint64") << "t" << 't' << QVariant::ULongLong << true << true << false << 0; - - // double: - QTest::newRow("double") << "d" << 'd' << QVariant::Double << true << true << false << 0; - - // string types: - QTest::newRow("string") << "s" << 's' << QVariant::String << true << true << false << 0; - QTest::newRow("objpath") << "o" << 'o' << QVariant::String << true << true << false << 0; - QTest::newRow("signature")<<"g" << 'g' << QVariant::String << true << true << false << 0; - - // variant - QTest::newRow("variant") << "v" << 'v' << QVariant::UserType << true << false << true << 0; - - // compound types: - QTest::newRow("struct-empty") << "()" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("struct-invalid") << "(~)" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("struct-unterminated")<< "(iii" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("struct-bad-nest") << "(i(i)((i)i)" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("struct1") << "(i)" << 'r' << QVariant::List << true << false << true << 1; - QTest::newRow("struct2") << "(ii)" << 'r' << QVariant::List << true << false << true << 2; - - QTest::newRow("array-empty") << "a" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("array-invalid") << "a~" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("array-simple") << "ab" << 'a' << QVariant::List << true << false << true << 1; - QTest::newRow("bytearray") << "ay" << 'a' << QVariant::ByteArray << true << false << true << 1; - QTest::newRow("stringlist") << "as" << 'a' << QVariant::StringList << true << false << true << 1; - - QTest::newRow("map-empty") << "e" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid1") << "a{}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid2") << "a{~}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid3") << "a{e}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid4") << "a{i}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid5") << "a{(i)d}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid6") << "{}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-invalid7") << "{i}" << '\0' << QVariant::Invalid << false << false << false << 0; - //QTest::newRow("map-invalid8") << "{is}" << '\0' << QVariant::Invalid << false << false << false << 0; // this is valid when "a" is prepended - QTest::newRow("map-bad-nesting") << "a{i(s}" << '\0' << QVariant::Invalid << false << false << false << 0; - QTest::newRow("map-ok1") << "a{is}" << 'a' << QVariant::Map << true << false << true << 1; - QTest::newRow("map-ok2") << "a{sv}" << 'a' << QVariant::Map << true << false << true << 1; - - // compound of compounds: - QTest::newRow("struct-struct") << "((i))" << 'r' << QVariant::List << true << false << true << 1; - QTest::newRow("struct-structs") << "((ii)d(i))" << 'r' << QVariant::List << true << false << true << 3; - QTest::newRow("map-struct") << "a{s(ii)}" << 'a' << QVariant::Map << true << false << true << 1; - QTest::newRow("map-stringlist") << "a{sas}" << 'a' << QVariant::Map << true << false << true << 1; - QTest::newRow("map-map") << "a{ia{sv}}" << 'a' << QVariant::Map << true << false << true << 1; - QTest::newRow("array-struct") << "a(ii)" << 'a' << QVariant::List << true << false << true << 1; - QTest::newRow("array-array") << "aai" << 'a' << QVariant::List << true << false << true << 1; - QTest::newRow("array-map") << "aa{sv}" << 'a' << QVariant::List << true << false << true << 1; -} - -void tst_QDBusType::fromType() -{ - QFETCH(QString, signature); - if (signature.length() != 1) - // can't transform to typecode - return; - - QFETCH(char, type); - QFETCH(int, qvariantType); - QFETCH(bool, isValid); - QFETCH(bool, isBasic); - QFETCH(bool, isContainer); - - QDBusType t(signature.at(0).toLatin1()); - - QCOMPARE((char)t.dbusType(), type); - QCOMPARE(t.qvariantType(), QVariant::Type(qvariantType)); - QCOMPARE(t.isValid(), isValid); - QCOMPARE(t.isBasic(), isBasic); - QCOMPARE(t.isContainer(), isContainer); -} - -void tst_QDBusType::fromSignature() -{ - QFETCH(QString, signature); - QFETCH(char, type); - QFETCH(int, qvariantType); - QFETCH(bool, isValid); - QFETCH(bool, isBasic); - QFETCH(bool, isContainer); - QFETCH(int, subtypeCount); - - QDBusType t(signature); - - QCOMPARE((char)t.dbusType(), type); - QCOMPARE(t.qvariantType(), QVariant::Type(qvariantType)); - QCOMPARE(t.isValid(), isValid); - QCOMPARE(t.isBasic(), isBasic); - QCOMPARE(t.isContainer(), isContainer); - - if (isValid) - QCOMPARE(QLatin1String(t.dbusSignature()), signature); - - QCOMPARE(t.subTypes().count(), subtypeCount); -} - -void tst_QDBusType::arrayOf() -{ - QFETCH(QString, signature); - QFETCH(char, type); - QFETCH(int, qvariantType); - QFETCH(bool, isValid); - QFETCH(bool, isBasic); - QFETCH(bool, isContainer); - QFETCH(int, subtypeCount); - - QDBusType arr("a" + signature.toLatin1()); - QCOMPARE(arr.isValid(), isValid); - QVERIFY(!arr.isBasic()); - - if (isValid) { - QVERIFY(arr.isContainer()); - QVERIFY(arr.isArray()); - QCOMPARE((char)arr.dbusType(), 'a'); - QCOMPARE(arr.subTypes().count(), 1); - - // handle special cases: - if (type == 'y') - QCOMPARE(arr.qvariantType(), QVariant::ByteArray); - else if (type == 's' || type == 'o' || type == 'g') - QCOMPARE(arr.qvariantType(), QVariant::StringList); - else - QCOMPARE(arr.qvariantType(), QVariant::List); - - // handle the array element now: - QDBusType t = arr.arrayElement(); - - QCOMPARE((char)t.dbusType(), type); - QCOMPARE(t.qvariantType(), QVariant::Type(qvariantType)); - QCOMPARE(t.isValid(), isValid); - QCOMPARE(t.isBasic(), isBasic); - QCOMPARE(t.isContainer(), isContainer); - - QCOMPARE(QLatin1String(t.dbusSignature()), signature); - - QCOMPARE(t.subTypes().count(), subtypeCount); - } -} - -void tst_QDBusType::mapOf() -{ - QFETCH(QString, signature); - QFETCH(char, type); - QFETCH(int, qvariantType); - QFETCH(bool, isValid); - QFETCH(bool, isBasic); - QFETCH(bool, isContainer); - QFETCH(int, subtypeCount); - - QDBusType map("a{s" + signature.toLatin1() + '}'); - QCOMPARE(map.isValid(), isValid); - QVERIFY(!map.isBasic()); - - if (isValid) { - QVERIFY(map.isContainer()); - QVERIFY(map.isArray()); - QVERIFY(map.isMap()); - QCOMPARE((char)map.dbusType(), 'a'); - QCOMPARE(map.subTypes().count(), 1); - - // handle the array element now: - QDBusType dict_entry = map.arrayElement(); - QVERIFY(dict_entry.isValid()); - QVERIFY(dict_entry.isContainer()); - QVERIFY(!dict_entry.isMap()); - QVERIFY(!dict_entry.isArray()); - - QVERIFY(map.mapKey().isBasic()); - - // handle the value: - QDBusType t = map.mapValue(); - - QCOMPARE((char)t.dbusType(), type); - QCOMPARE(t.qvariantType(), QVariant::Type(qvariantType)); - QCOMPARE(t.isValid(), isValid); - QCOMPARE(t.isBasic(), isBasic); - QCOMPARE(t.isContainer(), isContainer); - - QCOMPARE(QLatin1String(t.dbusSignature()), signature); - - QCOMPARE(t.subTypes().count(), subtypeCount); - } -} - -QTEST_MAIN(tst_QDBusType) - -#include "tst_qdbustype.moc" |