• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use base64::{
2     alphabet::URL_SAFE, engine::general_purpose::PAD, engine::general_purpose::STANDARD, *,
3 };
4 
compare_encode(expected: &str, target: &[u8])5 fn compare_encode(expected: &str, target: &[u8]) {
6     assert_eq!(expected, STANDARD.encode(target));
7 }
8 
9 #[test]
encode_all_ascii()10 fn encode_all_ascii() {
11     let mut ascii = Vec::<u8>::with_capacity(128);
12 
13     for i in 0..128 {
14         ascii.push(i);
15     }
16 
17     compare_encode(
18         "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
19          D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8\
20          =",
21         &ascii,
22     );
23 }
24 
25 #[test]
encode_all_bytes()26 fn encode_all_bytes() {
27     let mut bytes = Vec::<u8>::with_capacity(256);
28 
29     for i in 0..255 {
30         bytes.push(i);
31     }
32     bytes.push(255); //bug with "overflowing" ranges?
33 
34     compare_encode(
35         "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
36          D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
37          +AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6\
38          /wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==",
39         &bytes,
40     );
41 }
42 
43 #[test]
encode_all_bytes_url()44 fn encode_all_bytes_url() {
45     let mut bytes = Vec::<u8>::with_capacity(256);
46 
47     for i in 0..255 {
48         bytes.push(i);
49     }
50     bytes.push(255); //bug with "overflowing" ranges?
51 
52     assert_eq!(
53         "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0\
54          -P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
55          -AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq\
56          -wsbKztLW2t7i5uru8vb6_wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t_g4eLj5OXm5-jp6uvs7e7v8PHy\
57          8_T19vf4-fr7_P3-_w==",
58         &engine::GeneralPurpose::new(&URL_SAFE, PAD).encode(&bytes)
59     );
60 }
61