diff --git a/tests/test-getusername.cpp b/tests/test-getusername.cpp index 1b15cc2d65..c2c9d1c2db 100644 --- a/tests/test-getusername.cpp +++ b/tests/test-getusername.cpp @@ -1,7 +1,14 @@ +#include +#include #include #include +#include #include "getusername.h" +using std::string; +using std::vector; +using SCXCoreLib::Utf16leToUtf8; + TEST(GetUserName,simple) { // allocate a WCHAR_T buffer to receive username @@ -14,10 +21,17 @@ TEST(GetUserName,simple) ASSERT_EQ(1, result); // get expected username - const char *username = getlogin(); + string username = string(getlogin()); // GetUserName sets lpnSize to length of username including null - ASSERT_EQ(strlen(username)+1, lpnSize); + ASSERT_EQ(username.size()+1, lpnSize); - // TODO: ASSERT_STREQ(username, Utf16leToUtf8(lpBuffer)) + // copy UTF-16 bytes from lpBuffer to vector for conversion + vector input(reinterpret_cast(&lpBuffer[0]), + reinterpret_cast(&lpBuffer[lpnSize-1])); + // convert to UTF-8 for assertion + string output; + Utf16leToUtf8(input, output); + + EXPECT_EQ(username, output); }