Merge to XFA: Simplify UTF16LE_Encode and add unittest.
[pdfium.git] / core / src / fxcrt / fx_basic_wstring_unittest.cpp
1 \feff// Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 #include "testing/gtest/include/gtest/gtest.h"\r
6 #include "../../../testing/fx_string_testhelpers.h"\r
7 #include "../../include/fxcrt/fx_basic.h"\r
8 \r
9 #define ByteStringLiteral(str) CFX_ByteString(FX_BSTRC(str))\r
10 \r
11 TEST(fxcrt, WideStringUTF16LE_Encode) {\r
12   struct UTF16LEEncodeCase {\r
13     CFX_WideString ws;\r
14     CFX_ByteString bs;\r
15   } utf16le_encode_cases[] = {\r
16     { L"", ByteStringLiteral("\0\0") },\r
17     { L"abc", ByteStringLiteral("a\0b\0c\0\0\0") },\r
18     { L"abcdef", ByteStringLiteral("a\0b\0c\0d\0e\0f\0\0\0") },\r
19     { L"abc\0def", ByteStringLiteral("a\0b\0c\0\0\0") },\r
20     { L"\xaabb\xccdd", ByteStringLiteral("\xbb\xaa\xdd\xcc\0\0") },\r
21     { L"\x3132\x6162", ByteStringLiteral("\x32\x31\x62\x61\0\0") },\r
22   };\r
23 \r
24   for (size_t i = 0; i < FX_ArraySize(utf16le_encode_cases); ++i) {\r
25     EXPECT_EQ(utf16le_encode_cases[i].bs,\r
26         utf16le_encode_cases[i].ws.UTF16LE_Encode())\r
27         << " for case number " << i;\r
28   }\r
29 }\r