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

Unified Diff: base/string_piece_unittest.cc

Issue 7549003: Optimize phishing page term feature extraction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Brian's comments Created 9 years, 4 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 | « base/string_piece.h ('k') | chrome/renderer/safe_browsing/phishing_term_feature_extractor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/string_piece_unittest.cc
diff --git a/base/string_piece_unittest.cc b/base/string_piece_unittest.cc
index c03b6513a7bda3ac1f4e809cf2d599f872236d13..5339c09a3874deb9a07be364d307532433ee7266 100644
--- a/base/string_piece_unittest.cc
+++ b/base/string_piece_unittest.cc
@@ -5,6 +5,7 @@
#include <string>
#include "base/string_piece.h"
+#include "base/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace base {
@@ -540,4 +541,234 @@ TEST(StringPieceTest, HeterogenousStringPieceEquals) {
ASSERT_TRUE("hello" == StringPiece("hello"));
}
+TEST(StringPiece16Test, CheckComparisonOperators) {
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("")) ==
+ StringPiece16(ASCIIToUTF16("")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) ==
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) ==
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) ==
+ StringPiece16(ASCIIToUTF16("")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("")) ==
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) ==
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) ==
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) ==
+ StringPiece16(ASCIIToUTF16("a")));
+
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("")) !=
+ StringPiece16(ASCIIToUTF16("")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) !=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) !=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) !=
+ StringPiece16(ASCIIToUTF16("")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("")) !=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) !=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) !=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) !=
+ StringPiece16(ASCIIToUTF16("a")));
+
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <
+ StringPiece16(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) <
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) <
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("bb")) <
+ StringPiece16(ASCIIToUTF16("aa")));
+
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("bb")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("bb")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) <=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("b")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("bb")) <=
+ StringPiece16(ASCIIToUTF16("aa")));
+
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) >=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) >=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) >=
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) >=
+ StringPiece16(ASCIIToUTF16("bb")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("a")) >=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("b")) >=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) >=
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("b")) >=
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("bb")) >=
+ StringPiece16(ASCIIToUTF16("aa")));
+
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) >
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) >
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("a")) >
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) >
+ StringPiece16(ASCIIToUTF16("b")));
+ ASSERT_FALSE(StringPiece16(ASCIIToUTF16("aa")) >
+ StringPiece16(ASCIIToUTF16("bb")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("b")) >
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("aa")) >
+ StringPiece16(ASCIIToUTF16("a")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("b")) >
+ StringPiece16(ASCIIToUTF16("aa")));
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("bb")) >
+ StringPiece16(ASCIIToUTF16("aa")));
+
+ string16 x;
+ for (int i = 0; i < 256; i++) {
+ x += 'a';
+ string16 y = x;
+ ASSERT_EQ(StringPiece16(x), StringPiece16(y));
+ for (int j = 0; j < i; j++) {
+ string16 z = x;
+ z[j] = 'b'; // Differs in position 'j'
+ ASSERT_NE(StringPiece16(x), StringPiece16(z));
+ }
+ }
+}
+
+TEST(StringPiece16Test, CheckSTL) {
+ string16 first = ASCIIToUTF16("abcdefghijklmnopqrstuvwxyz");
+ StringPiece16 a(first);
+ string16 second = ASCIIToUTF16("abc");
+ StringPiece16 b(second.c_str());
+ string16 third = ASCIIToUTF16("xyz");
+ StringPiece16 c(third.c_str(), third.size());
+ string16 fourth = ASCIIToUTF16("foobarrandomstuff");
+ StringPiece16 d(fourth.c_str(), 6);
+ StringPiece16 e;
+ // Check some non-ascii characters.
+ string16 fifth(ASCIIToUTF16("123"));
+ fifth.push_back(0x0000);
+ fifth.push_back(0xd8c5);
+ fifth.push_back(0xdffe);
+ StringPiece16 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(StringPiece16Test, CheckNULL) {
+ StringPiece16 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(StringPiece16Test, HeterogenousStringPieceEquals) {
+ ASSERT_TRUE(StringPiece16(ASCIIToUTF16("hello")) == ASCIIToUTF16("hello"));
+}
+
+TEST(StringPiece16Test, 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(
+ StringPiece16(UTF8ToUTF16("\xf0\x9d\x84\x9e")).as_string16()),
+ "\xf0\x9d\x84\x9e");
+}
+
} // namespace base
« no previous file with comments | « base/string_piece.h ('k') | chrome/renderer/safe_browsing/phishing_term_feature_extractor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698