Skip to content

Commit

Permalink
fix errors
Browse files Browse the repository at this point in the history
  • Loading branch information
U65535F committed Jan 29, 2025
1 parent 0fe95f9 commit a5750c5
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/wallet/wallet2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15144,7 +15144,7 @@ bool wallet2::parse_uri(const std::string &uri, std::vector<uri_data> &data, std
return true;
}

bool wallet2::parse_uri(const std::string& uri, std::string& address, std::string& payment_id, uint64_t& amount, std::string& description, std::string& recipient_name, std::vector<std::string>& unknown_parameters, std::string& error)
bool wallet2::parse_uri(const std::string& uri, std::string& address, std::string& payment_id, uint64_t& amount, std::string& tx_description, std::string& recipient_name, std::vector<std::string>& unknown_parameters, std::string& error)
{
std::vector<tools::wallet2::uri_data> data;
if (!parse_uri(uri, data, payment_id, tx_description, unknown_parameters, error))
Expand Down
75 changes: 75 additions & 0 deletions tests/unit_tests/uri.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,3 +213,78 @@ TEST(uri, url_encoded_once)
ASSERT_EQ(description, "foo 20");
}

TEST(uri, multiple_addresses_no_params)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS, true);
ASSERT_EQ(address, TEST_ADDRESS);
}

TEST(uri, multiple_addresses_with_amounts)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_amount=500000000000;200000000000", true);
ASSERT_EQ(address, TEST_ADDRESS);
ASSERT_EQ(amount, 500000000000);
}

TEST(uri, multiple_addresses_with_recipient_names)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?recipient_name=Alice;Bob", true);
ASSERT_EQ(address, TEST_ADDRESS);
ASSERT_EQ(recipient_name, "Alice");
}

TEST(uri, multiple_addresses_with_mismatched_amounts)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_amount=500000000000", false);
}

TEST(uri, multiple_addresses_with_mismatched_recipient_names)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?recipient_name=Alice", false);
}

TEST(uri, multiple_addresses_with_partial_params)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_amount=500000000000;0&recipient_name=Alice;", true);
ASSERT_EQ(address, TEST_ADDRESS);
ASSERT_EQ(amount, 500000000000);
ASSERT_EQ(recipient_name, "Alice");
}

TEST(uri, multiple_addresses_with_unknown_params)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?unknown_param=123;456", true);
ASSERT_EQ(unknown_parameters.size(), 1);
ASSERT_EQ(unknown_parameters[0], "unknown_param=123;456");
}

TEST(uri, multiple_addresses_with_payment_id)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_payment_id=1234567890123456789012345678901234567890123456789012345678901234", true);
ASSERT_EQ(payment_id, "1234567890123456789012345678901234567890123456789012345678901234");
}

TEST(uri, multiple_addresses_with_invalid_payment_id)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_payment_id=123456", false);
}

TEST(uri, multiple_addresses_with_description)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_description=Payment%20for%20services", true);
ASSERT_EQ(description, "Payment for services");
}

TEST(uri, multiple_addresses_mismatched_params)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_amount=500000000000&recipient_name=Alice", false);
}

TEST(uri, multiple_addresses_all_params_correct)
{
PARSE_URI("monero:" TEST_ADDRESS ";" TEST_ADDRESS "?tx_amount=500000000000;200000000000&recipient_name=Alice;Bob&tx_description=Payment%20for%20services", true);
ASSERT_EQ(address, TEST_ADDRESS);
ASSERT_EQ(amount, 500000000000);
ASSERT_EQ(recipient_name, "Alice");
ASSERT_EQ(description, "Payment for services");
}

0 comments on commit a5750c5

Please sign in to comment.