| Index: trunk/src/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc
|
| ===================================================================
|
| --- trunk/src/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc (revision 268650)
|
| +++ trunk/src/net/base/registry_controlled_domains/registry_controlled_domain_unittest.cc (working copy)
|
| @@ -6,26 +6,15 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "url/gurl.h"
|
|
|
| -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
|
| +#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 net {
|
| namespace registry_controlled_domains {
|
| @@ -61,12 +50,6 @@
|
| return GetRegistryLength(host, unknown_filter, EXCLUDE_PRIVATE_REGISTRIES);
|
| }
|
|
|
| -size_t GetRegistryLengthFromHostIncludingPrivate(
|
| - const std::string& host,
|
| - UnknownRegistryFilter unknown_filter) {
|
| - 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);
|
| @@ -77,16 +60,17 @@
|
|
|
| class RegistryControlledDomainTest : public testing::Test {
|
| protected:
|
| - template <typename Graph>
|
| - void UseDomainData(const Graph& graph) {
|
| - SetFindDomainGraph(graph, sizeof(Graph));
|
| + void UseDomainData(FindDomainPtr function, const char* const stringpool) {
|
| + SetFindDomainFunctionAndStringPoolForTesting(function, stringpool);
|
| }
|
|
|
| - virtual void TearDown() { SetFindDomainGraph(); }
|
| + virtual void TearDown() {
|
| + SetFindDomainFunctionAndStringPoolForTesting(NULL, NULL);
|
| + }
|
| };
|
|
|
| TEST_F(RegistryControlledDomainTest, TestGetDomainAndRegistry) {
|
| - UseDomainData(test1::kDafsa);
|
| + UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
|
|
|
| // Test GURL version of GetDomainAndRegistry().
|
| EXPECT_EQ("baz.jp", GetDomainFromURL("http://a.baz.jp/file.html")); // 1
|
| @@ -145,7 +129,7 @@
|
| }
|
|
|
| TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) {
|
| - UseDomainData(test1::kDafsa);
|
| + UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
|
|
|
| // Test GURL version of GetRegistryLength().
|
| EXPECT_EQ(2U, GetRegistryLengthFromURL("http://a.baz.jp/file.html",
|
| @@ -264,7 +248,7 @@
|
| }
|
|
|
| TEST_F(RegistryControlledDomainTest, TestSameDomainOrHost) {
|
| - UseDomainData(test2::kDafsa);
|
| + UseDomainData(Perfect_Hash_Test2::FindDomain, Perfect_Hash_Test2_stringpool);
|
|
|
| EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html",
|
| "http://a.b.bar.jp/file.html")); // b.bar.jp
|
| @@ -311,7 +295,7 @@
|
| }
|
|
|
| TEST_F(RegistryControlledDomainTest, TestPrivateRegistryHandling) {
|
| - UseDomainData(test1::kDafsa);
|
| + UseDomainData(Perfect_Hash_Test1::FindDomain, Perfect_Hash_Test1_stringpool);
|
|
|
| // Testing the same dataset for INCLUDE_PRIVATE_REGISTRIES and
|
| // EXCLUDE_PRIVATE_REGISTRIES arguments.
|
| @@ -363,138 +347,6 @@
|
| INCLUDE_UNKNOWN_REGISTRIES));
|
| }
|
|
|
| -TEST_F(RegistryControlledDomainTest, TestDafsaTwoByteOffsets) {
|
| - UseDomainData(test3::kDafsa);
|
|
|
| - // Testing to lookup keys in a DAFSA with two byte offsets.
|
| - // This DAFSA is constructed so that labels begin and end with unique
|
| - // characters, which makes it impossible to merge labels. Each inner node
|
| - // is about 100 bytes and a one byte offset can at most add 64 bytes to
|
| - // previous offset. Thus the paths must go over two byte offsets.
|
| -
|
| - 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);
|
| -
|
| - // Testing to lookup keys in a DAFSA with three byte offsets.
|
| - // This DAFSA is constructed so that labels begin and end with unique
|
| - // characters, which makes it impossible to merge labels. The byte array
|
| - // has a size of ~54k. A two byte offset can add at most add 8k to the
|
| - // previous offset. Since we can skip only forward in memory, the nodes
|
| - // representing the return values must be located near the end of the byte
|
| - // array. The probability that we can reach from an arbitrary inner node to
|
| - // a return value without using a three byte offset is small (but not zero).
|
| - // The test is repeated with some different keys and with a reasonable
|
| - // probability at least one of the tested paths has go over a three byte
|
| - // offset.
|
| -
|
| - 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);
|
| -
|
| - // Testing to lookup keys in a DAFSA with compressed prefixes.
|
| - // This DAFSA is constructed from words with similar prefixes but distinct
|
| - // suffixes. The DAFSA will then form a trie with the implicit source node
|
| - // as root.
|
| -
|
| - 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);
|
| -
|
| - // Testing to lookup keys in a DAFSA with compressed suffixes.
|
| - // This DAFSA is constructed from words with similar suffixes but distinct
|
| - // prefixes. The DAFSA will then form a trie with the implicit sink node as
|
| - // root.
|
| -
|
| - 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
|
|
|