diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2021-08-09 15:19:02 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2021-08-11 22:32:42 +0200 |
commit | 6f833eff92fe703a13214a0c1a593d94e51847d1 (patch) | |
tree | c90f1862030c850cfe6b22e47a458c055a16e833 /tests/auto/corelib | |
parent | 761f32ae2ad98e8fb12a4f05b45b4aa277e47a1b (diff) |
Add QByteArrayView::trimmed()
Unlike simplified(), it just moves the end-points, without needing to
modify contents, so it makes sense (as for QStringView and
QLatin1String) to provide it. Moved QByteArray's trimmed() tests to
tst_QByteArrayApiSymmetry so that QBAV can now share them.
[ChangeLog][QtCore][QByteArrayView] Added trimmed().
Change-Id: Ifd7a752adb5f3d3e2ad0aa8220efa7e7d2d39baa
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Diffstat (limited to 'tests/auto/corelib')
3 files changed, 39 insertions, 29 deletions
diff --git a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp index b0d55f7542..9f4949f5b3 100644 --- a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp @@ -44,6 +44,7 @@ class tst_QByteArray : public QObject public: tst_QByteArray(); private slots: + // Note: much of the shared API is tested in ../qbytearrayapisymmetry/ void swap(); void qChecksum_data(); void qChecksum(); @@ -157,8 +158,6 @@ private slots: void fill(); void dataPointers(); void truncate(); - void trimmed(); - void trimmed_data(); void simplified(); void simplified_data(); void left(); @@ -2797,32 +2796,6 @@ void tst_QByteArray::truncate() QVERIFY(a.isEmpty()); } -void tst_QByteArray::trimmed() -{ - QFETCH(QByteArray, source); - QFETCH(QByteArray, expected); - - QCOMPARE(source.trimmed(), expected); - QByteArray copy = source; - QCOMPARE(std::move(copy).trimmed(), expected); - - if (source.isEmpty()) - QVERIFY(!source.isDetached()); -} - -void tst_QByteArray::trimmed_data() -{ - QTest::addColumn<QByteArray>("source"); - QTest::addColumn<QByteArray>("expected"); - - QTest::newRow("null") << QByteArray() << QByteArray(); - QTest::newRow("empty") << QByteArray("") << QByteArray(""); - QTest::newRow("no spaces") << QByteArray("a b\nc\td") << QByteArray("a b\nc\td"); - QTest::newRow("with spaces") << QByteArray("\t \v a b\r\nc \td\ve f \r\n\f") - << QByteArray("a b\r\nc \td\ve f"); - QTest::newRow("all spaces") << QByteArray("\t \r \n \v \f") << QByteArray(""); -} - void tst_QByteArray::simplified() { QFETCH(QByteArray, source); diff --git a/tests/auto/corelib/text/qbytearrayapisymmetry/tst_qbytearrayapisymmetry.cpp b/tests/auto/corelib/text/qbytearrayapisymmetry/tst_qbytearrayapisymmetry.cpp index fe0c3efbee..5f181647af 100644 --- a/tests/auto/corelib/text/qbytearrayapisymmetry/tst_qbytearrayapisymmetry.cpp +++ b/tests/auto/corelib/text/qbytearrayapisymmetry/tst_qbytearrayapisymmetry.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. @@ -121,6 +121,11 @@ private slots: void chop_QByteArrayView_data() { chop_data(); } void chop_QByteArrayView() { chop_impl<QByteArrayView>(); } + void trimmed_QByteArray_data() { trimmed_data(); } + void trimmed_QByteArray() { trimmed_impl<QByteArray>(); } + void trimmed_QByteArrayView_data() { trimmed_data(); } + void trimmed_QByteArrayView() { trimmed_impl<QByteArrayView>(); } + private: void startsWith_data(); template<typename Haystack, typename Needle> void startsWith_impl(); @@ -156,6 +161,9 @@ private: void chop_data(); template <typename ByteArray> void chop_impl(); + + void trimmed_data(); + template <typename ByteArray> void trimmed_impl(); }; static const auto empty = QByteArray(""); @@ -877,5 +885,33 @@ void tst_QByteArrayApiSymmetry::chop_impl() } } +void tst_QByteArrayApiSymmetry::trimmed_data() +{ + QTest::addColumn<QByteArray>("source"); + QTest::addColumn<QByteArray>("expected"); + + QTest::newRow("null") << QByteArray() << QByteArray(); + QTest::newRow("empty") << QByteArray("") << QByteArray(""); + QTest::newRow("no end-spaces") << QByteArray("a b\nc\td") << QByteArray("a b\nc\td"); + QTest::newRow("with end-spaces") + << QByteArray("\t \v a b\r\nc \td\ve f \r\n\f") << QByteArray("a b\r\nc \td\ve f"); + QTest::newRow("all spaces") << QByteArray("\t \r \n \v \f") << QByteArray(""); +} + +template <typename ByteArray> void tst_QByteArrayApiSymmetry::trimmed_impl() +{ + QFETCH(QByteArray, source); + QFETCH(QByteArray, expected); + + QCOMPARE(ByteArray(source).trimmed(), ByteArray(expected)); + ByteArray copy{source}; + QCOMPARE(std::move(copy).trimmed(), ByteArray(expected)); + + if constexpr (std::is_same_v<QByteArray, ByteArray>) { + if (source.isEmpty()) + QVERIFY(!source.isDetached()); + } +} + QTEST_APPLESS_MAIN(tst_QByteArrayApiSymmetry) #include "tst_qbytearrayapisymmetry.moc" diff --git a/tests/auto/corelib/text/qbytearrayview/tst_qbytearrayview.cpp b/tests/auto/corelib/text/qbytearrayview/tst_qbytearrayview.cpp index d65731fdbd..2953fc5c04 100644 --- a/tests/auto/corelib/text/qbytearrayview/tst_qbytearrayview.cpp +++ b/tests/auto/corelib/text/qbytearrayview/tst_qbytearrayview.cpp @@ -107,6 +107,7 @@ class tst_QByteArrayView : public QObject { Q_OBJECT private slots: + // Note: much of the shared API is tested in ../qbytearrayapisymmetry/ void constExpr() const; void basics() const; void literals() const; |