diff options
Diffstat (limited to 'libs/tdlib/td/tdutils/test/json.cpp')
-rw-r--r-- | libs/tdlib/td/tdutils/test/json.cpp | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/libs/tdlib/td/tdutils/test/json.cpp b/libs/tdlib/td/tdutils/test/json.cpp deleted file mode 100644 index deca81a791..0000000000 --- a/libs/tdlib/td/tdutils/test/json.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -#include "td/utils/tests.h" - -#include "td/utils/JsonBuilder.h" -#include "td/utils/logging.h" -#include "td/utils/StringBuilder.h" - -#include <tuple> -#include <utility> - -REGISTER_TESTS(json) - -using namespace td; - -static void decode_encode(string str, string result = "") { - auto str_copy = str; - auto r_value = json_decode(str_copy); - ASSERT_TRUE(r_value.is_ok()); - if (r_value.is_error()) { - LOG(INFO) << r_value.error(); - return; - } - auto new_str = json_encode<string>(r_value.ok()); - if (result.empty()) { - result = str; - } - ASSERT_EQ(result, new_str); -} - -TEST(JSON, array) { - char tmp[1000]; - StringBuilder sb({tmp, sizeof(tmp)}); - JsonBuilder jb(std::move(sb)); - jb.enter_value().enter_array() << "Hello" << -123; - ASSERT_EQ(jb.string_builder().is_error(), false); - auto encoded = jb.string_builder().as_cslice().str(); - ASSERT_EQ("[\"Hello\",-123]", encoded); - decode_encode(encoded); -} -TEST(JSON, object) { - char tmp[1000]; - StringBuilder sb({tmp, sizeof(tmp)}); - JsonBuilder jb(std::move(sb)); - auto c = jb.enter_object(); - c << std::tie("key", "value"); - c << std::make_pair("1", 2); - c.leave(); - ASSERT_EQ(jb.string_builder().is_error(), false); - auto encoded = jb.string_builder().as_cslice().str(); - ASSERT_EQ("{\"key\":\"value\",\"1\":2}", encoded); - decode_encode(encoded); -} - -TEST(JSON, nested) { - char tmp[1000]; - StringBuilder sb({tmp, sizeof(tmp)}); - JsonBuilder jb(std::move(sb)); - { - auto a = jb.enter_array(); - a << 1; - { a.enter_value().enter_array() << 2; } - a << 3; - } - ASSERT_EQ(jb.string_builder().is_error(), false); - auto encoded = jb.string_builder().as_cslice().str(); - ASSERT_EQ("[1,[2],3]", encoded); - decode_encode(encoded); -} - -TEST(JSON, kphp) { - decode_encode("[]"); - decode_encode("[[]]"); - decode_encode("{}"); - decode_encode("{}"); - decode_encode("\"\\n\""); - decode_encode( - "\"" - "some long string \\t \\r \\\\ \\n \\f \\\" " - "\\u1234" - "\""); - decode_encode( - "{\"keyboard\":[[\"\\u2022 abcdefg\"],[\"\\u2022 hijklmnop\"],[\"\\u2022 " - "qrstuvwxyz\"]],\"one_time_keyboard\":true}"); - decode_encode( - " \n { \"keyboard\" : \n [[ \"\\u2022 abcdefg\" ] , \n [ \"\\u2022 hijklmnop\" \n ],[ \n \"\\u2022 " - "qrstuvwxyz\"]], \n \"one_time_keyboard\"\n:\ntrue\n}\n \n", - "{\"keyboard\":[[\"\\u2022 abcdefg\"],[\"\\u2022 hijklmnop\"],[\"\\u2022 " - "qrstuvwxyz\"]],\"one_time_keyboard\":true}"); -} |