File: base64.cpp

package info (click to toggle)
mkvtoolnix 97.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 60,284 kB
  • sloc: cpp: 217,034; ruby: 11,453; xml: 8,125; ansic: 6,885; sh: 5,274; python: 1,041; perl: 191; makefile: 113; awk: 16; javascript: 4
file content (37 lines) | stat: -rw-r--r-- 1,492 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "common/common_pch.h"

#include "common/base64.h"

#include "tests/unit/init.h"

namespace {

std::string
decode(std::string const &src) {
  return mtx::base64::decode(src)->to_string();
}

std::string
encode(std::string const &src,
       bool line_breaks,
       int max_line_len) {
  return mtx::base64::encode(reinterpret_cast<unsigned char const *>(&src[0]), src.length(), line_breaks, max_line_len);
}

TEST(Base64, Encoding) {
  auto plain = "LABEL=ROOT / btrfs noatime,compress=lzo,user_subvol_rm_allowed 0 10"s;

  EXPECT_EQ("TEFCRUw9Uk9PVCAvIGJ0cmZzIG5vYXRpbWUsY29tcHJlc3M9bHpvLHVzZXJfc3Vidm9sX3JtX2FsbG93ZWQgMCAxMA=="s,               encode(plain, false, 0));
  EXPECT_EQ("TEFCRUw9Uk9PVCAvIGJ0cmZzIG5vYXRpbWUsY29tcHJlc3M9bHpvLHVzZXJfc3Vidm9sX3Jt\nX2FsbG93ZWQgMCAxMA=="s,             encode(plain, true,  72));
  EXPECT_EQ("TEFCRUw9Uk9P\nVCAvIGJ0cmZz\nIG5vYXRpbWUs\nY29tcHJlc3M9\nbHpvLHVzZXJf\nc3Vidm9sX3Jt\nX2FsbG93ZWQg\nMCAxMA=="s, encode(plain, true,  13));
}

TEST(Base64, Decoding) {
  auto plain = "LABEL=ROOT / btrfs noatime,compress=lzo,user_subvol_rm_allowed 0 10"s;

  EXPECT_EQ(plain, decode("TEFCRUw9Uk9PVCAvIGJ0cmZzIG5vYXRpbWUsY29tcHJlc3M9bHpvLHVzZXJfc3Vidm9sX3JtX2FsbG93ZWQgMCAxMA=="s));
  EXPECT_EQ(plain, decode("TEFCRUw9Uk9PVCAvIGJ0cmZzIG5vYXRpbWUsY29tcHJlc3M9bHpvLHVzZXJfc3Vidm9sX3Jt\nX2FsbG93ZWQgMCAxMA=="s));
  EXPECT_EQ(plain, decode("TEFCRUw9Uk9P\nVCAvIGJ0cmZz\nIG5vYXRpbWUs\nY29tcHJlc3M9\nbHpvLHVzZXJf\nc3Vidm9sX3Jt\nX2FsbG93ZWQg\nMCAxMA=="s));
}

}