diff options
author | Bo Xu <bo_xu@foxitsoftware.com> | 2015-01-21 12:17:23 -0800 |
---|---|---|
committer | Bo Xu <bo_xu@foxitsoftware.com> | 2015-01-21 12:59:54 -0800 |
commit | a6f95eb2eb735e593f201a3ff9daad77c765cce0 (patch) | |
tree | 6d6e7bf325e782db19e00cc5c2b290206cec0e75 /core/src/fxcrt/fx_basic_wstring_unittest.cpp | |
parent | 96d1334cb605aab143d3135da4d4550920735e91 (diff) | |
download | pdfium-a6f95eb2eb735e593f201a3ff9daad77c765cce0.tar.xz |
Merge to XFA: Simplify UTF16LE_Encode and add unittest.
Previously, UTF16LE_Encode take an optional flag to indicate
if the returned byte string has trailing zeros. In fact, no where
needs the flag to be false. So just get rid of it so callers won't
misuse.
The bug is found by https://codereview.chromium.org/837723009
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/860973002
Diffstat (limited to 'core/src/fxcrt/fx_basic_wstring_unittest.cpp')
-rw-r--r-- | core/src/fxcrt/fx_basic_wstring_unittest.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/core/src/fxcrt/fx_basic_wstring_unittest.cpp b/core/src/fxcrt/fx_basic_wstring_unittest.cpp new file mode 100644 index 0000000000..c6e5c2f3d0 --- /dev/null +++ b/core/src/fxcrt/fx_basic_wstring_unittest.cpp @@ -0,0 +1,29 @@ +// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "../../../testing/fx_string_testhelpers.h"
+#include "../../include/fxcrt/fx_basic.h"
+
+#define ByteStringLiteral(str) CFX_ByteString(FX_BSTRC(str))
+
+TEST(fxcrt, WideStringUTF16LE_Encode) {
+ struct UTF16LEEncodeCase {
+ CFX_WideString ws;
+ CFX_ByteString bs;
+ } utf16le_encode_cases[] = {
+ { L"", ByteStringLiteral("\0\0") },
+ { L"abc", ByteStringLiteral("a\0b\0c\0\0\0") },
+ { L"abcdef", ByteStringLiteral("a\0b\0c\0d\0e\0f\0\0\0") },
+ { L"abc\0def", ByteStringLiteral("a\0b\0c\0\0\0") },
+ { L"\xaabb\xccdd", ByteStringLiteral("\xbb\xaa\xdd\xcc\0\0") },
+ { L"\x3132\x6162", ByteStringLiteral("\x32\x31\x62\x61\0\0") },
+ };
+
+ for (size_t i = 0; i < FX_ArraySize(utf16le_encode_cases); ++i) {
+ EXPECT_EQ(utf16le_encode_cases[i].bs,
+ utf16le_encode_cases[i].ws.UTF16LE_Encode())
+ << " for case number " << i;
+ }
+}
|