diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 14:10:52 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-21 14:10:52 +0000 |
commit | 0a5e34a5386fa254a3b133f0a5f7667f1f790f67 (patch) | |
tree | d1dd0e80264f900004c56ad5ce6b56efea0bec49 /rlz/lib/string_utils_unittest.cc | |
parent | b049c382ff842f546e2bcc261ce23438bc8764bf (diff) | |
download | chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.zip chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.tar.gz chromium_src-0a5e34a5386fa254a3b133f0a5f7667f1f790f67.tar.bz2 |
Check-in rlz code to src\rlz from http://code.google.com/p/rlz/.
Review URL: https://chromiumcodereview.appspot.com/10597002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143381 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'rlz/lib/string_utils_unittest.cc')
-rw-r--r-- | rlz/lib/string_utils_unittest.cc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/rlz/lib/string_utils_unittest.cc b/rlz/lib/string_utils_unittest.cc new file mode 100644 index 0000000..82a6edb --- /dev/null +++ b/rlz/lib/string_utils_unittest.cc @@ -0,0 +1,69 @@ +// Copyright (c) 2012 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. +// +// Unit test for string manipulation functions used in the RLZ library. + +#include "rlz/lib/string_utils.h" + +#include "base/basictypes.h" +#include "base/logging.h" +#include "base/utf_string_conversions.h" +#include "rlz/lib/assert.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +TEST(StringUtilsUnittest, IsAscii) { + rlz_lib::SetExpectedAssertion(""); + + char bad_letters[] = {'\x80', '\xA0', '\xFF'}; + for (size_t i = 0; i < arraysize(bad_letters); ++i) + EXPECT_FALSE(rlz_lib::IsAscii(bad_letters[i])); + + char good_letters[] = {'A', '~', '\n', 0x7F, 0x00}; + for (size_t i = 0; i < arraysize(good_letters); ++i) + EXPECT_TRUE(rlz_lib::IsAscii(good_letters[i])); +} + +TEST(StringUtilsUnittest, HexStringToInteger) { + rlz_lib::SetExpectedAssertion("HexStringToInteger: text is NULL."); + EXPECT_EQ(0, rlz_lib::HexStringToInteger(NULL)); + + rlz_lib::SetExpectedAssertion(""); + EXPECT_EQ(0, rlz_lib::HexStringToInteger("")); + EXPECT_EQ(0, rlz_lib::HexStringToInteger(" ")); + EXPECT_EQ(0, rlz_lib::HexStringToInteger(" 0x ")); + EXPECT_EQ(0, rlz_lib::HexStringToInteger(" 0x0 ")); + EXPECT_EQ(0x12345, rlz_lib::HexStringToInteger("12345")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger("a34Ed0")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger("0xa34Ed0")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger(" 0xa34Ed0")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger("0xa34Ed0 ")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger(" 0xa34Ed0 ")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger(" 0x000a34Ed0 ")); + EXPECT_EQ(0xa34Ed0, rlz_lib::HexStringToInteger(" 000a34Ed0 ")); + + rlz_lib::SetExpectedAssertion( + "HexStringToInteger: text contains non-hex characters."); + EXPECT_EQ(0x12ff, rlz_lib::HexStringToInteger("12ffg")); + EXPECT_EQ(0x12f, rlz_lib::HexStringToInteger("12f 121")); + EXPECT_EQ(0x12f, rlz_lib::HexStringToInteger("12f 121")); + EXPECT_EQ(0, rlz_lib::HexStringToInteger("g12f")); + EXPECT_EQ(0, rlz_lib::HexStringToInteger(" 0x0 \n")); + + rlz_lib::SetExpectedAssertion(""); +} + +TEST(StringUtilsUnittest, TestBytesToString) { + unsigned char data[] = {0x1E, 0x00, 0x21, 0x67, 0xFF}; + std::string result; + + EXPECT_FALSE(rlz_lib::BytesToString(NULL, 5, &result)); + EXPECT_FALSE(rlz_lib::BytesToString(data, 5, NULL)); + EXPECT_FALSE(rlz_lib::BytesToString(NULL, 5, NULL)); + + EXPECT_TRUE(rlz_lib::BytesToString(data, 5, &result)); + EXPECT_EQ(std::string("1E002167FF"), result); + EXPECT_TRUE(rlz_lib::BytesToString(data, 4, &result)); + EXPECT_EQ(std::string("1E002167"), result); +} |