blob: 23ff82cf423092ac0c8bfeec1ac2ad3be0b3765b [file] [log] [blame]
// Copyright 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.
#include "spdy/platform/api/spdy_string_utils.h"
#include <cstdint>
#include "absl/strings/string_view.h"
#include "common/platform/api/quiche_test.h"
namespace spdy {
namespace test {
namespace {
TEST(SpdyStringUtilsTest, SpdyHexDigitToInt) {
EXPECT_EQ(0, SpdyHexDigitToInt('0'));
EXPECT_EQ(1, SpdyHexDigitToInt('1'));
EXPECT_EQ(2, SpdyHexDigitToInt('2'));
EXPECT_EQ(3, SpdyHexDigitToInt('3'));
EXPECT_EQ(4, SpdyHexDigitToInt('4'));
EXPECT_EQ(5, SpdyHexDigitToInt('5'));
EXPECT_EQ(6, SpdyHexDigitToInt('6'));
EXPECT_EQ(7, SpdyHexDigitToInt('7'));
EXPECT_EQ(8, SpdyHexDigitToInt('8'));
EXPECT_EQ(9, SpdyHexDigitToInt('9'));
EXPECT_EQ(10, SpdyHexDigitToInt('a'));
EXPECT_EQ(11, SpdyHexDigitToInt('b'));
EXPECT_EQ(12, SpdyHexDigitToInt('c'));
EXPECT_EQ(13, SpdyHexDigitToInt('d'));
EXPECT_EQ(14, SpdyHexDigitToInt('e'));
EXPECT_EQ(15, SpdyHexDigitToInt('f'));
EXPECT_EQ(10, SpdyHexDigitToInt('A'));
EXPECT_EQ(11, SpdyHexDigitToInt('B'));
EXPECT_EQ(12, SpdyHexDigitToInt('C'));
EXPECT_EQ(13, SpdyHexDigitToInt('D'));
EXPECT_EQ(14, SpdyHexDigitToInt('E'));
EXPECT_EQ(15, SpdyHexDigitToInt('F'));
}
TEST(SpdyStringUtilsTest, SpdyHexDecodeToUInt32) {
uint32_t out;
EXPECT_TRUE(SpdyHexDecodeToUInt32("0", &out));
EXPECT_EQ(0u, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("00", &out));
EXPECT_EQ(0u, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("0000000", &out));
EXPECT_EQ(0u, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("00000000", &out));
EXPECT_EQ(0u, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("1", &out));
EXPECT_EQ(1u, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("ffffFFF", &out));
EXPECT_EQ(0xFFFFFFFu, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("fFfFffFf", &out));
EXPECT_EQ(0xFFFFFFFFu, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("01AEF", &out));
EXPECT_EQ(0x1AEFu, out);
EXPECT_TRUE(SpdyHexDecodeToUInt32("abcde", &out));
EXPECT_EQ(0xABCDEu, out);
EXPECT_FALSE(SpdyHexDecodeToUInt32("", &out));
EXPECT_FALSE(SpdyHexDecodeToUInt32("111111111", &out));
EXPECT_FALSE(SpdyHexDecodeToUInt32("1111111111", &out));
EXPECT_FALSE(SpdyHexDecodeToUInt32("0x1111", &out));
}
} // namespace
} // namespace test
} // namespace spdy