diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-01-23 13:13:19 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2020-01-23 15:47:31 +0100 |
commit | 82263fbfc261e0c90caacdf42cae14e1c4bda8c5 (patch) | |
tree | 2f58c3c10c45bb32887feea21d1692ded555e8f7 | |
parent | ce84933d7466a6eb966da03591f6b45fbc0dcb47 (diff) |
Fix deprecation warnings about using QMultiMap methods on QMap
Use QMap::insert() instead QMultiMap::unite() in the tests.
In the module itself, change the parameter type to a QMultiMap
since apparently duplicate keys are expected.
Although possibly a pre-existing bug, to be on the safe side we change
QMap::insert to QMultiMap::replace.
Fixes
qoauth1signature.cpp: In member function ‘QList<QString> QOAuth1Signature::keys() const’:
qoauth1signature.cpp:344:37: warning: ‘QList<T> QMap<K, V>::uniqueKeys() const [with Key = QString; T = QVariant]’ is deprecated: Use QMultiMap for maps storing multiple values with the same key. [-Wdeprecated-declarations]
qoauth1.cpp: In member function ‘void QOAuth1Private::appendSignature(QAbstractOAuth::Stage, QVariantMap*, const QUrl&, QNetworkAccessManager::Operation, QVariantMap)’:
qoauth1.cpp:147:75: warning: ‘QMap<K, V>& QMap<K, V>::unite(const QMap<K, V>&) [with Key = QString; T = QVariant]’ is deprecated: Use QMultiMap for maps storing multiple values with the same key. [-Wdeprecated-declarations]
qoauth1.cpp: In member function ‘void QOAuth1::setup(QNetworkRequest*, const QVariantMap&, QNetworkAccessManager::Operation)’:
qoauth1.cpp:766:81: warning: ‘QMap<K, V>& QMap<K, V>::unite(const QMap<K, V>&) [with Key = QString; T = QVariant]’ is deprecated: Use QMultiMap for maps storing multiple values with the same key. [-Wdeprecated-declarations]
const auto parameters = QVariantMap(oauthParams).unite(signingParameters);
qoauth1.cpp: In member function ‘void QOAuth1::setup(QNetworkRequest*, const QVariantMap&, const QByteArray&)’:
qoauth1.cpp:806:81: warning: ‘QMap<K, V>& QMap<K, V>::unite(const QMap<K, V>&) [with Key = QString; T = QVariant]’ is deprecated: Use QMultiMap for maps storing multiple values with the same key. [-Wdeprecated-declarations]
const auto parameters = QVariantMap(oauthParams).unite(signingParameters);
Change-Id: Iaec7850335a188a6b198a672d220b01edc2c10ea
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
-rw-r--r-- | src/oauth/qoauth1signature.cpp | 8 | ||||
-rw-r--r-- | src/oauth/qoauth1signature_p.h | 2 | ||||
-rw-r--r-- | tests/auto/oauth1/tst_oauth1.cpp | 7 |
3 files changed, 11 insertions, 6 deletions
diff --git a/src/oauth/qoauth1signature.cpp b/src/oauth/qoauth1signature.cpp index f6ecdc0..a0b73a6 100644 --- a/src/oauth/qoauth1signature.cpp +++ b/src/oauth/qoauth1signature.cpp @@ -310,7 +310,9 @@ QVariantMap QOAuth1Signature::parameters() const */ void QOAuth1Signature::setParameters(const QVariantMap ¶meters) { - d->parameters = parameters; + d->parameters.clear(); + for (auto it = parameters.cbegin(), end = parameters.cend(); it != end; ++it) + d->parameters.insert(it.key(), it.value()); } /*! @@ -322,7 +324,7 @@ void QOAuth1Signature::addRequestBody(const QUrlQuery &body) { const auto list = body.queryItems(); for (auto it = list.begin(), end = list.end(); it != end; ++it) - d->parameters.insert(it->first, it->second); + d->parameters.replace(it->first, it->second); } /*! @@ -332,7 +334,7 @@ void QOAuth1Signature::addRequestBody(const QUrlQuery &body) */ void QOAuth1Signature::insert(const QString &key, const QVariant &value) { - d->parameters.insert(key, value); + d->parameters.replace(key, value); } /*! diff --git a/src/oauth/qoauth1signature_p.h b/src/oauth/qoauth1signature_p.h index cc648d9..be3e6d8 100644 --- a/src/oauth/qoauth1signature_p.h +++ b/src/oauth/qoauth1signature_p.h @@ -70,7 +70,7 @@ public: QUrl url; QString clientSharedKey; QString tokenSecret; - QVariantMap parameters; + QMultiMap<QString, QVariant> parameters; static QOAuth1SignaturePrivate shared_null; }; diff --git a/tests/auto/oauth1/tst_oauth1.cpp b/tests/auto/oauth1/tst_oauth1.cpp index c76ba8f..b68491b 100644 --- a/tests/auto/oauth1/tst_oauth1.cpp +++ b/tests/auto/oauth1/tst_oauth1.cpp @@ -468,7 +468,8 @@ void tst_OAuth1::getToken() QCOMPARE(oauthHeaders["oauth_version"], "1.0"); QString expectedSignature; { - QVariantMap modifiedHeaders = oauthHeaders.unite(parameters); + QVariantMap modifiedHeaders = oauthHeaders; + modifiedHeaders.insert(parameters); modifiedHeaders.remove("oauth_signature"); QOAuth1Signature signature(url, clientCredentials.second, @@ -592,11 +593,13 @@ void tst_OAuth1::prepareRequestSignature() // verify the signature const auto sigString = QUrl::fromPercentEncoding(authArgs.take(oauthSignature) .toByteArray()).toUtf8(); + + authArgs.insert(extraParams); QOAuth1Signature signature(request.url(), consumerSecret, accessKeySecret, QOAuth1Signature::HttpRequestMethod::Custom, - authArgs.unite(extraParams)); + authArgs); signature.setCustomMethodString(operation); const auto signatureData = signature.hmacSha1(); QCOMPARE(signatureData.toBase64(), sigString); |