2 #include "../guiutil.h"
3 #include "../walletmodel.h"
8 struct SendCoinsRecipient
16 void URITests::uriTests()
18 SendCoinsRecipient rv;
20 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
21 QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
23 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist="));
24 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
25 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
26 QVERIFY(rv.label == QString());
27 QVERIFY(rv.amount == 0);
29 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address"));
30 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
31 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
32 QVERIFY(rv.label == QString("Wikipedia Example Address"));
33 QVERIFY(rv.amount == 0);
35 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001"));
36 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
37 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
38 QVERIFY(rv.label == QString());
39 QVERIFY(rv.amount == 100000);
41 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001"));
42 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
43 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
44 QVERIFY(rv.label == QString());
45 QVERIFY(rv.amount == 100100000);
47 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example"));
48 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
49 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
50 QVERIFY(rv.amount == 10000000000);
51 QVERIFY(rv.label == QString("Wikipedia Example"));
53 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address"));
54 QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
55 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
56 QVERIFY(rv.label == QString());
58 QVERIFY(GUIUtil::parseBitcoinURI("bitcoin://175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv));
59 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
60 QVERIFY(rv.label == QString());
62 // We currently dont implement the message paramenter (ok, yea, we break spec...)
63 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address"));
64 QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
66 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example"));
67 QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
69 uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
70 QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));