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

Unified Diff: net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc

Issue 197183002: Reduce footprint of registry controlled domain table (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added bounds checks Created 6 years, 8 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: net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc
diff --git a/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc b/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc
index d1d96f9caa46be417136a751beb19aa8f72cab6c..4986ca2fc27557e837760919ab19014b4fb148f9 100644
--- a/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc
+++ b/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc
@@ -6,15 +6,26 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
-#include "effective_tld_names_unittest1.cc"
-static const char* const Perfect_Hash_Test1_stringpool = stringpool1;
-#undef TOTAL_KEYWORDS
-#undef MIN_WORD_LENGTH
-#undef MAX_WORD_LENGTH
-#undef MIN_HASH_VALUE
-#undef MAX_HASH_VALUE
-#include "effective_tld_names_unittest2.cc"
-static const char* const Perfect_Hash_Test2_stringpool = stringpool2;
+namespace {
+namespace test1 {
+#include "effective_tld_names_unittest1-inc.cc"
+}
+namespace test2 {
+#include "effective_tld_names_unittest2-inc.cc"
+}
+namespace test3 {
+#include "effective_tld_names_unittest3-inc.cc"
+}
+namespace test4 {
+#include "effective_tld_names_unittest4-inc.cc"
+}
+namespace test5 {
+#include "effective_tld_names_unittest5-inc.cc"
+}
+namespace test6 {
+#include "effective_tld_names_unittest6-inc.cc"
+}
+} // namespace
namespace net {
namespace registry_controlled_domains {
@@ -50,6 +61,11 @@ size_t GetRegistryLengthFromHost(
return GetRegistryLength(host, unknown_filter, EXCLUDE_PRIVATE_REGISTRIES);
}
+size_t GetRegistryLengthFromHostIncludingPrivate(
+ const std::string& host, UnknownRegistryFilter unknown_filter) {
Ryan Sleevi 2014/04/23 01:52:18 Did you run "clang-format" over this (eg: via "git
+ return GetRegistryLength(host, unknown_filter, INCLUDE_PRIVATE_REGISTRIES);
+}
+
bool CompareDomains(const std::string& url1, const std::string& url2) {
GURL g1 = GURL(url1);
GURL g2 = GURL(url2);
@@ -60,17 +76,16 @@ bool CompareDomains(const std::string& url1, const std::string& url2) {
class RegistryControlledDomainTest : public testing::Test {
protected:
- void UseDomainData(FindDomainPtr function, const char* const stringpool) {
- SetFindDomainFunctionAndStringPoolForTesting(function, stringpool);
+ template <typename Graph>
+ void UseDomainData(const Graph &graph) {
Ryan Sleevi 2014/04/23 01:52:18 style nit: const Graph& graph
+ SetFindDomainGraph(graph, sizeof(Graph));
}
- virtual void TearDown() {
- SetFindDomainFunctionAndStringPoolForTesting(NULL, NULL);
- }
+ virtual void TearDown() { SetFindDomainGraph(); }
};
TEST_F(RegistryControlledDomainTest, TestGetDomainAndRegistry) {
- UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
+ UseDomainData(test1::kDafsa);
// Test GURL version of GetDomainAndRegistry().
EXPECT_EQ("baz.jp", GetDomainFromURL("http://a.baz.jp/file.html")); // 1
@@ -129,7 +144,7 @@ TEST_F(RegistryControlledDomainTest, TestGetDomainAndRegistry) {
}
TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) {
- UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
+ UseDomainData(test1::kDafsa);
// Test GURL version of GetRegistryLength().
EXPECT_EQ(2U, GetRegistryLengthFromURL("http://a.baz.jp/file.html",
@@ -248,7 +263,7 @@ TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) {
}
TEST_F(RegistryControlledDomainTest, TestSameDomainOrHost) {
- UseDomainData(Perfect_Hash_Test2::FindDomain, Perfect_Hash_Test2_stringpool);
+ UseDomainData(test2::kDafsa);
EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html",
"http://a.b.bar.jp/file.html")); // b.bar.jp
@@ -295,7 +310,7 @@ TEST_F(RegistryControlledDomainTest, TestDefaultData) {
}
TEST_F(RegistryControlledDomainTest, TestPrivateRegistryHandling) {
- UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
+ UseDomainData(test1::kDafsa);
// Testing the same dataset for INCLUDE_PRIVATE_REGISTRIES and
// EXCLUDE_PRIVATE_REGISTRIES arguments.
@@ -347,6 +362,94 @@ TEST_F(RegistryControlledDomainTest, TestPrivateRegistryHandling) {
INCLUDE_UNKNOWN_REGISTRIES));
}
+TEST_F(RegistryControlledDomainTest, TestDafsaTwoByteOffsets) {
Ryan Sleevi 2014/04/23 01:52:18 Can you add comments to each of these tests indica
+ UseDomainData(test3::kDafsa);
+
+ const char* key0 = "a.b.6____________________________________________________"
+ "________________________________________________6";
+ const char* key1 = "a.b.7____________________________________________________"
+ "________________________________________________7";
+ const char* key2 = "a.b.a____________________________________________________"
+ "________________________________________________8";
+ EXPECT_EQ(102U, GetRegistryLengthFromHost(key0, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(102U, GetRegistryLengthFromHostIncludingPrivate(
+ key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key2, EXCLUDE_UNKNOWN_REGISTRIES));
+}
+
+TEST_F(RegistryControlledDomainTest, TestDafsaThreeByteOffsets) {
+ UseDomainData(test4::kDafsa);
+
+ const char* key0 = "a.b.Z6___________________________________________________"
+ "_________________________________________________Z6";
+ const char* key1 = "a.b.Z7___________________________________________________"
+ "_________________________________________________Z7";
+ const char* key2 = "a.b.Za___________________________________________________"
+ "_________________________________________________Z8";
+
+ EXPECT_EQ(104U, GetRegistryLengthFromHost(key0, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(104U, GetRegistryLengthFromHostIncludingPrivate(
+ key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key2, EXCLUDE_UNKNOWN_REGISTRIES));
+}
+
+TEST_F(RegistryControlledDomainTest, TestDafsaJoinedPrefixes) {
+ UseDomainData(test5::kDafsa);
+
+ const char* key0 = "a.b.ai";
+ const char* key1 = "a.b.bj";
+ const char* key2 = "a.b.aak";
+ const char* key3 = "a.b.bbl";
+ const char* key4 = "a.b.aaa";
+ const char* key5 = "a.b.bbb";
+ const char* key6 = "a.b.aaaam";
+ const char* key7 = "a.b.bbbbn";
+
+ EXPECT_EQ(2U, GetRegistryLengthFromHost(key0, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(2U, GetRegistryLengthFromHostIncludingPrivate(
+ key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(3U, GetRegistryLengthFromHost(key2, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key3, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(3U, GetRegistryLengthFromHostIncludingPrivate(
+ key3, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHostIncludingPrivate(
+ key4, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHostIncludingPrivate(
+ key5, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(5U, GetRegistryLengthFromHost(key6, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(5U, GetRegistryLengthFromHost(key7, EXCLUDE_UNKNOWN_REGISTRIES));
+}
+
+TEST_F(RegistryControlledDomainTest, TestDafsaJoinedSuffixes) {
+ UseDomainData(test6::kDafsa);
+
+ const char* key0 = "a.b.ia";
+ const char* key1 = "a.b.jb";
+ const char* key2 = "a.b.kaa";
+ const char* key3 = "a.b.lbb";
+ const char* key4 = "a.b.aaa";
+ const char* key5 = "a.b.bbb";
+ const char* key6 = "a.b.maaaa";
+ const char* key7 = "a.b.nbbbb";
+
+ EXPECT_EQ(2U, GetRegistryLengthFromHost(key0, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(2U, GetRegistryLengthFromHostIncludingPrivate(
+ key1, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(3U, GetRegistryLengthFromHost(key2, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHost(key3, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(3U, GetRegistryLengthFromHostIncludingPrivate(
+ key3, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHostIncludingPrivate(
+ key4, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(0U, GetRegistryLengthFromHostIncludingPrivate(
+ key5, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(5U, GetRegistryLengthFromHost(key6, EXCLUDE_UNKNOWN_REGISTRIES));
+ EXPECT_EQ(5U, GetRegistryLengthFromHost(key7, EXCLUDE_UNKNOWN_REGISTRIES));
+}
} // namespace registry_controlled_domains
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698