Feathercoin  0.5.0
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
uritests.cpp
Go to the documentation of this file.
1 #include "uritests.h"
2 #include "../guiutil.h"
3 #include "../walletmodel.h"
4 
5 #include <QUrl>
6 
8 {
10  QUrl uri;
11  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?req-dontexist="));
12  QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
13 
14  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?dontexist="));
15  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
16  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
17  QVERIFY(rv.label == QString());
18  QVERIFY(rv.amount == 0);
19 
20  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?label=Wikipedia Example Address"));
21  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
22  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
23  QVERIFY(rv.label == QString("Wikipedia Example Address"));
24  QVERIFY(rv.amount == 0);
25 
26  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?amount=0.001"));
27  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
28  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
29  QVERIFY(rv.label == QString());
30  QVERIFY(rv.amount == 100000);
31 
32  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?amount=1.001"));
33  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
34  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
35  QVERIFY(rv.label == QString());
36  QVERIFY(rv.amount == 100100000);
37 
38  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?amount=100&label=Wikipedia Example"));
39  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
40  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
41  QVERIFY(rv.amount == 10000000000LL);
42  QVERIFY(rv.label == QString("Wikipedia Example"));
43 
44  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?message=Wikipedia Example Address"));
45  QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
46  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
47  QVERIFY(rv.label == QString());
48 
49  QVERIFY(GUIUtil::parseBitcoinURI("feathercoin://6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?message=Wikipedia Example Address", &rv));
50  QVERIFY(rv.address == QString("6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu"));
51  QVERIFY(rv.label == QString());
52 
53  // We currently don't implement the message parameter (ok, yea, we break spec...)
54  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?req-message=Wikipedia Example Address"));
55  QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
56 
57  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?amount=1,000&label=Wikipedia Example"));
58  QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
59 
60  uri.setUrl(QString("feathercoin:6nqmPL9tX4Uz3uQhbz8GrgLfXQNQEXstVu?amount=1,000.0&label=Wikipedia Example"));
61  QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
62 }
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
Definition: guiutil.cpp:84
void uriTests()
Definition: uritests.cpp:7