Skip to content

Commit 53f775c

Browse files
committed
Add tests for getChecksummedAddress
1 parent cad1ae9 commit 53f775c

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test/libdevcore/Checksum.cpp

+34
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
*/
2020

2121
#include <libdevcore/CommonData.h>
22+
#include <libdevcore/Exceptions.h>
23+
2224

2325
#include "../TestHelper.h"
2426

@@ -31,6 +33,38 @@ namespace test
3133

3234
BOOST_AUTO_TEST_SUITE(Checksum)
3335

36+
BOOST_AUTO_TEST_CASE(calculate)
37+
{
38+
BOOST_CHECK(!getChecksummedAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed").empty());
39+
BOOST_CHECK(!getChecksummedAddress("0x0123456789abcdefABCDEF0123456789abcdefAB").empty());
40+
// too short
41+
BOOST_CHECK_THROW(getChecksummedAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beae"), InvalidAddress);
42+
BOOST_CHECK_THROW(getChecksummedAddress("5aaeb6053f3e94c9b9a09f33669435e7ef1beae"), InvalidAddress);
43+
// too long
44+
BOOST_CHECK_THROW(getChecksummedAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaed1"), InvalidAddress);
45+
BOOST_CHECK_THROW(getChecksummedAddress("5aaeb6053f3e94c9b9a09f33669435e7ef1beaed1"), InvalidAddress);
46+
// non-hex character
47+
BOOST_CHECK_THROW(getChecksummedAddress("0x5aaeb6053f3e94c9b9a09f33669435e7ef1beaeK"), InvalidAddress);
48+
49+
// the official test suite from EIP-55
50+
vector<string> cases {
51+
// all upper case
52+
"0x52908400098527886E0F7030069857D2E4169EE7",
53+
"0x8617E340B3D01FA5F11F306F4090FD50E238070D",
54+
// all lower case
55+
"0xde709f2102306220921060314715629080e2fb77",
56+
"0x27b1fdb04752bbc536007a920d24acb045561c26",
57+
// regular
58+
"0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
59+
"0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359",
60+
"0xdbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB",
61+
"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb"
62+
};
63+
64+
for (size_t i = 0; i < cases.size(); i++)
65+
BOOST_REQUIRE_MESSAGE(getChecksummedAddress(cases[i]) == cases[i], cases[i]);
66+
}
67+
3468
BOOST_AUTO_TEST_CASE(regular)
3569
{
3670
BOOST_CHECK(passesAddressChecksum("0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed", true));

0 commit comments

Comments
 (0)