Changeset View
Changeset View
Standalone View
Standalone View
src/qt/test/uritests.cpp
// Copyright (c) 2009-2014 The Bitcoin Core developers | // Copyright (c) 2009-2014 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include "uritests.h" | #include "uritests.h" | ||||
#include "config.h" | |||||
#include "guiutil.h" | #include "guiutil.h" | ||||
#include "walletmodel.h" | #include "walletmodel.h" | ||||
#include <QUrl> | #include <QUrl> | ||||
void URITests::uriTests() { | void URITests::uriTestsBase58() { | ||||
SendCoinsRecipient rv; | SendCoinsRecipient rv; | ||||
QUrl uri; | QUrl uri; | ||||
uri.setUrl(QString( | uri.setUrl(QString( | ||||
"bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); | "bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); | ||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | ||||
uri.setUrl( | uri.setUrl( | ||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); | QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | uri.setUrl( | ||||
"000&label=Wikipedia Example")); | "000&label=Wikipedia Example")); | ||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | ||||
uri.setUrl( | uri.setUrl( | ||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," | QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," | ||||
"000.0&label=Wikipedia Example")); | "000.0&label=Wikipedia Example")); | ||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | ||||
} | } | ||||
void URITests::uriTestsCashAddr() { | |||||
SendCoinsRecipient rv; | |||||
QUrl uri; | |||||
uri.setUrl(QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?" | |||||
"req-dontexist=")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?dontexist=")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == 0); | |||||
uri.setUrl( | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?label=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString("Wikipedia Example Address")); | |||||
QVERIFY(rv.amount == 0); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=0.001")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == 100000); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1.001")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == 100100000); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=100&" | |||||
"label=Wikipedia Example")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.amount == 10000000000LL); | |||||
QVERIFY(rv.label == QString("Wikipedia Example")); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?message=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY( | |||||
GUIUtil::parseBitcoinURI("bitcoincash://" | |||||
"qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?" | |||||
"message=Wikipedia Example Address", | |||||
&rv)); | |||||
QVERIFY(rv.address == | |||||
QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a")); | |||||
QVERIFY(rv.label == QString()); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?req-message=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1," | |||||
"000&label=Wikipedia Example")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
uri.setUrl(QString( | |||||
"bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1," | |||||
"000.0&label=Wikipedia Example")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); | |||||
} | |||||
namespace { | |||||
class UriTestConfig : public DummyConfig { | |||||
public: | |||||
UriTestConfig(bool useCashAddr) : useCashAddr(useCashAddr) {} | |||||
bool UseCashAddrEncoding() const override { return useCashAddr; } | |||||
private: | |||||
bool useCashAddr; | |||||
}; | |||||
} // anon ns | |||||
void URITests::uriTestFormatURI() { | |||||
{ | |||||
UriTestConfig cfg(true); | |||||
SendCoinsRecipient r; | |||||
r.address = "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"; | |||||
r.message = "test"; | |||||
QString uri = GUIUtil::formatBitcoinURI(cfg, r); | |||||
QVERIFY(uri == "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?" | |||||
"message=test"); | |||||
} | |||||
{ | |||||
UriTestConfig cfg(false); | |||||
SendCoinsRecipient r; | |||||
r.address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"; | |||||
r.message = "test"; | |||||
QString uri = GUIUtil::formatBitcoinURI(cfg, r); | |||||
QVERIFY(uri == | |||||
"bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=test"); | |||||
} | |||||
} |