• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "json_utils.h"
2 
3 #include "gtest/gtest.h"
4 
TEST(JSONUtilsTest,EscapeJsonChars)5 TEST(JSONUtilsTest, EscapeJsonChars) {
6   using node::EscapeJsonChars;
7   EXPECT_EQ("abc", EscapeJsonChars("abc"));
8   EXPECT_EQ("abc\\n", EscapeJsonChars("abc\n"));
9   EXPECT_EQ("abc\\nabc", EscapeJsonChars("abc\nabc"));
10   EXPECT_EQ("abc\\\\", EscapeJsonChars("abc\\"));
11   EXPECT_EQ("abc\\\"", EscapeJsonChars("abc\""));
12 
13   const std::string expected[0x20] = {
14       "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005",
15       "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r",
16       "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013",
17       "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019",
18       "\\u001a", "\\u001b", "\\u001c", "\\u001d", "\\u001e", "\\u001f"
19   };
20   for (int i = 0; i < 0x20; ++i) {
21     char symbols[1] = { static_cast<char>(i) };
22     std::string input(symbols, 1);
23     EXPECT_EQ(expected[i], EscapeJsonChars(input));
24     EXPECT_EQ("a" + expected[i], EscapeJsonChars("a" + input));
25   }
26 }
27