diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp --- a/src/qt/test/uritests.cpp +++ b/src/qt/test/uritests.cpp @@ -9,74 +9,80 @@ #include -void URITests::uriTests() { +static void runUriTests(const QString &addr, bool hasScheme) { + + auto S = [&hasScheme](const QString &addr) { + return hasScheme ? addr : "bitcoincash:" + addr; + }; + SendCoinsRecipient rv; QUrl uri; - uri.setUrl(QString( - "bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); + uri.setUrl(QString(S(addr) + "?req-dontexist=")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); + uri.setUrl(QString(S(addr) + "?dontexist=")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 0); - uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=" - "Wikipedia Example Address")); + uri.setUrl(QString(S(addr) + "?label=" + "Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString("Wikipedia Example Address")); QVERIFY(rv.amount == 0); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); + uri.setUrl(QString(S(addr) + "?amount=0.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100000); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); + uri.setUrl(QString(S(addr) + "?amount=1.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100100000); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&" - "label=Wikipedia Example")); + uri.setUrl(QString(S(addr) + "?amount=100&" + "label=Wikipedia Example")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.amount == 10000000000LL); QVERIFY(rv.label == QString("Wikipedia Example")); - uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=" - "Wikipedia Example Address")); + uri.setUrl(QString(S(addr) + "?message=" + "Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString()); - QVERIFY(GUIUtil::parseBitcoinURI("bitcoincash://" - "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?" - "message=Wikipedia Example Address", - &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); + QVERIFY(GUIUtil::parseBitcoinURI( + "bitcoincash://" + addr + "?message=Wikipedia Example Address", &rv)); + QVERIFY(rv.address == QString(addr)); QVERIFY(rv.label == QString()); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=" - "Wikipedia Example Address")); + uri.setUrl(QString(S(addr) + "?req-message=" + "Wikipedia Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," - "000&label=Wikipedia Example")); + uri.setUrl(QString(S(addr) + "?amount=1," + "000&label=Wikipedia Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," - "000.0&label=Wikipedia Example")); + uri.setUrl(QString(S(addr) + "?amount=1," + "000.0&label=Wikipedia Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); } + +void URITests::uriTests() { + + // TODO: Update address when cashaddr is finalized + const QString cashaddr = + "bitcoincash:qznsljkyhz5kvs94qn3w5sddktpg553jvi2ks52"; + const QString legacy = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"; + + runUriTests(legacy, false); + runUriTests(cashaddr, false); +}