Electroneum
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; \
tools::wallet2 w(cryptonote::TESTNET); \
bool ret = w.parse_uri(uri, address, payment_id, amount, description, recipient_name, unknown_parameters, error); \
ASSERT_EQ(ret, expected);
::std::string string
Definition: gtest-port.h:1097
const char * address
Definition: multisig.cpp:37
error
Tracks LMDB error codes.
Definition: error.h:44

Definition at line 37 of file uri.cpp.

◆ 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  ,
empty_string   
)

Definition at line 45 of file uri.cpp.

46 {
47  PARSE_URI("", false);
48 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [2/31]

TEST ( uri  ,
no_scheme   
)

Definition at line 50 of file uri.cpp.

51 {
52  PARSE_URI("electroneum", false);
53 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [3/31]

TEST ( uri  ,
bad_scheme   
)

Definition at line 55 of file uri.cpp.

56 {
57  PARSE_URI("http://foo", false);
58 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [4/31]

TEST ( uri  ,
scheme_not_first   
)

Definition at line 60 of file uri.cpp.

61 {
62  PARSE_URI(" electroneum:", false);
63 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [5/31]

TEST ( uri  ,
no_body   
)

Definition at line 65 of file uri.cpp.

66 {
67  PARSE_URI("electroneum:", false);
68 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [6/31]

TEST ( uri  ,
no_address   
)

Definition at line 70 of file uri.cpp.

71 {
72  PARSE_URI("electroneum:?", false);
73 }
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [7/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() [8/31]

TEST ( uri  ,
good_address   
)

Definition at line 80 of file uri.cpp.

81 {
82  PARSE_URI("electroneum:" TEST_ADDRESS, true);
84 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37
const char * address
Definition: multisig.cpp:37

◆ TEST() [9/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
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [10/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [11/31]

TEST ( uri  ,
parameter_without_equals   
)

Definition at line 96 of file uri.cpp.

97 {
98  PARSE_URI("electroneum:" TEST_ADDRESS"?amount", false);
99 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [12/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ 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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [14/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
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [15/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [16/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [17/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [18/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [19/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [20/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 }
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [21/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37
const char * address
Definition: multisig.cpp:37

◆ TEST() [22/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 }
#define TEST_INTEGRATED_ADDRESS
Definition: uri.cpp:34
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [23/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
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [24/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [25/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [26/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [27/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [28/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [29/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [30/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37

◆ TEST() [31/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
#define TEST_ADDRESS
Definition: uri.cpp:33
#define PARSE_URI(uri, expected)
Definition: uri.cpp:37