Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: Source/wtf/text/TextCodecUTF8Test.cpp

Issue 23532016: Handle odd data lengths in UTF-16 decoder (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Simplify Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/wtf/text/TextCodecUTF8.cpp ('k') | Source/wtf/text/TextCodecUserDefined.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 TEST(TextCodecUTF8, DecodeAscii) 46 TEST(TextCodecUTF8, DecodeAscii)
47 { 47 {
48 TextEncoding encoding("UTF-8"); 48 TextEncoding encoding("UTF-8");
49 OwnPtr<TextCodec> codec(newTextCodec(encoding)); 49 OwnPtr<TextCodec> codec(newTextCodec(encoding));
50 50
51 const char testCase[] = "HelloWorld"; 51 const char testCase[] = "HelloWorld";
52 size_t testCaseSize = sizeof(testCase) - 1; 52 size_t testCaseSize = sizeof(testCase) - 1;
53 53
54 bool sawError = false; 54 bool sawError = false;
55 const String& result = codec->decode(testCase, testCaseSize, true, false, sa wError); 55 const String& result = codec->decode(testCase, testCaseSize, DataEOF, false, sawError);
56 EXPECT_FALSE(sawError); 56 EXPECT_FALSE(sawError);
57 ASSERT_EQ(testCaseSize, result.length()); 57 ASSERT_EQ(testCaseSize, result.length());
58 for (size_t i = 0; i < testCaseSize; ++i) { 58 for (size_t i = 0; i < testCaseSize; ++i) {
59 EXPECT_EQ(testCase[i], result[i]); 59 EXPECT_EQ(testCase[i], result[i]);
60 } 60 }
61 } 61 }
62 62
63 TEST(TextCodecUTF8, DecodeChineseCharacters) 63 TEST(TextCodecUTF8, DecodeChineseCharacters)
64 { 64 {
65 TextEncoding encoding("UTF-8"); 65 TextEncoding encoding("UTF-8");
66 OwnPtr<TextCodec> codec(newTextCodec(encoding)); 66 OwnPtr<TextCodec> codec(newTextCodec(encoding));
67 67
68 // "Kanji" in Chinese characters. 68 // "Kanji" in Chinese characters.
69 const char testCase[] = "\xe6\xbc\xa2\xe5\xad\x97"; 69 const char testCase[] = "\xe6\xbc\xa2\xe5\xad\x97";
70 size_t testCaseSize = sizeof(testCase) - 1; 70 size_t testCaseSize = sizeof(testCase) - 1;
71 71
72 bool sawError = false; 72 bool sawError = false;
73 const String& result = codec->decode(testCase, testCaseSize, true, false, sa wError); 73 const String& result = codec->decode(testCase, testCaseSize, DataEOF, false, sawError);
74 EXPECT_FALSE(sawError); 74 EXPECT_FALSE(sawError);
75 ASSERT_EQ(2u, result.length()); 75 ASSERT_EQ(2u, result.length());
76 EXPECT_EQ(0x6f22U, result[0]); 76 EXPECT_EQ(0x6f22U, result[0]);
77 EXPECT_EQ(0x5b57U, result[1]); 77 EXPECT_EQ(0x5b57U, result[1]);
78 } 78 }
79 79
80 TEST(TextCodecUTF8, Decode0xFF) 80 TEST(TextCodecUTF8, Decode0xFF)
81 { 81 {
82 TextEncoding encoding("UTF-8"); 82 TextEncoding encoding("UTF-8");
83 OwnPtr<TextCodec> codec(newTextCodec(encoding)); 83 OwnPtr<TextCodec> codec(newTextCodec(encoding));
84 84
85 bool sawError = false; 85 bool sawError = false;
86 const String& result = codec->decode("\xff", 1, true, false, sawError); 86 const String& result = codec->decode("\xff", 1, DataEOF, false, sawError);
87 EXPECT_TRUE(sawError); 87 EXPECT_TRUE(sawError);
88 ASSERT_EQ(1u, result.length()); 88 ASSERT_EQ(1u, result.length());
89 EXPECT_EQ(0xFFFDU, result[0]); 89 EXPECT_EQ(0xFFFDU, result[0]);
90 } 90 }
91 91
92 } // namespace 92 } // namespace
93 93
94 } // namespace WTF 94 } // namespace WTF
OLDNEW
« no previous file with comments | « Source/wtf/text/TextCodecUTF8.cpp ('k') | Source/wtf/text/TextCodecUserDefined.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698