From 68e04c3ac148bcbe71f2deeb7288563f6cdbcab5 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 18 May 2012 18:38:25 +0200 Subject: QStringList::join: add an overload taking a single QChar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This overload avoids the needless heap allocation that the traditional overload incurs due to the implicit QChar -> QString conversion involved there. In order to share the implementation between the two overloads, QStringList_join now takes the separator as a (Char*,int) tuple instead of as a QString. Change-Id: I92961f13a3f19099de2a6e2df9f4789a12fc83a0 Reviewed-by: João Abecasis Reviewed-by: Thiago Macieira --- .../corelib/tools/qstringlist/tst_qstringlist.cpp | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'tests') diff --git a/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp b/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp index 16a329f1dd..0f0fa75bc3 100644 --- a/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp +++ b/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp @@ -66,6 +66,8 @@ private slots: void join() const; void join_data() const; void joinEmptiness() const; + void joinChar() const; + void joinChar_data() const; void initializeList() const; }; @@ -362,6 +364,42 @@ void tst_QStringList::join_data() const << QString("a b c"); } +void tst_QStringList::joinChar() const +{ + QFETCH(QStringList, input); + QFETCH(QChar, separator); + QFETCH(QString, expectedResult); + + QCOMPARE(input.join(separator), expectedResult); +} + +void tst_QStringList::joinChar_data() const +{ + QTest::addColumn("input"); + QTest::addColumn("separator"); + QTest::addColumn("expectedResult"); + + QTest::newRow("data1") + << QStringList() + << QChar(QLatin1Char(' ')) + << QString(); + + QTest::newRow("data5") + << (QStringList() + << QLatin1String("a") + << QLatin1String("b")) + << QChar(QLatin1Char(' ')) + << QString("a b"); + + QTest::newRow("data6") + << (QStringList() + << QLatin1String("a") + << QLatin1String("b") + << QLatin1String("c")) + << QChar(QLatin1Char(' ')) + << QString("a b c"); +} + void tst_QStringList::joinEmptiness() const { QStringList list; -- cgit v1.2.3