2 #include "../guiutil.h"
3 #include "../walletmodel.h"
8 struct SendCoinsRecipient
16 void URLTests::urlTests()
18 SendCoinsRecipient rv;
20 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
21 QVERIFY(!GUIUtil::parseBitcoinURL(url, &rv));
23 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist="));
24 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
25 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
26 QVERIFY(rv.label == QString());
27 QVERIFY(rv.amount == 0);
29 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address"));
30 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
31 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
32 QVERIFY(rv.label == QString("Wikipedia Example Address"));
33 QVERIFY(rv.amount == 0);
35 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001"));
36 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
37 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
38 QVERIFY(rv.label == QString());
39 QVERIFY(rv.amount == 100000);
41 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001"));
42 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
43 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
44 QVERIFY(rv.label == QString());
45 QVERIFY(rv.amount == 100100000);
47 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example"));
48 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
49 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
50 QVERIFY(rv.amount == 10000000000);
51 QVERIFY(rv.label == QString("Wikipedia Example"));
53 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address"));
54 QVERIFY(GUIUtil::parseBitcoinURL(url, &rv));
55 QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
56 QVERIFY(rv.label == QString());
58 QVERIFY(GUIUtil::parseBitcoinURL("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 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address"));
64 QVERIFY(!GUIUtil::parseBitcoinURL(url, &rv));
66 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example"));
67 QVERIFY(!GUIUtil::parseBitcoinURL(url, &rv));
69 url.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
70 QVERIFY(!GUIUtil::parseBitcoinURL(url, &rv));