summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/StringCodecs')
-rw-r--r--Swiften/StringCodecs/Hexify.cpp6
-rw-r--r--Swiften/StringCodecs/Hexify.h1
-rw-r--r--Swiften/StringCodecs/UnitTest/HexifyTest.cpp5
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);