blob: 17184c364396371d49df229e0f2cad118aeffe7f [file] [log] [blame]
Darin Petkovce9b3a12013-01-10 16:38:54 +01001// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Eric Carusof9091f82017-04-28 14:18:59 -07005#include <dbus/mock_bus.h>
Darin Petkovce9b3a12013-01-10 16:38:54 +01006#include <gtest/gtest.h>
7
Alex Vakulenko262be3f2014-07-30 15:25:50 -07008#include "debugd/src/log_tool.h"
Darin Petkovce9b3a12013-01-10 16:38:54 +01009
10namespace debugd {
11
12class LogToolTest : public testing::Test {
13 protected:
Eric Carusof9091f82017-04-28 14:18:59 -070014 LogToolTest()
15 : log_tool_(new dbus::MockBus(dbus::Bus::Options())) {}
16
17 void AnonymizeLogMap(LogTool::LogMap* log_map) {
Darin Petkovce9b3a12013-01-10 16:38:54 +010018 log_tool_.AnonymizeLogMap(log_map);
19 }
20
21 LogTool log_tool_;
22};
23
24TEST_F(LogToolTest, AnonymizeLogMap) {
25 LogTool::LogMap log_map;
26 AnonymizeLogMap(&log_map);
27 EXPECT_TRUE(log_map.empty());
28 static const char kKey1[] = "log-key1";
29 static const char kKey2[] = "log-key2";
30 static const char kMAC[] = "aa:bb:cc:dd:ee:ff";
31 static const char kAnonymousMAC[] = "aa:bb:cc:00:00:01";
32 log_map[kKey1] = kMAC;
33 log_map[kKey2] = kMAC;
34 AnonymizeLogMap(&log_map);
35 EXPECT_EQ(2, log_map.size());
36 EXPECT_EQ(kAnonymousMAC, log_map[kKey1]);
37 EXPECT_EQ(kAnonymousMAC, log_map[kKey2]);
38}
39
Luis Hector Chavezfc2566f2018-09-13 15:00:36 -070040TEST_F(LogToolTest, EnsureUTF8String) {
41 // U+1F600 GRINNING FACE
42 constexpr const char kGrinningFaceUTF8[] = "\xF0\x9F\x98\x80";
43 constexpr const char kGrinningFaceBase64[] = "<base64>: 8J+YgA==";
44 EXPECT_EQ(kGrinningFaceUTF8,
45 LogTool::EnsureUTF8String(kGrinningFaceUTF8,
46 LogTool::Encoding::kAutodetect));
47 EXPECT_EQ(
48 kGrinningFaceUTF8,
49 LogTool::EnsureUTF8String(kGrinningFaceUTF8, LogTool::Encoding::kUtf8));
50 EXPECT_EQ(
51 kGrinningFaceBase64,
52 LogTool::EnsureUTF8String(kGrinningFaceUTF8, LogTool::Encoding::kBinary));
53
54 // .xz Stream Header Magic Bytes
55 constexpr const char kXzStreamHeaderMagicBytes[] = "\xFD\x37\x7A\x58\x5A\x00";
56 constexpr const char kXzStreamHeaderMagicUTF8[] =
57 "\xEF\xBF\xBD"
58 "7zXZ";
59 constexpr const char kXzStreamHeaderMagicBase64[] = "<base64>: /Td6WFo=";
60 EXPECT_EQ(kXzStreamHeaderMagicBase64,
61 LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes,
62 LogTool::Encoding::kAutodetect));
63 EXPECT_EQ(kXzStreamHeaderMagicUTF8,
64 LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes,
65 LogTool::Encoding::kUtf8));
66 EXPECT_EQ(kXzStreamHeaderMagicBase64,
67 LogTool::EnsureUTF8String(kXzStreamHeaderMagicBytes,
68 LogTool::Encoding::kBinary));
69}
70
Darin Petkovce9b3a12013-01-10 16:38:54 +010071} // namespace debugd