Remove string libraries from //third_party/quic/platform.
The removed libraries have migrated to //third_party/quiche.
See:
* //third_party/quiche/common/platform/api:quiche_str_cat_lib
* //third_party/quiche/common/platform/api:quiche_string_piece_lib
* //third_party/quiche/common/platform/api:quiche_text_utils_lib
gfe-relnote: n/a, no functional change
PiperOrigin-RevId: 285420767
Change-Id: I274bc31fd12599790f2e8d5fa227a244fd41e158
diff --git a/quic/platform/api/quic_str_cat.h b/quic/platform/api/quic_str_cat.h
deleted file mode 100644
index 534e31e..0000000
--- a/quic/platform/api/quic_str_cat.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_STR_CAT_H_
-#define QUICHE_QUIC_PLATFORM_API_QUIC_STR_CAT_H_
-
-#include <string>
-#include <utility>
-
-#include "net/quic/platform/impl/quic_str_cat_impl.h"
-
-namespace quic {
-
-// Merges given strings or numbers with no delimiter.
-template <typename... Args>
-inline std::string QuicStrCat(const Args&... args) {
- return QuicStrCatImpl(std::forward<const Args&>(args)...);
-}
-
-template <typename... Args>
-inline std::string QuicStringPrintf(const Args&... args) {
- return QuicStringPrintfImpl(std::forward<const Args&>(args)...);
-}
-
-} // namespace quic
-
-#endif // QUICHE_QUIC_PLATFORM_API_QUIC_STR_CAT_H_
diff --git a/quic/platform/api/quic_str_cat_test.cc b/quic/platform/api/quic_str_cat_test.cc
deleted file mode 100644
index 06941bb..0000000
--- a/quic/platform/api/quic_str_cat_test.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (c) 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/third_party/quiche/src/quic/platform/api/quic_str_cat.h"
-
-#include <string>
-
-#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
-
-namespace quic {
-namespace test {
-namespace {
-
-class QuicStrCatTest : public QuicTest {};
-
-TEST_F(QuicStrCatTest, Ints) {
- const int16_t s = -1;
- const uint16_t us = 2;
- const int i = -3;
- const uint32_t ui = 4;
- const int64_t l = -5;
- const uint64_t ul = 6;
- const ptrdiff_t ptrdiff = -7;
- const size_t size = 8;
- const intptr_t intptr = -9;
- const uintptr_t uintptr = 10;
- std::string answer;
- answer = QuicStrCat(s, us);
- EXPECT_EQ(answer, "-12");
- answer = QuicStrCat(i, ui);
- EXPECT_EQ(answer, "-34");
- answer = QuicStrCat(l, ul);
- EXPECT_EQ(answer, "-56");
- answer = QuicStrCat(ptrdiff, size);
- EXPECT_EQ(answer, "-78");
- answer = QuicStrCat(size, intptr);
- EXPECT_EQ(answer, "8-9");
- answer = QuicStrCat(uintptr, 0);
- EXPECT_EQ(answer, "100");
-}
-
-TEST_F(QuicStrCatTest, Basics) {
- std::string result;
-
- std::string strs[] = {"Hello", "Cruel", "World"};
-
- QuicStringPiece pieces[] = {"Hello", "Cruel", "World"};
-
- const char* c_strs[] = {"Hello", "Cruel", "World"};
-
- int32_t i32s[] = {'H', 'C', 'W'};
- uint64_t ui64s[] = {12345678910LL, 10987654321LL};
-
- result = QuicStrCat(false, true, 2, 3);
- EXPECT_EQ(result, "0123");
-
- result = QuicStrCat(-1);
- EXPECT_EQ(result, "-1");
-
- result = QuicStrCat(0.5);
- EXPECT_EQ(result, "0.5");
-
- result = QuicStrCat(strs[1], pieces[2]);
- EXPECT_EQ(result, "CruelWorld");
-
- result = QuicStrCat(strs[0], ", ", pieces[2]);
- EXPECT_EQ(result, "Hello, World");
-
- result = QuicStrCat(strs[0], ", ", strs[1], " ", strs[2], "!");
- EXPECT_EQ(result, "Hello, Cruel World!");
-
- result = QuicStrCat(pieces[0], ", ", pieces[1], " ", pieces[2]);
- EXPECT_EQ(result, "Hello, Cruel World");
-
- result = QuicStrCat(c_strs[0], ", ", c_strs[1], " ", c_strs[2]);
- EXPECT_EQ(result, "Hello, Cruel World");
-
- result = QuicStrCat("ASCII ", i32s[0], ", ", i32s[1], " ", i32s[2], "!");
- EXPECT_EQ(result, "ASCII 72, 67 87!");
-
- result = QuicStrCat(ui64s[0], ", ", ui64s[1], "!");
- EXPECT_EQ(result, "12345678910, 10987654321!");
-
- std::string one = "1";
- result = QuicStrCat("And a ", one.size(), " and a ", &result[2] - &result[0],
- " and a ", one, " 2 3 4", "!");
- EXPECT_EQ(result, "And a 1 and a 2 and a 1 2 3 4!");
-
- result =
- QuicStrCat("To output a char by ASCII/numeric value, use +: ", '!' + 0);
- EXPECT_EQ(result, "To output a char by ASCII/numeric value, use +: 33");
-
- float f = 10000.5;
- result = QuicStrCat("Ten K and a half is ", f);
- EXPECT_EQ(result, "Ten K and a half is 10000.5");
-
- double d = 99999.9;
- result = QuicStrCat("This double number is ", d);
- EXPECT_EQ(result, "This double number is 99999.9");
-
- result =
- QuicStrCat(1, 22, 333, 4444, 55555, 666666, 7777777, 88888888, 999999999);
- EXPECT_EQ(result, "122333444455555666666777777788888888999999999");
-}
-
-TEST_F(QuicStrCatTest, MaxArgs) {
- std::string result;
- // Test 10 up to 26 arguments, the current maximum
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a");
- EXPECT_EQ(result, "123456789a");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b");
- EXPECT_EQ(result, "123456789ab");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c");
- EXPECT_EQ(result, "123456789abc");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d");
- EXPECT_EQ(result, "123456789abcd");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e");
- EXPECT_EQ(result, "123456789abcde");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f");
- EXPECT_EQ(result, "123456789abcdef");
- result =
- QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f", "g");
- EXPECT_EQ(result, "123456789abcdefg");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h");
- EXPECT_EQ(result, "123456789abcdefgh");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i");
- EXPECT_EQ(result, "123456789abcdefghi");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j");
- EXPECT_EQ(result, "123456789abcdefghij");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k");
- EXPECT_EQ(result, "123456789abcdefghijk");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l");
- EXPECT_EQ(result, "123456789abcdefghijkl");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m");
- EXPECT_EQ(result, "123456789abcdefghijklm");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m", "n");
- EXPECT_EQ(result, "123456789abcdefghijklmn");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m", "n", "o");
- EXPECT_EQ(result, "123456789abcdefghijklmno");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m", "n", "o", "p");
- EXPECT_EQ(result, "123456789abcdefghijklmnop");
- result = QuicStrCat(1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f",
- "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q");
- EXPECT_EQ(result, "123456789abcdefghijklmnopq");
- // No limit thanks to C++11's variadic templates
- result = QuicStrCat(
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b", "c", "d", "e", "f", "g", "h",
- "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
- "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
- "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
- EXPECT_EQ(result,
- "12345678910abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
-}
-
-} // namespace
-} // namespace test
-} // namespace quic
diff --git a/quic/platform/api/quic_string_piece.h b/quic/platform/api/quic_string_piece.h
deleted file mode 100644
index 91cb183..0000000
--- a/quic/platform/api/quic_string_piece.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_STRING_PIECE_H_
-#define QUICHE_QUIC_PLATFORM_API_QUIC_STRING_PIECE_H_
-
-#include "net/quic/platform/impl/quic_string_piece_impl.h"
-
-namespace quic {
-
-using QuicStringPiece = QuicStringPieceImpl;
-
-} // namespace quic
-
-#endif // QUICHE_QUIC_PLATFORM_API_QUIC_STRING_PIECE_H_
diff --git a/quic/platform/api/quic_text_utils.h b/quic/platform/api/quic_text_utils.h
deleted file mode 100644
index 186368f..0000000
--- a/quic/platform/api/quic_text_utils.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_PLATFORM_API_QUIC_TEXT_UTILS_H_
-#define QUICHE_QUIC_PLATFORM_API_QUIC_TEXT_UTILS_H_
-
-#include <string>
-
-#include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
-#include "net/quic/platform/impl/quic_text_utils_impl.h"
-
-namespace quic {
-
-// Various utilities for manipulating text.
-class QUIC_EXPORT_PRIVATE QuicTextUtils {
- public:
- // Returns true if |data| starts with |prefix|, case sensitively.
- static bool StartsWith(QuicStringPiece data, QuicStringPiece prefix) {
- return QuicTextUtilsImpl::StartsWith(data, prefix);
- }
-
- // Returns true if |data| ends with |suffix|, case insensitively.
- static bool EndsWithIgnoreCase(QuicStringPiece data, QuicStringPiece suffix) {
- return QuicTextUtilsImpl::EndsWithIgnoreCase(data, suffix);
- }
-
- // Returns a new string in which |data| has been converted to lower case.
- static std::string ToLower(QuicStringPiece data) {
- return QuicTextUtilsImpl::ToLower(data);
- }
-
- // Removes leading and trailing whitespace from |data|.
- static void RemoveLeadingAndTrailingWhitespace(QuicStringPiece* data) {
- QuicTextUtilsImpl::RemoveLeadingAndTrailingWhitespace(data);
- }
-
- // Returns true if |in| represents a valid uint64, and stores that value in
- // |out|.
- static bool StringToUint64(QuicStringPiece in, uint64_t* out) {
- return QuicTextUtilsImpl::StringToUint64(in, out);
- }
-
- // Returns true if |in| represents a valid int, and stores that value in
- // |out|.
- static bool StringToInt(QuicStringPiece in, int* out) {
- return QuicTextUtilsImpl::StringToInt(in, out);
- }
-
- // Returns true if |in| represents a valid uint32, and stores that value in
- // |out|.
- static bool StringToUint32(QuicStringPiece in, uint32_t* out) {
- return QuicTextUtilsImpl::StringToUint32(in, out);
- }
-
- // Returns true if |in| represents a valid size_t, and stores that value in
- // |out|.
- static bool StringToSizeT(QuicStringPiece in, size_t* out) {
- return QuicTextUtilsImpl::StringToSizeT(in, out);
- }
-
- // Returns a new string representing |in|.
- static std::string Uint64ToString(uint64_t in) {
- return QuicTextUtilsImpl::Uint64ToString(in);
- }
-
- // This converts |length| bytes of binary to a 2*|length|-character
- // hexadecimal representation.
- // Return value: 2*|length| characters of ASCII string.
- static std::string HexEncode(const char* data, size_t length) {
- return HexEncode(QuicStringPiece(data, length));
- }
-
- // This converts |data.length()| bytes of binary to a
- // 2*|data.length()|-character hexadecimal representation.
- // Return value: 2*|data.length()| characters of ASCII string.
- static std::string HexEncode(QuicStringPiece data) {
- return QuicTextUtilsImpl::HexEncode(data);
- }
-
- // This converts a uint32 into an 8-character hexidecimal
- // representation. Return value: 8 characters of ASCII string.
- static std::string Hex(uint32_t v) { return QuicTextUtilsImpl::Hex(v); }
-
- // Converts |data| from a hexadecimal ASCII string to a binary string
- // that is |data.length()/2| bytes long.
- static std::string HexDecode(QuicStringPiece data) {
- return QuicTextUtilsImpl::HexDecode(data);
- }
-
- // Base64 encodes with no padding |data_len| bytes of |data| into |output|.
- static void Base64Encode(const uint8_t* data,
- size_t data_len,
- std::string* output) {
- return QuicTextUtilsImpl::Base64Encode(data, data_len, output);
- }
-
- // Returns a string containing hex and ASCII representations of |binary|,
- // side-by-side in the style of hexdump. Non-printable characters will be
- // printed as '.' in the ASCII output.
- // For example, given the input "Hello, QUIC!\01\02\03\04", returns:
- // "0x0000: 4865 6c6c 6f2c 2051 5549 4321 0102 0304 Hello,.QUIC!...."
- static std::string HexDump(QuicStringPiece binary_data) {
- return QuicTextUtilsImpl::HexDump(binary_data);
- }
-
- // Returns true if |data| contains any uppercase characters.
- static bool ContainsUpperCase(QuicStringPiece data) {
- return QuicTextUtilsImpl::ContainsUpperCase(data);
- }
-
- // Returns true if |data| contains only decimal digits.
- static bool IsAllDigits(QuicStringPiece data) {
- return QuicTextUtilsImpl::IsAllDigits(data);
- }
-
- // Splits |data| into a vector of pieces delimited by |delim|.
- static std::vector<QuicStringPiece> Split(QuicStringPiece data, char delim) {
- return QuicTextUtilsImpl::Split(data, delim);
- }
-};
-
-} // namespace quic
-
-#endif // QUICHE_QUIC_PLATFORM_API_QUIC_TEXT_UTILS_H_
diff --git a/quic/platform/api/quic_text_utils_test.cc b/quic/platform/api/quic_text_utils_test.cc
deleted file mode 100644
index af4e81d..0000000
--- a/quic/platform/api/quic_text_utils_test.cc
+++ /dev/null
@@ -1,212 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
-
-#include <string>
-
-#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
-
-namespace quic {
-namespace test {
-
-class QuicTextUtilsTest : public QuicTest {};
-
-TEST_F(QuicTextUtilsTest, StartsWith) {
- EXPECT_TRUE(QuicTextUtils::StartsWith("hello world", "hello"));
- EXPECT_TRUE(QuicTextUtils::StartsWith("hello world", "hello world"));
- EXPECT_TRUE(QuicTextUtils::StartsWith("hello world", ""));
- EXPECT_FALSE(QuicTextUtils::StartsWith("hello world", "Hello"));
- EXPECT_FALSE(QuicTextUtils::StartsWith("hello world", "world"));
- EXPECT_FALSE(QuicTextUtils::StartsWith("hello world", "bar"));
-}
-
-TEST_F(QuicTextUtilsTest, EndsWithIgnoreCase) {
- EXPECT_TRUE(QuicTextUtils::EndsWithIgnoreCase("hello world", "world"));
- EXPECT_TRUE(QuicTextUtils::EndsWithIgnoreCase("hello world", "hello world"));
- EXPECT_TRUE(QuicTextUtils::EndsWithIgnoreCase("hello world", ""));
- EXPECT_TRUE(QuicTextUtils::EndsWithIgnoreCase("hello world", "WORLD"));
- EXPECT_FALSE(QuicTextUtils::EndsWithIgnoreCase("hello world", "hello"));
-}
-
-TEST_F(QuicTextUtilsTest, ToLower) {
- EXPECT_EQ("lower", QuicTextUtils::ToLower("LOWER"));
- EXPECT_EQ("lower", QuicTextUtils::ToLower("lower"));
- EXPECT_EQ("lower", QuicTextUtils::ToLower("lOwEr"));
- EXPECT_EQ("123", QuicTextUtils::ToLower("123"));
- EXPECT_EQ("", QuicTextUtils::ToLower(""));
-}
-
-TEST_F(QuicTextUtilsTest, RemoveLeadingAndTrailingWhitespace) {
- std::string input;
-
- for (auto* input : {"text", " text", " text", "text ", "text ", " text ",
- " text ", "\r\n\ttext", "text\n\r\t"}) {
- QuicStringPiece piece(input);
- QuicTextUtils::RemoveLeadingAndTrailingWhitespace(&piece);
- EXPECT_EQ("text", piece);
- }
-}
-
-TEST_F(QuicTextUtilsTest, StringToNumbers) {
- const std::string kMaxInt32Plus1 = "2147483648";
- const std::string kMinInt32Minus1 = "-2147483649";
- const std::string kMaxUint32Plus1 = "4294967296";
-
- {
- // StringToUint64
- uint64_t uint64_val = 0;
- EXPECT_TRUE(QuicTextUtils::StringToUint64("123", &uint64_val));
- EXPECT_EQ(123u, uint64_val);
- EXPECT_TRUE(QuicTextUtils::StringToUint64("1234", &uint64_val));
- EXPECT_EQ(1234u, uint64_val);
- EXPECT_FALSE(QuicTextUtils::StringToUint64("", &uint64_val));
- EXPECT_FALSE(QuicTextUtils::StringToUint64("-123", &uint64_val));
- EXPECT_FALSE(QuicTextUtils::StringToUint64("-123.0", &uint64_val));
- EXPECT_TRUE(QuicTextUtils::StringToUint64(kMaxUint32Plus1, &uint64_val));
- EXPECT_EQ(4294967296u, uint64_val);
- }
-
- {
- // StringToint
- int int_val = 0;
- EXPECT_TRUE(QuicTextUtils::StringToInt("123", &int_val));
- EXPECT_EQ(123, int_val);
- EXPECT_TRUE(QuicTextUtils::StringToInt("1234", &int_val));
- EXPECT_EQ(1234, int_val);
- EXPECT_FALSE(QuicTextUtils::StringToInt("", &int_val));
- EXPECT_TRUE(QuicTextUtils::StringToInt("-123", &int_val));
- EXPECT_EQ(-123, int_val);
- EXPECT_FALSE(QuicTextUtils::StringToInt("-123.0", &int_val));
- if (sizeof(int) > 4) {
- EXPECT_TRUE(QuicTextUtils::StringToInt(kMinInt32Minus1, &int_val));
- EXPECT_EQ(-2147483649ll, int_val);
- EXPECT_TRUE(QuicTextUtils::StringToInt(kMaxInt32Plus1, &int_val));
- EXPECT_EQ(2147483648ll, int_val);
- } else {
- EXPECT_FALSE(QuicTextUtils::StringToInt(kMinInt32Minus1, &int_val));
- EXPECT_FALSE(QuicTextUtils::StringToInt(kMaxInt32Plus1, &int_val));
- }
- }
-
- {
- // StringToUint32
- uint32_t uint32_val = 0;
- EXPECT_TRUE(QuicTextUtils::StringToUint32("123", &uint32_val));
- EXPECT_EQ(123u, uint32_val);
- EXPECT_TRUE(QuicTextUtils::StringToUint32("1234", &uint32_val));
- EXPECT_EQ(1234u, uint32_val);
- EXPECT_FALSE(QuicTextUtils::StringToUint32("", &uint32_val));
- EXPECT_FALSE(QuicTextUtils::StringToUint32("-123", &uint32_val));
- EXPECT_FALSE(QuicTextUtils::StringToUint32("-123.0", &uint32_val));
- EXPECT_FALSE(QuicTextUtils::StringToUint32(kMaxUint32Plus1, &uint32_val));
- }
-
- {
- // StringToSizeT
- size_t size_t_val = 0;
- EXPECT_TRUE(QuicTextUtils::StringToSizeT("123", &size_t_val));
- EXPECT_EQ(123u, size_t_val);
- EXPECT_TRUE(QuicTextUtils::StringToSizeT("1234", &size_t_val));
- EXPECT_EQ(1234u, size_t_val);
- EXPECT_FALSE(QuicTextUtils::StringToSizeT("", &size_t_val));
- EXPECT_FALSE(QuicTextUtils::StringToSizeT("-123", &size_t_val));
- EXPECT_FALSE(QuicTextUtils::StringToSizeT("-123.0", &size_t_val));
- if (sizeof(size_t) > 4) {
- EXPECT_TRUE(QuicTextUtils::StringToSizeT(kMaxUint32Plus1, &size_t_val));
- EXPECT_EQ(4294967296ull, size_t_val);
- } else {
- EXPECT_FALSE(QuicTextUtils::StringToSizeT(kMaxUint32Plus1, &size_t_val));
- }
- }
-}
-
-TEST_F(QuicTextUtilsTest, Uint64ToString) {
- EXPECT_EQ("123", QuicTextUtils::Uint64ToString(123));
- EXPECT_EQ("1234", QuicTextUtils::Uint64ToString(1234));
-}
-
-TEST_F(QuicTextUtilsTest, HexEncode) {
- EXPECT_EQ("48656c6c6f", QuicTextUtils::HexEncode("Hello", 5));
- EXPECT_EQ("48656c6c6f", QuicTextUtils::HexEncode("Hello World", 5));
- EXPECT_EQ("48656c6c6f", QuicTextUtils::HexEncode("Hello"));
- EXPECT_EQ("0102779cfa", QuicTextUtils::HexEncode("\x01\x02\x77\x9c\xfa"));
-}
-
-TEST_F(QuicTextUtilsTest, HexDecode) {
- EXPECT_EQ("Hello", QuicTextUtils::HexDecode("48656c6c6f"));
- EXPECT_EQ("", QuicTextUtils::HexDecode(""));
- EXPECT_EQ("\x01\x02\x77\x9c\xfa", QuicTextUtils::HexDecode("0102779cfa"));
-}
-
-TEST_F(QuicTextUtilsTest, HexDump) {
- // Verify output of the HexDump method is as expected.
- char packet[] = {
- 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x51, 0x55, 0x49, 0x43, 0x21,
- 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
- 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x6c,
- 0x6f, 0x6e, 0x67, 0x20, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x74,
- 0x6f, 0x20, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69,
- 0x70, 0x6c, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x6f, 0x66,
- 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x01, 0x02, 0x03, 0x00,
- };
- EXPECT_EQ(
- QuicTextUtils::HexDump(packet),
- "0x0000: 4865 6c6c 6f2c 2051 5549 4321 2054 6869 Hello,.QUIC!.Thi\n"
- "0x0010: 7320 7374 7269 6e67 2073 686f 756c 6420 s.string.should.\n"
- "0x0020: 6265 206c 6f6e 6720 656e 6f75 6768 2074 be.long.enough.t\n"
- "0x0030: 6f20 7370 616e 206d 756c 7469 706c 6520 o.span.multiple.\n"
- "0x0040: 6c69 6e65 7320 6f66 206f 7574 7075 742e lines.of.output.\n"
- "0x0050: 0102 03 ...\n");
- // Verify that 0x21 and 0x7e are printable, 0x20 and 0x7f are not.
- EXPECT_EQ("0x0000: 2021 7e7f .!~.\n",
- QuicTextUtils::HexDump(QuicTextUtils::HexDecode("20217e7f")));
- // Verify that values above numeric_limits<unsigned char>::max() are formatted
- // properly on platforms where char is unsigned.
- EXPECT_EQ("0x0000: 90aa ff ...\n",
- QuicTextUtils::HexDump(QuicTextUtils::HexDecode("90aaff")));
-}
-
-TEST_F(QuicTextUtilsTest, Base64Encode) {
- std::string output;
- std::string input = "Hello";
- QuicTextUtils::Base64Encode(reinterpret_cast<const uint8_t*>(input.data()),
- input.length(), &output);
- EXPECT_EQ("SGVsbG8", output);
-
- input =
- "Hello, QUIC! This string should be long enough to span"
- "multiple lines of output\n";
- QuicTextUtils::Base64Encode(reinterpret_cast<const uint8_t*>(input.data()),
- input.length(), &output);
- EXPECT_EQ(
- "SGVsbG8sIFFVSUMhIFRoaXMgc3RyaW5nIHNob3VsZCBiZSBsb25n"
- "IGVub3VnaCB0byBzcGFubXVsdGlwbGUgbGluZXMgb2Ygb3V0cHV0Cg",
- output);
-}
-
-TEST_F(QuicTextUtilsTest, ContainsUpperCase) {
- EXPECT_FALSE(QuicTextUtils::ContainsUpperCase("abc"));
- EXPECT_FALSE(QuicTextUtils::ContainsUpperCase(""));
- EXPECT_FALSE(QuicTextUtils::ContainsUpperCase("123"));
- EXPECT_TRUE(QuicTextUtils::ContainsUpperCase("ABC"));
- EXPECT_TRUE(QuicTextUtils::ContainsUpperCase("aBc"));
-}
-
-TEST_F(QuicTextUtilsTest, Split) {
- EXPECT_EQ(std::vector<QuicStringPiece>({"a", "b", "c"}),
- QuicTextUtils::Split("a,b,c", ','));
- EXPECT_EQ(std::vector<QuicStringPiece>({"a", "b", "c"}),
- QuicTextUtils::Split("a:b:c", ':'));
- EXPECT_EQ(std::vector<QuicStringPiece>({"a:b:c"}),
- QuicTextUtils::Split("a:b:c", ','));
- // Leading and trailing whitespace is preserved.
- EXPECT_EQ(std::vector<QuicStringPiece>({"a", "b", "c"}),
- QuicTextUtils::Split("a,b,c", ','));
- EXPECT_EQ(std::vector<QuicStringPiece>({" a", "b ", " c "}),
- QuicTextUtils::Split(" a:b : c ", ':'));
-}
-
-} // namespace test
-} // namespace quic