Electroneum
Loading...
Searching...
No Matches
uri.cpp File Reference
#include "gtest/gtest.h"
#include "wallet/wallet2.h"
Include dependency graph for uri.cpp:

Go to the source code of this file.

Macros

#define TEST_ADDRESS   "etnjzhAXzXYYXSVmejcTDohsU2cyxksnLYr7Pap4mFx3UCArZoubGYyCsojTmLjXFHYUQAegfNiv9ZjG5a9o8zfy4a35zqbfpw"
#define TEST_INTEGRATED_ADDRESS   "f4VR1Vz2bo4YXSVmejcTDohsU2cyxksnLYr7Pap4mFx3UCArZoubGYyCsojTmLjXFHYUQAegfNiv9ZjG5a9o8zfyGkpDJ6jzUgm8hRv1hAVS2"
#define PARSE_URI(uri, expected)

Functions

 TEST (uri, empty_string)
 TEST (uri, no_scheme)
 TEST (uri, bad_scheme)
 TEST (uri, scheme_not_first)
 TEST (uri, no_body)
 TEST (uri, no_address)
 TEST (uri, bad_address)
 TEST (uri, good_address)
 TEST (uri, good_integrated_address)
 TEST (uri, parameter_without_inter)
 TEST (uri, parameter_without_equals)
 TEST (uri, parameter_without_value)
 TEST (uri, negative_amount)
 TEST (uri, bad_amount)
 TEST (uri, duplicate_parameter)
 TEST (uri, unknown_parameter)
 TEST (uri, unknown_parameters)
 TEST (uri, empty_payment_id)
 TEST (uri, bad_payment_id)
 TEST (uri, short_payment_id)
 TEST (uri, long_payment_id)
 TEST (uri, payment_id_with_integrated_address)
 TEST (uri, empty_description)
 TEST (uri, empty_recipient_name)
 TEST (uri, non_empty_description)
 TEST (uri, non_empty_recipient_name)
 TEST (uri, url_encoding)
 TEST (uri, non_alphanumeric_url_encoding)
 TEST (uri, truncated_url_encoding)
 TEST (uri, percent_without_url_encoding)
 TEST (uri, url_encoded_once)

Macro Definition Documentation

◆ PARSE_URI

#define PARSE_URI ( uri,
expected )
Value:
std::string address, payment_id, recipient_name, description, error; \
uint64_t amount; \
std::vector<std::string> unknown_parameters; \
bool ret = w.parse_uri(uri, address, payment_id, amount, description, recipient_name, unknown_parameters, error); \
ASSERT_EQ(ret, expected);
unsigned __int64 uint64_t
Definition stdint.h:136
const char * address
Definition multisig.cpp:37

Definition at line 37 of file uri.cpp.

37#define PARSE_URI(uri, expected) \
38 std::string address, payment_id, recipient_name, description, error; \
39 uint64_t amount; \
40 std::vector<std::string> unknown_parameters; \
41 tools::wallet2 w(cryptonote::TESTNET); \
42 bool ret = w.parse_uri(uri, address, payment_id, amount, description, recipient_name, unknown_parameters, error); \
43 ASSERT_EQ(ret, expected);

◆ TEST_ADDRESS

#define TEST_ADDRESS   "etnjzhAXzXYYXSVmejcTDohsU2cyxksnLYr7Pap4mFx3UCArZoubGYyCsojTmLjXFHYUQAegfNiv9ZjG5a9o8zfy4a35zqbfpw"

Definition at line 33 of file uri.cpp.

◆ TEST_INTEGRATED_ADDRESS

#define TEST_INTEGRATED_ADDRESS   "f4VR1Vz2bo4YXSVmejcTDohsU2cyxksnLYr7Pap4mFx3UCArZoubGYyCsojTmLjXFHYUQAegfNiv9ZjG5a9o8zfyGkpDJ6jzUgm8hRv1hAVS2"

Definition at line 34 of file uri.cpp.

Function Documentation

◆ TEST() [1/31]

TEST ( uri ,
bad_address  )

Definition at line 75 of file uri.cpp.

76{
77 PARSE_URI("electroneum:44444", false);
78}
#define PARSE_URI(uri, expected)
Definition uri.cpp:37

◆ TEST() [2/31]

TEST ( uri ,
bad_amount  )

Definition at line 111 of file uri.cpp.

112{
113 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_amount=alphanumeric", false);
114}
#define TEST_ADDRESS
Definition uri.cpp:33

◆ TEST() [3/31]

TEST ( uri ,
bad_payment_id  )

Definition at line 141 of file uri.cpp.

142{
143 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_payment_id=1234567890", false);
144}

◆ TEST() [4/31]

TEST ( uri ,
bad_scheme  )

Definition at line 55 of file uri.cpp.

56{
57 PARSE_URI("http://foo", false);
58}

◆ TEST() [5/31]

TEST ( uri ,
duplicate_parameter  )

Definition at line 116 of file uri.cpp.

117{
118 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_amount=1&tx_amount=1", false);
119}

◆ TEST() [6/31]

TEST ( uri ,
empty_description  )

Definition at line 163 of file uri.cpp.

164{
165 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=", true);
166 ASSERT_EQ(description, "");
167}
#define ASSERT_EQ(val1, val2)
Definition gtest.h:1956

◆ TEST() [7/31]

TEST ( uri ,
empty_payment_id  )

Definition at line 136 of file uri.cpp.

137{
138 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_payment_id=", false);
139}

◆ TEST() [8/31]

TEST ( uri ,
empty_recipient_name  )

Definition at line 169 of file uri.cpp.

170{
171 PARSE_URI("electroneum:" TEST_ADDRESS"?recipient_name=", true);
172 ASSERT_EQ(recipient_name, "");
173}

