]> git.proxmox.com Git - rustc.git/blame - vendor/base64/tests/encode.rs
Update upstream source from tag 'upstream/1.52.1+dfsg1'
[rustc.git] / vendor / base64 / tests / encode.rs
CommitLineData
f20569fa
XL
1extern crate base64;
2
3use base64::*;
4
5fn compare_encode(expected: &str, target: &[u8]) {
6 assert_eq!(expected, encode(target));
7}
8
9#[test]
10fn encode_rfc4648_0() {
11 compare_encode("", b"");
12}
13
14#[test]
15fn encode_rfc4648_1() {
16 compare_encode("Zg==", b"f");
17}
18
19#[test]
20fn encode_rfc4648_2() {
21 compare_encode("Zm8=", b"fo");
22}
23
24#[test]
25fn encode_rfc4648_3() {
26 compare_encode("Zm9v", b"foo");
27}
28
29#[test]
30fn encode_rfc4648_4() {
31 compare_encode("Zm9vYg==", b"foob");
32}
33
34#[test]
35fn encode_rfc4648_5() {
36 compare_encode("Zm9vYmE=", b"fooba");
37}
38
39#[test]
40fn encode_rfc4648_6() {
41 compare_encode("Zm9vYmFy", b"foobar");
42}
43
44#[test]
45fn encode_all_ascii() {
46 let mut ascii = Vec::<u8>::with_capacity(128);
47
48 for i in 0..128 {
49 ascii.push(i);
50 }
51
52 compare_encode(
53 "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
54 D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8\
55 =",
56 &ascii,
57 );
58}
59
60#[test]
61fn encode_all_bytes() {
62 let mut bytes = Vec::<u8>::with_capacity(256);
63
64 for i in 0..255 {
65 bytes.push(i);
66 }
67 bytes.push(255); //bug with "overflowing" ranges?
68
69 compare_encode(
70 "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
71 D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
72 +AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6\
73 /wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==",
74 &bytes,
75 );
76}
77
78#[test]
79fn encode_all_bytes_url() {
80 let mut bytes = Vec::<u8>::with_capacity(256);
81
82 for i in 0..255 {
83 bytes.push(i);
84 }
85 bytes.push(255); //bug with "overflowing" ranges?
86
87 assert_eq!(
88 "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0\
89 -P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
90 -AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq\
91 -wsbKztLW2t7i5uru8vb6_wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t_g4eLj5OXm5-jp6uvs7e7v8PHy\
92 8_T19vf4-fr7_P3-_w==",
93 encode_config(&bytes, URL_SAFE)
94 );
95}
96
97#[test]
98fn encode_url_safe_without_padding() {
99 let encoded = encode_config(b"alice", URL_SAFE_NO_PAD);
100 assert_eq!(&encoded, "YWxpY2U");
101 assert_eq!(
102 String::from_utf8(decode(&encoded).unwrap()).unwrap(),
103 "alice"
104 );
105}