diff options
Diffstat (limited to 'Swiften/StringCodecs')
-rw-r--r-- | Swiften/StringCodecs/Hexify.cpp | 6 | ||||
-rw-r--r-- | Swiften/StringCodecs/Hexify.h | 1 | ||||
-rw-r--r-- | Swiften/StringCodecs/UnitTest/HexifyTest.cpp | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/Swiften/StringCodecs/Hexify.cpp b/Swiften/StringCodecs/Hexify.cpp index 8259912..c762d9b 100644 --- a/Swiften/StringCodecs/Hexify.cpp +++ b/Swiften/StringCodecs/Hexify.cpp @@ -15,6 +15,12 @@ namespace Swift { +String Hexify::hexify(unsigned char byte) { + std::ostringstream result; + result << std::hex << std::setw(2) << std::setfill('0') << boost::numeric_cast<unsigned int>(byte); + return String(result.str()); +} + String Hexify::hexify(const ByteArray& data) { std::ostringstream result; result << std::hex; diff --git a/Swiften/StringCodecs/Hexify.h b/Swiften/StringCodecs/Hexify.h index cf51bda..5eaabda 100644 --- a/Swiften/StringCodecs/Hexify.h +++ b/Swiften/StringCodecs/Hexify.h @@ -12,6 +12,7 @@ namespace Swift { class Hexify { public: + static String hexify(unsigned char byte); static String hexify(const ByteArray& data); }; } diff --git a/Swiften/StringCodecs/UnitTest/HexifyTest.cpp b/Swiften/StringCodecs/UnitTest/HexifyTest.cpp index 760d661..4ed871a 100644 --- a/Swiften/StringCodecs/UnitTest/HexifyTest.cpp +++ b/Swiften/StringCodecs/UnitTest/HexifyTest.cpp @@ -16,12 +16,17 @@ using namespace Swift; class HexifyTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(HexifyTest); CPPUNIT_TEST(testHexify); + CPPUNIT_TEST(testHexify_Byte); CPPUNIT_TEST_SUITE_END(); public: void testHexify() { CPPUNIT_ASSERT_EQUAL(String("4206b23ca6b0a643d20d89b04ff58cf78b8096ed"), Hexify::hexify(ByteArray("\x42\x06\xb2\x3c\xa6\xb0\xa6\x43\xd2\x0d\x89\xb0\x4f\xf5\x8c\xf7\x8b\x80\x96\xed"))); } + + void testHexify_Byte() { + CPPUNIT_ASSERT_EQUAL(String("b2"), Hexify::hexify(0xb2)); + } }; CPPUNIT_TEST_SUITE_REGISTRATION(HexifyTest); |