◆ TEST() [9/31]

TEST ( uri ,
empty_string  )

Definition at line 45 of file uri.cpp.

46{
47 PARSE_URI("", false);
48}

◆ TEST() [10/31]

TEST ( uri ,
good_address  )

Definition at line 80 of file uri.cpp.

81{
82 PARSE_URI("electroneum:" TEST_ADDRESS, true);
84}

◆ TEST() [11/31]

TEST ( uri ,
good_integrated_address  )

Definition at line 86 of file uri.cpp.

87{
88 PARSE_URI("electroneum:" TEST_INTEGRATED_ADDRESS, true);
89}
#define TEST_INTEGRATED_ADDRESS
Definition uri.cpp:34

◆ TEST() [12/31]

TEST ( uri ,
long_payment_id  )

Definition at line 151 of file uri.cpp.

152{
153 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_payment_id=1234567890123456789012345678901234567890123456789012345678901234", true);
155 ASSERT_EQ(payment_id, "1234567890123456789012345678901234567890123456789012345678901234");
156}

◆ TEST() [13/31]

TEST ( uri ,
negative_amount  )

Definition at line 106 of file uri.cpp.

107{
108 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_amount=-1", false);
109}

◆ TEST() [14/31]

TEST ( uri ,
no_address  )

Definition at line 70 of file uri.cpp.

71{
72 PARSE_URI("electroneum:?", false);
73}

◆ TEST() [15/31]

TEST ( uri ,
no_body  )

Definition at line 65 of file uri.cpp.

66{
67 PARSE_URI("electroneum:", false);
68}

◆ TEST() [16/31]

TEST ( uri ,
no_scheme  )

Definition at line 50 of file uri.cpp.

51{
52 PARSE_URI("electroneum", false);
53}

◆ TEST() [17/31]

TEST ( uri ,
non_alphanumeric_url_encoding  )

Definition at line 193 of file uri.cpp.

194{
195 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo%2x", true);
196 ASSERT_EQ(description, "foo%2x");
197}

◆ TEST() [18/31]

TEST ( uri ,
non_empty_description  )

Definition at line 175 of file uri.cpp.

176{
177 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo", true);
178 ASSERT_EQ(description, "foo");
179}

◆ TEST() [19/31]

TEST ( uri ,
non_empty_recipient_name  )

Definition at line 181 of file uri.cpp.

182{
183 PARSE_URI("electroneum:" TEST_ADDRESS"?recipient_name=foo", true);
184 ASSERT_EQ(recipient_name, "foo");
185}

◆ TEST() [20/31]

TEST ( uri ,
parameter_without_equals  )

Definition at line 96 of file uri.cpp.

97{
98 PARSE_URI("electroneum:" TEST_ADDRESS"?amount", false);
99}

◆ TEST() [21/31]

TEST ( uri ,
parameter_without_inter  )

Definition at line 91 of file uri.cpp.

92{
93 PARSE_URI("electroneum:" TEST_ADDRESS"&amount=1", false);
94}

◆ TEST() [22/31]

TEST ( uri ,
parameter_without_value  )

Definition at line 101 of file uri.cpp.

102{
103 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_amount=", false);
104}

◆ TEST() [23/31]

TEST ( uri ,
payment_id_with_integrated_address  )

Definition at line 158 of file uri.cpp.

159{
160 PARSE_URI("electroneum:" TEST_INTEGRATED_ADDRESS"?tx_payment_id=1234567890123456", false);
161}

◆ TEST() [24/31]

TEST ( uri ,
percent_without_url_encoding  )

Definition at line 205 of file uri.cpp.

206{
207 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo%", true);
208 ASSERT_EQ(description, "foo%");
209}

◆ TEST() [25/31]

TEST ( uri ,
scheme_not_first  )

Definition at line 60 of file uri.cpp.

61{
62 PARSE_URI(" electroneum:", false);
63}

◆ TEST() [26/31]

TEST ( uri ,
short_payment_id  )

Definition at line 146 of file uri.cpp.

147{
148 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_payment_id=1234567890123456", true);
149}

◆ TEST() [27/31]

TEST ( uri ,
truncated_url_encoding  )

Definition at line 199 of file uri.cpp.

200{
201 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo%2", true);
202 ASSERT_EQ(description, "foo%2");
203}

◆ TEST() [28/31]

TEST ( uri ,
unknown_parameter  )

Definition at line 121 of file uri.cpp.

122{
123 PARSE_URI("electroneum:" TEST_ADDRESS"?unknown=1", true);
124 ASSERT_EQ(unknown_parameters.size(), 1);
125 ASSERT_EQ(unknown_parameters[0], "unknown=1");
126}

◆ TEST() [29/31]

TEST ( uri ,
unknown_parameters  )

Definition at line 128 of file uri.cpp.

129{
130 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_amount=1&unknown=1&tx_description=desc&foo=bar", true);
131 ASSERT_EQ(unknown_parameters.size(), 2);
132 ASSERT_EQ(unknown_parameters[0], "unknown=1");
133 ASSERT_EQ(unknown_parameters[1], "foo=bar");
134}

◆ TEST() [30/31]

TEST ( uri ,
url_encoded_once  )

Definition at line 211 of file uri.cpp.

212{
213 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo%2020", true);
214 ASSERT_EQ(description, "foo 20");
215}

◆ TEST() [31/31]

TEST ( uri ,
url_encoding  )

Definition at line 187 of file uri.cpp.

188{
189 PARSE_URI("electroneum:" TEST_ADDRESS"?tx_description=foo%20bar", true);
190 ASSERT_EQ(description, "foo bar");
191}