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 | ||||
// Copyright (c) 2017 The Bitcoin developers | // Copyright (c) 2017 The Bitcoin 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 <qt/test/uritests.h> | #include <qt/test/uritests.h> | ||||
#include <chainparams.h> | #include <chainparams.h> | ||||
#include <config.h> | #include <config.h> | ||||
#include <qt/guiutil.h> | #include <qt/guiutil.h> | ||||
#include <qt/walletmodel.h> | #include <qt/walletmodel.h> | ||||
#include <QUrl> | #include <QUrl> | ||||
void URITests::uriTestsBase58() { | |||||
const auto params = CreateChainParams(CBaseChainParams::MAIN); | |||||
SendCoinsRecipient rv; | |||||
QString scheme = QString::fromStdString(params->CashAddrPrefix()); | |||||
QUrl uri; | |||||
uri.setUrl(QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == Amount::zero()); | |||||
uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString("Wikipedia Example Address")); | |||||
QVERIFY(rv.amount == Amount::zero()); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == 100000 * SATOSHI); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(rv.amount == 100100000 * SATOSHI); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&" | |||||
"label=Wikipedia Example")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.amount == int64_t(10000000000) * SATOSHI); | |||||
QVERIFY(rv.label == QString("Wikipedia Example")); | |||||
uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString()); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, | |||||
"bitcoincash://" | |||||
"175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?" | |||||
"message=Wikipedia Example Address", | |||||
&rv)); | |||||
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); | |||||
QVERIFY(rv.label == QString()); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=" | |||||
"Wikipedia Example Address")); | |||||
QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," | |||||
"000&label=Wikipedia Example")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
uri.setUrl( | |||||
QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," | |||||
"000.0&label=Wikipedia Example")); | |||||
QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); | |||||
} | |||||
void URITests::uriTestsCashAddr() { | void URITests::uriTestsCashAddr() { | ||||
const auto params = CreateChainParams(CBaseChainParams::MAIN); | const auto params = CreateChainParams(CBaseChainParams::MAIN); | ||||
SendCoinsRecipient rv; | SendCoinsRecipient rv; | ||||
QUrl uri; | QUrl uri; | ||||
QString scheme = QString::fromStdString(params->CashAddrPrefix()); | QString scheme = QString::fromStdString(params->CashAddrPrefix()); | ||||
uri.setUrl(QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?" | uri.setUrl(QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?" | ||||
"req-dontexist=")); | "req-dontexist=")); | ||||
▲ Show 20 Lines • Show All 107 Lines • Show Last 20 Lines |