| // 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 "device/bluetooth/string_util_icu.h" |
| |
| #include "base/strings/utf_string_conversions.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace device { |
| |
| TEST(StringUtilICUTest, HasGraphicCharacter) { |
| // Contain Graphic Characters. |
| EXPECT_TRUE(HasGraphicCharacter("A")); |
| EXPECT_TRUE(HasGraphicCharacter("#")); |
| EXPECT_TRUE(HasGraphicCharacter("3")); |
| EXPECT_TRUE(HasGraphicCharacter(u8"\u2764" /* Heart Symbol */)); |
| EXPECT_TRUE(HasGraphicCharacter(" A")); |
| EXPECT_TRUE(HasGraphicCharacter("A ")); |
| EXPECT_TRUE(HasGraphicCharacter(" A ")); |
| std::string nulls_at_start(5, '\0'); |
| nulls_at_start[4] = 'A'; |
| EXPECT_TRUE(HasGraphicCharacter(nulls_at_start)); |
| |
| std::string nulls_at_end(5, '\0'); |
| nulls_at_end[0] = 'A'; |
| EXPECT_TRUE(HasGraphicCharacter(nulls_at_end)); |
| |
| std::string surrounded_by_nulls(5, '\0'); |
| surrounded_by_nulls[2] = 'A'; |
| EXPECT_TRUE(HasGraphicCharacter(surrounded_by_nulls)); |
| |
| // Do not contain Graphic Characters. |
| EXPECT_FALSE(HasGraphicCharacter("")); |
| EXPECT_FALSE(HasGraphicCharacter(std::string(3, '\0'))); |
| EXPECT_FALSE(HasGraphicCharacter("\n\t\v\b\r ")); |
| // Unicode Control characters. |
| EXPECT_FALSE(HasGraphicCharacter(u8"\u0000\u001f\u007f\u009f")); |
| } |
| |
| } // namespace device |