| 10 | #include <QUrl> |
| 11 | |
| 12 | void URITests::uriTests() |
| 13 | { |
| 14 | // liquid URI tests |
| 15 | g_con_elementsmode = true; |
| 16 | SendCoinsRecipient info{"lq1qq0ha4ml3dsqexnkdssskvt203kl54xj5zxt9sfwgzpy7unf49aagslltf4k7pqjtwk4j8emny0k8vppj88k0z9pa4y0mwfzyu", "label", 100000000, "message"}; |
| 17 | QString liquid_uri = GUIUtil::formatBitcoinURI(info); |
| 18 | QVERIFY(liquid_uri.split(":")[0] == "liquidnetwork"); |
| 19 | |
| 20 | SendCoinsRecipient rcv; |
| 21 | QVERIFY(GUIUtil::parseBitcoinURI(liquid_uri, &rcv)); |
| 22 | QVERIFY(rcv.address == QString("lq1qq0ha4ml3dsqexnkdssskvt203kl54xj5zxt9sfwgzpy7unf49aagslltf4k7pqjtwk4j8emny0k8vppj88k0z9pa4y0mwfzyu")); |
| 23 | QVERIFY(rcv.amount == 100000000); |
| 24 | QVERIFY(rcv.label == QString("label")); |
| 25 | QVERIFY(rcv.message == QString("message")); |
| 26 | |
| 27 | // example liquidv1 URI from blockstream app |
| 28 | QUrl url{QString("liquidnetwork:lq1qq2j9v49hgsgz9s7v7myty50hsy0a6vk6sjmc9z6m0k208njwcllg9dzwk6prxmzy0wzvejc8tdn0fls88x8ksefwdw2l5hym9?assetid=6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d&amount=1.00000000")}; |
| 29 | QVERIFY(GUIUtil::parseBitcoinURI(url, &rcv)); |
| 30 | QVERIFY(rcv.address == QString("lq1qq2j9v49hgsgz9s7v7myty50hsy0a6vk6sjmc9z6m0k208njwcllg9dzwk6prxmzy0wzvejc8tdn0fls88x8ksefwdw2l5hym9")); |
| 31 | QVERIFY(rcv.amount == 100000000); |
| 32 | QVERIFY(rcv.label.isEmpty()); |
| 33 | QVERIFY(rcv.message.isEmpty()); |
| 34 | |
| 35 | // example liquid testnet URI from blockstream app |
| 36 | url.setUrl(QString("liquidtestnet:tlq1qqggjrm7s09agm8vvgsld8sq3a0luppzwyg3fl3rtrl9xcq50n2cny8le5xdl4k7ufxz6m4249njkdvxfzhdax6fczggf8ncjz?assetid=144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49&amount=0.00100000")); |
| 37 | QVERIFY(GUIUtil::parseBitcoinURI(url, &rcv)); |
| 38 | QVERIFY(rcv.address == QString("tlq1qqggjrm7s09agm8vvgsld8sq3a0luppzwyg3fl3rtrl9xcq50n2cny8le5xdl4k7ufxz6m4249njkdvxfzhdax6fczggf8ncjz")); |
| 39 | QVERIFY(rcv.amount == 100000); |
| 40 | QVERIFY(rcv.label.isEmpty()); |
| 41 | QVERIFY(rcv.message.isEmpty()); |
| 42 | |
| 43 | // check bitcoin mode |
| 44 | g_con_elementsmode = false; |
| 45 | info = SendCoinsRecipient{"175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W", "label", 100000000, "message"}; |
| 46 | QString bitcoin_uri = GUIUtil::formatBitcoinURI(info); |
| 47 | QVERIFY(bitcoin_uri.split(":")[0] == "bitcoin"); |
| 48 | QVERIFY(GUIUtil::parseBitcoinURI(bitcoin_uri, &rcv)); |
| 49 | QVERIFY(rcv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); |
| 50 | QVERIFY(rcv.amount == 100000000); |
| 51 | QVERIFY(rcv.label == QString("label")); |
| 52 | QVERIFY(rcv.message == QString("message")); |
| 53 | |
| 54 | // Bitcoin URI tests from upstream |
| 55 | SendCoinsRecipient rv; |
| 56 | QUrl uri; |
| 57 | uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); |
| 58 | QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); |
| 59 | |
| 60 | uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); |
| 61 | QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); |
| 62 | QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); |
| 63 | QVERIFY(rv.label == QString()); |
| 64 | QVERIFY(rv.amount == 0); |
| 65 | |
| 66 | uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address")); |
| 67 | QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); |
| 68 | QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); |
| 69 | QVERIFY(rv.label == QString("Wikipedia Example Address")); |
nothing calls this directly
no test coverage detected