Skip to content

Commit 83e0f6b

Browse files
committed
Signed-off-by: Eval EXEC <execvy@gmail.com>
1 parent 955c7fe commit 83e0f6b

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

multiaddr/tests/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mod onion;

multiaddr/tests/onion.rs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
use data_encoding::HEXUPPER;
2+
use std::convert::TryFrom;
3+
use tentacle_multiaddr::*;
4+
5+
fn ma_valid(source: &str, target: &str, protocols: Vec<Protocol<'_>>) {
6+
let parsed = source.parse::<Multiaddr>().unwrap();
7+
assert_eq!(HEXUPPER.encode(&parsed.to_vec()[..]), target);
8+
assert_eq!(parsed.iter().collect::<Vec<_>>(), protocols);
9+
assert_eq!(source.parse::<Multiaddr>().unwrap().to_string(), source);
10+
assert_eq!(
11+
Multiaddr::try_from(HEXUPPER.decode(target.as_bytes()).unwrap()).unwrap(),
12+
parsed
13+
);
14+
}
15+
16+
#[test]
17+
fn construct_success() {
18+
use Protocol::*;
19+
20+
ma_valid(
21+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd:1234",
22+
"BD03ADADEC040BE047F9658668B11A504F3155001F231A37F54C4476C07FB4CC139ED7E30304D2",
23+
vec![Onion3(
24+
(
25+
[
26+
173, 173, 236, 4, 11, 224, 71, 249, 101, 134, 104, 177, 26, 80, 79, 49, 85, 0,
27+
31, 35, 26, 55, 245, 76, 68, 118, 192, 127, 180, 204, 19, 158, 215, 227, 3,
28+
],
29+
1234,
30+
)
31+
.into(),
32+
)],
33+
);
34+
}
35+
36+
#[test]
37+
fn construct_fail() {
38+
let addresses = [
39+
"/onion3/9ww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd:80",
40+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd7:80",
41+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd:0",
42+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd:-1",
43+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd",
44+
"/onion3/vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyy@:666",
45+
];
46+
47+
for address in &addresses {
48+
assert!(
49+
address.parse::<Multiaddr>().is_err(),
50+
"{}",
51+
address.to_string()
52+
);
53+
}
54+
}

0 commit comments

Comments
 (0)