diff --git a/tests/auto/debugger/main.cpp b/tests/auto/debugger/main.cpp index b04b1aeafb47685a3173417d85f50a2977266633..6636b2d4bb2075e5d668b11f986f962f5ed93a52 100644 --- a/tests/auto/debugger/main.cpp +++ b/tests/auto/debugger/main.cpp @@ -4,6 +4,7 @@ #include <QtCore/QProcess> #include <QtCore/QFileInfo> #include <QtCore/QStringList> +#include <QtCore/QTextCodec> #include <QtGui/QStandardItemModel> #include <QtGui/QStringListModel> #include <QtTest/QtTest> @@ -142,6 +143,7 @@ private slots: void dumpQList_Int3(); void dumpQObject(); void dumpQString(); + void dumpQTextCodec(); void dumpQVariant_invalid(); void dumpQVariant_QString(); void dumpQVariant_QStringList(); @@ -163,6 +165,7 @@ private: void dumpQDateTimeHelper(QDateTime &d); void dumpQDirHelper(QDir &d); void dumpQFileHelper(const QString &name, bool exists); + void dumpQTextCodecHelper(QTextCodec *codec); }; static QByteArray stripped(QByteArray ba) @@ -442,9 +445,21 @@ static const QByteArray generateBoolSpec(bool b) return QByteArray("value=").append(boolToVal(b)).append(",type='bool',numchild='0'"); } +template <typename T> +static const QByteArray generateIntegerSpec(T n, QString type) +{ + return QByteArray("value='").append(QString::number(n)).append("',type='"). + append(type).append("',numchild='0'"); +} + static const QByteArray generateLongSpec(long n) { - return QByteArray("value='").append(QString::number(n)).append("',type='long',numchild='0'"); + return generateIntegerSpec(n, "long"); +} + +static const QByteArray generateIntSpec(int n) +{ + return generateIntegerSpec(n, "int"); } void tst_Debugger::dumpQAbstractItemModelHelper(QAbstractItemModel &m) @@ -598,7 +613,7 @@ void tst_Debugger::dumpQDateTimeHelper(QDateTime &d) expected.append(utfToBase64(d.toString())).append("',valueencoded='2',"); expected.append("type='$T',numchild='3',children=["); expected.append("{name='isNull',").append(generateBoolSpec(d.isNull())).append("},"); - expected.append("{name='toTime_t',").append(generateLongSpec(d.toTime_t())).append("},"); + expected.append("{name='toTime_t',").append(generateLongSpec((d.toTime_t()))).append("},"); expected.append("{name='toString',").append(generateQStringSpec(d.toString())).append("},"); expected.append("{name='toString_(ISO)',").append(generateQStringSpec(d.toString(Qt::ISODate))).append("},"); expected.append("{name='toString_(SystemLocale)',"). @@ -942,6 +957,25 @@ void tst_Debugger::dumpStdVector() vector.push_back(0); } +void tst_Debugger::dumpQTextCodecHelper(QTextCodec *codec) +{ + const QByteArray &name = codec->name().toBase64(); + QByteArray expected = QByteArray("value='").append(name). + append("',valueencoded='1',type='"NS"QTextCodec',numchild='2',children=["). + append("{name='name',value='").append(name).append("',type='"NS"QByteArray'"). + append(",numchild='0',valueencoded='1'},").append("{name='mibEnum',"). + append(generateIntSpec(codec->mibEnum())).append("}"); + expected.append("]"); + testDumper(expected, codec, NS"QTextCodec", true); +} + +void tst_Debugger::dumpQTextCodec() +{ + const QList<QByteArray> &codecNames = QTextCodec::availableCodecs(); + foreach (const QByteArray &codecName, codecNames) + dumpQTextCodecHelper(QTextCodec::codecForName(codecName)); +} + // // Creator //