MCPcopy Create free account
hub / github.com/ElementsProject/elements / uriTests

Method uriTests

src/qt/test/uritests.cpp:12–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10#include <QUrl>
11
12void 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"));

Callers

nothing calls this directly

Calls 2

formatBitcoinURIFunction · 0.85
parseBitcoinURIFunction · 0.85

Tested by

no test coverage detected