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

Unified Diff: base/wide_string_piece_unittest.cc

Issue 7549003: Optimize phishing page term feature extraction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Windows compile errors. Created 9 years, 5 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
Index: base/wide_string_piece_unittest.cc
diff --git a/base/wide_string_piece_unittest.cc b/base/wide_string_piece_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0af6ef427bd2af34e17adbdab15406cfd2f31e54
--- /dev/null
+++ b/base/wide_string_piece_unittest.cc
@@ -0,0 +1,244 @@
+// Copyright (c) 2011 The Chromium 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 "base/wide_string_piece.h"
+
+#include "base/logging.h"
+#include "base/string16.h"
+#include "base/utf_string_conversions.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+
+TEST(WideStringPieceTest, CheckComparisonOperators) {
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("")) ==
+ WideStringPiece(ASCIIToUTF16("")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) ==
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) ==
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
+ WideStringPiece(ASCIIToUTF16("")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("")) ==
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) ==
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) ==
+ WideStringPiece(ASCIIToUTF16("a")));
+
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("")) !=
+ WideStringPiece(ASCIIToUTF16("")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) !=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) !=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
+ WideStringPiece(ASCIIToUTF16("")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("")) !=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) !=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) !=
+ WideStringPiece(ASCIIToUTF16("a")));
+
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <
+ WideStringPiece(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) <
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <
+ WideStringPiece(ASCIIToUTF16("aa")));
+
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) <=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("b")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("bb")) <=
+ WideStringPiece(ASCIIToUTF16("aa")));
+
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >=
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >=
+ WideStringPiece(ASCIIToUTF16("bb")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("a")) >=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) >=
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >=
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("bb")) >=
+ WideStringPiece(ASCIIToUTF16("aa")));
+
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("a")) >
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >
+ WideStringPiece(ASCIIToUTF16("b")));
+ ASSERT_FALSE(WideStringPiece(ASCIIToUTF16("aa")) >
+ WideStringPiece(ASCIIToUTF16("bb")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("aa")) >
+ WideStringPiece(ASCIIToUTF16("a")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("b")) >
+ WideStringPiece(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("bb")) >
+ WideStringPiece(ASCIIToUTF16("aa")));
+
+ string16 x;
+ for (int i = 0; i < 256; i++) {
+ x += 'a';
+ string16 y = x;
+ ASSERT_EQ(WideStringPiece(x), WideStringPiece(y));
+ for (int j = 0; j < i; j++) {
+ string16 z = x;
+ z[j] = 'b'; // Differs in position 'j'
+ ASSERT_NE(WideStringPiece(x), WideStringPiece(z));
+ }
+ }
+}
+
+TEST(WideStringPieceTest, CheckSTL) {
+ string16 first = ASCIIToUTF16("abcdefghijklmnopqrstuvwxyz");
+ WideStringPiece a(first);
+ string16 second = ASCIIToUTF16("abc");
+ WideStringPiece b(second.c_str());
+ string16 third = ASCIIToUTF16("xyz");
+ WideStringPiece c(third.c_str(), third.size());
+ string16 fourth = ASCIIToUTF16("foobarrandomstuff");
+ WideStringPiece d(fourth.c_str(), 6);
+ WideStringPiece e;
+ // Check some non-ascii characters.
+ string16 fifth(ASCIIToUTF16("123"));
+ fifth.push_back(0x0000);
+ fifth.push_back(0xd8c5);
+ fifth.push_back(0xdffe);
+ WideStringPiece f(fifth);
+
+ ASSERT_EQ(a[6], 'g');
+ ASSERT_EQ(b[0], 'a');
+ ASSERT_EQ(c[2], 'z');
+ ASSERT_EQ(f[3], '\0');
+ ASSERT_EQ(f[5], static_cast<char16>(0xdffe));
+
+ ASSERT_EQ(*d.data(), 'f');
+ ASSERT_EQ(d.data()[5], 'r');
+ ASSERT_TRUE(e.data() == NULL);
+
+ ASSERT_EQ(*a.begin(), 'a');
+ ASSERT_EQ(*(b.begin() + 2), 'c');
+ ASSERT_EQ(*(c.end() - 1), 'z');
+
+ ASSERT_EQ(*a.rbegin(), 'z');
+ ASSERT_EQ(*(b.rbegin() + 2), 'a');
+ ASSERT_EQ(*(c.rend() - 1), 'x');
+ ASSERT_TRUE(a.rbegin() + 26 == a.rend());
+
+ ASSERT_EQ(a.size(), 26U);
+ ASSERT_EQ(b.size(), 3U);
+ ASSERT_EQ(c.size(), 3U);
+ ASSERT_EQ(d.size(), 6U);
+ ASSERT_EQ(e.size(), 0U);
+ ASSERT_EQ(f.size(), 6U);
+
+ ASSERT_TRUE(!d.empty());
+ ASSERT_TRUE(d.begin() != d.end());
+ ASSERT_TRUE(d.begin() + 6 == d.end());
+
+ ASSERT_TRUE(e.empty());
+ ASSERT_TRUE(e.begin() == e.end());
+
+ d.clear();
+ ASSERT_EQ(d.size(), 0U);
+ ASSERT_TRUE(d.empty());
+ ASSERT_TRUE(d.data() == NULL);
+ ASSERT_TRUE(d.begin() == d.end());
+
+ ASSERT_GE(a.max_size(), a.capacity());
+ ASSERT_GE(a.capacity(), a.size());
+}
+
+TEST(WideStringPieceTest, CheckNULL) {
+ WideStringPiece s(NULL);
+ ASSERT_EQ(s.data(), (const char16*)NULL);
+ ASSERT_EQ(s.size(), 0U);
+
+ s.set(NULL);
+ ASSERT_EQ(s.data(), (const char16*)NULL);
+ ASSERT_EQ(s.size(), 0U);
+
+ string16 str = s.as_string16();
+ ASSERT_EQ(s.data(), (const char16*)NULL);
+ ASSERT_EQ(s.size(), 0U);
+}
+
+TEST(WideStringPieceTest, HeterogenousStringPieceEquals) {
+ ASSERT_TRUE(WideStringPiece(ASCIIToUTF16("hello")) == ASCIIToUTF16("hello"));
+}
+
+TEST(WideStringPieceTest, CheckConversion) {
+ // Make sure that we can convert from UTF8 to UTF16 and back. We use a two
+ // byte character (G clef) to test this.
+ ASSERT_EQ(
+ UTF16ToUTF8(
+ WideStringPiece(UTF8ToUTF16("\xf0\x9d\x84\x9e")).as_string16()),
+ "\xf0\x9d\x84\x9e");
+}
+
+} // namespace base

Powered by Google App Engine
This is Rietveld 408576698