summaryrefslogtreecommitdiff
path: root/test/cctest/test_report_util.cc
blob: e32558ef75b5e85aecd3d931e336b4d6088c56cf (plain)
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
#include "node_report.h"

#include "gtest/gtest.h"

TEST(ReportUtilTest, EscapeJsonChars) {
  using report::EscapeJsonChars;
  EXPECT_EQ("abc", EscapeJsonChars("abc"));
  EXPECT_EQ("abc\\n", EscapeJsonChars("abc\n"));
  EXPECT_EQ("abc\\nabc", EscapeJsonChars("abc\nabc"));
  EXPECT_EQ("abc\\\\", EscapeJsonChars("abc\\"));
  EXPECT_EQ("abc\\\"", EscapeJsonChars("abc\""));

  const std::string expected[0x20] = {
      "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005",
      "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r",
      "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013",
      "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019",
      "\\u001a", "\\u001b", "\\u001c", "\\u001d", "\\u001e", "\\u001f"
  };
  for (int i = 0; i < 0x20; ++i) {
    char symbols[1] = { static_cast<char>(i) };
    std::string input(symbols, 1);
    EXPECT_EQ(expected[i], EscapeJsonChars(input));
    EXPECT_EQ("a" + expected[i], EscapeJsonChars("a" + input));
  }
}