summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-12-14 15:31:38 +0100
committerMarc Mutz <marc.mutz@qt.io>2024-01-09 18:54:46 +0100
commit789cbeacdf1b894cde5e6cd6affc41d154716435 (patch)
treec6ffed85b68edd18eded917dbe9ede5e33569306 /tests/auto/network
parent2c65f2cd11e1529b028ed65e08eb672364f777fa (diff)
tst_QHttpHeaders: DRY the value() test
Clean up the C'n'P in the test a bit before adding tests of new functions. Pick-to: 6.7 Task-number: QTBUG-107042 Change-Id: I2da20815fd46fdd7f150c224f41eee53abed313d Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp63
1 files changed, 44 insertions, 19 deletions
diff --git a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp
index 84f382be38..8e6c77e3dd 100644
--- a/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp
+++ b/tests/auto/network/access/qhttpheaders/tst_qhttpheaders.cpp
@@ -169,33 +169,58 @@ void tst_QHttpHeaders::accessors()
QVERIFY(h1.has("accept"));
// values()
- QCOMPARE(h1.values(n1).at(0), v1);
- QCOMPARE(h1.values(N1).at(0), v1);
- QCOMPARE(h1.values(QHttpHeaders::WellKnownHeader::Accept).at(0), "nothing");
- QCOMPARE(h1.values("Accept").at(0), "nothing");
- QVERIFY(h1.values(N2).isEmpty());
- QVERIFY(h1.values(QHttpHeaders::WellKnownHeader::Allow).isEmpty());
+#define EXISTS_NOT(H, N) do { \
+ QVERIFY(!H.has(N)); \
+ const auto values = H.values(N); \
+ QVERIFY(values.isEmpty()); \
+ QVERIFY(H.combinedValue(N).isNull()); \
+ } while (false)
+
+#define EXISTS_N_TIMES(X, H, N, ...) do { \
+ const std::array expected = { __VA_ARGS__ }; \
+ static_assert(std::tuple_size_v<decltype(expected)> == X); \
+ QVERIFY(H.has(N)); \
+ const auto values = H.values(N); \
+ QCOMPARE(values.size(), X); \
+ QCOMPARE(values.front(), expected.front()); \
+ /* ignore in-between */ \
+ QCOMPARE(values.back(), expected.back()); \
+ QCOMPARE(H.combinedValue(N), values.join(',')); \
+ } while (false)
+
+#define EXISTS_ONCE(H, N, V) EXISTS_N_TIMES(1, H, N, V)
+
+ EXISTS_ONCE(h1, n1, v1);
+ EXISTS_ONCE(h1, N1, v1);
+ EXISTS_ONCE(h1, QHttpHeaders::WellKnownHeader::Accept, "nothing");
+ EXISTS_ONCE(h1, "Accept", "nothing");
+
+ EXISTS_NOT(h1, N2);
+ EXISTS_NOT(h1, QHttpHeaders::WellKnownHeader::Allow);
+
h1.clear();
- QVERIFY(h1.values(n1).isEmpty());
+
+ EXISTS_NOT(h1, n1);
+
h1.append(n1, v1);
h1.append(n1, v2);
h1.append(n1, v3);
h1.append(n2, v2);
h1.append(n3, ""); // empty value
- QCOMPARE(h1.values(n1).size(), 3);
- QCOMPARE(h1.values(n1).at(0), v1);
- QCOMPARE(h1.values(n1).at(1), v2);
- QCOMPARE(h1.values(n1).at(2), v3);
- QCOMPARE(h1.values(n1), h1.values(N1));
- QVERIFY(!h1.values(n3).isEmpty());
- QCOMPARE(h1.values(n3).at(0), "");
- QVERIFY(!h1.combinedValue(n1).isNull());
- QCOMPARE(h1.combinedValue(n1), "value1,value2,value3"_ba);
+
+ EXISTS_N_TIMES(3, h1, n1, v1, v2, v3);
+ EXISTS_N_TIMES(3, h1, N1, v1, v2, v3);
+ EXISTS_ONCE(h1, n3, ""); // empty value
+
h1.append(QHttpHeaders::WellKnownHeader::Accept, "nothing");
h1.append(QHttpHeaders::WellKnownHeader::Accept, "ever");
- QVERIFY(!h1.combinedValue(QHttpHeaders::WellKnownHeader::Accept).isNull());
- QCOMPARE(h1.combinedValue(QHttpHeaders::WellKnownHeader::Accept), "nothing,ever");
- QVERIFY(h1.combinedValue("nonexistent").isNull());
+
+ EXISTS_N_TIMES(2, h1, QHttpHeaders::WellKnownHeader::Accept, "nothing", "ever");
+ EXISTS_NOT(h1, "nonexistent");
+
+#undef EXISTS_ONCE
+#undef EXISTS_N_TIMES
+#undef EXISTS_NOT
// names()
h1.clear();