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

Unified Diff: third_party/WebKit/Source/wtf/text/StringImplTest.cpp

Issue 2723053002: Use the correct case converter for |localName| and |tagName| (Closed)
Patch Set: Oops... Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/text/StringImpl.cpp ('k') | third_party/WebKit/Source/wtf/text/WTFString.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/wtf/text/StringImplTest.cpp
diff --git a/third_party/WebKit/Source/wtf/text/StringImplTest.cpp b/third_party/WebKit/Source/wtf/text/StringImplTest.cpp
index 9843a07eb4df4df003404130bdc5736bf335ead4..8e8835ac7c6d734768cb4ad5359753e2f13b64fe 100644
--- a/third_party/WebKit/Source/wtf/text/StringImplTest.cpp
+++ b/third_party/WebKit/Source/wtf/text/StringImplTest.cpp
@@ -100,4 +100,61 @@ TEST(StringImplTest, LowerASCII) {
StringImpl::create(testWithNonASCIIComparison, 2)->lowerASCII().get()));
}
+TEST(StringImplTest, UpperASCII) {
+ RefPtr<StringImpl> testStringImpl = StringImpl::create("LINK");
+ EXPECT_TRUE(testStringImpl->is8Bit());
+ EXPECT_TRUE(StringImpl::create("a\xE1")->is8Bit());
+
+ EXPECT_TRUE(equal(testStringImpl.get(),
+ StringImpl::create("link")->upperASCII().get()));
+ EXPECT_TRUE(equal(testStringImpl.get(),
+ StringImpl::create("LINK")->upperASCII().get()));
+ EXPECT_TRUE(equal(testStringImpl.get(),
+ StringImpl::create("lInk")->upperASCII().get()));
+
+ EXPECT_TRUE(equal(StringImpl::create("LINK")->upper().get(),
+ StringImpl::create("LINK")->upperASCII().get()));
+ EXPECT_TRUE(equal(StringImpl::create("lInk")->upper().get(),
+ StringImpl::create("lInk")->upperASCII().get()));
+
+ EXPECT_TRUE(equal(StringImpl::create("A\xE1").get(),
+ StringImpl::create("a\xE1")->upperASCII().get()));
+ EXPECT_TRUE(equal(StringImpl::create("A\xC1").get(),
+ StringImpl::create("a\xC1")->upperASCII().get()));
+
+ EXPECT_FALSE(equal(StringImpl::create("A\xE1").get(),
+ StringImpl::create("a\xC1")->upperASCII().get()));
+ EXPECT_FALSE(equal(StringImpl::create("A\xE1").get(),
+ StringImpl::create("A\xC1")->upperASCII().get()));
+
+ static const UChar test[5] = {0x006c, 0x0069, 0x006e, 0x006b, 0}; // link
+ static const UChar testCapitalized[5] = {0x004c, 0x0049, 0x004e, 0x004b,
+ 0}; // LINK
+
+ RefPtr<StringImpl> testStringImpl16 = StringImpl::create(testCapitalized, 4);
+ EXPECT_FALSE(testStringImpl16->is8Bit());
+
+ EXPECT_TRUE(equal(testStringImpl16.get(),
+ StringImpl::create(test, 4)->upperASCII().get()));
+ EXPECT_TRUE(
+ equal(testStringImpl16.get(),
+ StringImpl::create(testCapitalized, 4)->upperASCII().get()));
+
+ static const UChar testWithNonASCII[3] = {0x0061, 0x00e1, 0}; // a\xE1
+ static const UChar testWithNonASCIIComparison[3] = {0x0061, 0x00c1,
+ 0}; // a\xC1
+ static const UChar testWithNonASCIICapitalized[3] = {0x0041, 0x00e1,
+ 0}; // A\xE1
+
+ // Make sure we support RefPtr<const StringImpl>.
+ RefPtr<const StringImpl> constRef = testStringImpl->isolatedCopy();
+ DCHECK(constRef->hasOneRef());
+ EXPECT_TRUE(
+ equal(StringImpl::create(testWithNonASCIICapitalized, 2).get(),
+ StringImpl::create(testWithNonASCII, 2)->upperASCII().get()));
+ EXPECT_FALSE(equal(
+ StringImpl::create(testWithNonASCIICapitalized, 2).get(),
+ StringImpl::create(testWithNonASCIIComparison, 2)->upperASCII().get()));
+}
+
} // namespace WTF
« no previous file with comments | « third_party/WebKit/Source/wtf/text/StringImpl.cpp ('k') | third_party/WebKit/Source/wtf/text/WTFString.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698