aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/unittests/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/unittests/base')
-rw-r--r--src/test/unittests/base/StringTests.cpp36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/test/unittests/base/StringTests.cpp b/src/test/unittests/base/StringTests.cpp
index 39ad6e8..cc8e4fc 100644
--- a/src/test/unittests/base/StringTests.cpp
+++ b/src/test/unittests/base/StringTests.cpp
@@ -1,11 +1,11 @@
/*
* barrier -- mouse and keyboard sharing utility
* Copyright (C) 2014-2016 Symless Ltd.
- *
+ *
* This package is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* found in the file LICENSE that should have accompanied this file.
- *
+ *
* This package is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -56,12 +56,38 @@ TEST(StringTests, sprintf_formatWithArgument_formatedString)
TEST(StringTests, toHex_plaintext_hexString)
{
- String subject = "foobar";
+ std::vector<std::uint8_t> subject{'f', 'o', 'o', 'b', 'a', 'r'};
int width = 2;
- string::toHex(subject, width);
+ EXPECT_EQ("666f6f626172", string::to_hex(subject, width));
+}
+
+TEST(StringTests, fromhex_plaintext_string)
+{
+ auto result = string::from_hex("666f6f626172");
+ std::string expected = "foobar";
+ EXPECT_EQ(result, std::vector<std::uint8_t>(expected.begin(), expected.end()));
+}
+
+TEST(StringTests, fromhex_plaintext_string_colons)
+{
+ auto result = string::from_hex("66:6f:6f:62:61:72");
+ std::string expected = "foobar";
+ EXPECT_EQ(result, std::vector<std::uint8_t>(expected.begin(), expected.end()));
+}
- EXPECT_EQ("666f6f626172", subject);
+TEST(StringTests, fromhex_binary_string)
+{
+ auto result = string::from_hex("01020304050600fff9");
+ auto expected = std::vector<std::uint8_t>{1, 2, 3, 4, 5, 6, 0, 0xff, 0xf9};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(StringTests, fromhex_invalid_string)
+{
+ EXPECT_TRUE(string::from_hex("66:6").empty());
+ EXPECT_TRUE(string::from_hex("66:612").empty());
+ EXPECT_TRUE(string::from_hex("66:WW").empty());
}
TEST(StringTests, uppercase_lowercaseInput_uppercaseOutput)