chromium/third_party/blink/web_tests/fast/encoding/utf-16-lone-surrogates.html

<!DOCTYPE html>
<title>UTF-16 Decoding: Lone Surrogates</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="resources/char-decoding-utils.js"></script>
<script>

// Trailing U+0000 is used to force the encoder to process a buffered
// lead surrogate since flushing does not occur at the end of streams.

testDecode('utf-16', '%69%D8%D6%DE%00%00', 'U+D869/U+DED6/U+0000');
testDecode('utf-16', '%D6%DE%69%D8%00%00', 'U+FFFD/U+FFFD/U+0000');
testDecode('utf-16', '%69%D8%00%00', 'U+FFFD/U+0000');
testDecode('utf-16', '%D6%DE%00%00', 'U+FFFD/U+0000');

testDecode('utf-16be', '%D8%69%DE%D6%00%00', 'U+D869/U+DED6/U+0000');
testDecode('utf-16be', '%DE%D6%D8%69%00%00', 'U+FFFD/U+FFFD/U+0000');
testDecode('utf-16be', '%D8%69%00%00', 'U+FFFD/U+0000');
testDecode('utf-16be', '%DE%D6%00%00', 'U+FFFD/U+0000');

</script>