| Index: test/ReferrerMapping.cpp |
| =================================================================== |
| --- a/test/ReferrerMapping.cpp |
| +++ b/test/ReferrerMapping.cpp |
| @@ -18,21 +18,55 @@ |
| #include <AdblockPlus.h> |
| #include <gtest/gtest.h> |
| +typedef AdblockPlus::FilterEngine::ContentType ContentType; |
| +typedef AdblockPlus::ReferrerMapping::FrameIndicator FrameIndicator; |
| + |
| TEST(ReferrerMappingTest, EmptyReferrerChain) |
| { |
| AdblockPlus::ReferrerMapping referrerMapping; |
| std::vector<std::string> referrerChain = |
| - referrerMapping.BuildReferrerChain("first"); |
| + referrerMapping.BuildFrameStructure("first"); |
| ASSERT_EQ(1, referrerChain.size()); |
| - ASSERT_EQ("first", referrerChain[0]); |
| + EXPECT_EQ("first", referrerChain[0]); |
| +} |
| + |
| +TEST(ReferrerMappingTest, EmptyUrl) |
| +{ |
| + AdblockPlus::ReferrerMapping referrerMapping; |
| + std::vector<std::string> referrerChain = |
| + referrerMapping.BuildFrameStructure(""); |
| + EXPECT_EQ(0, referrerChain.size()); |
| + |
| + referrerMapping.Add("", "referrer", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerChain = referrerMapping.BuildFrameStructure(""); |
| + EXPECT_EQ(0, referrerChain.size()); |
| +} |
| + |
| +TEST(ReferrerMappingTest, EmptyReferrer) |
| +{ |
| + AdblockPlus::ReferrerMapping referrerMapping; |
| + referrerMapping.Add("first", "", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + std::vector<std::string> referrerChain = |
| + referrerMapping.BuildFrameStructure("first"); |
| + ASSERT_EQ(1, referrerChain.size()); |
| + EXPECT_EQ("first", referrerChain[0]); |
| +} |
| + |
| +TEST(ReferrerMappingTest, NotAFrame) |
| +{ |
| + AdblockPlus::ReferrerMapping referrerMapping; |
| + referrerMapping.Add("first", "", FrameIndicator::FRAME_INDICATOR_NOT_A_FRAME); |
| + std::vector<std::string> referrerChain = |
| + referrerMapping.BuildFrameStructure("first"); |
| + ASSERT_EQ(0, referrerChain.size()); |
| } |
| TEST(ReferrerMappingTest, TwoElementReferrerChain) |
| { |
| AdblockPlus::ReferrerMapping referrerMapping; |
| - referrerMapping.Add("second", "first"); |
| + referrerMapping.Add("second", "first", FrameIndicator::FRAME_INDICATOR_FRAME); |
| std::vector<std::string> referrerChain = |
| - referrerMapping.BuildReferrerChain("second"); |
| + referrerMapping.BuildFrameStructure("second"); |
| ASSERT_EQ(2, referrerChain.size()); |
| ASSERT_EQ("first", referrerChain[0]); |
| ASSERT_EQ("second", referrerChain[1]); |
| @@ -41,17 +75,17 @@ |
| TEST(ReferrerMappingTest, TenElementReferrerChain) |
| { |
| AdblockPlus::ReferrerMapping referrerMapping; |
| - referrerMapping.Add("second", "first"); |
| - referrerMapping.Add("third", "second"); |
| - referrerMapping.Add("fourth", "third"); |
| - referrerMapping.Add("fifth", "fourth"); |
| - referrerMapping.Add("sixth", "fifth"); |
| - referrerMapping.Add("seventh", "sixth"); |
| - referrerMapping.Add("eighth", "seventh"); |
| - referrerMapping.Add("ninth", "eighth"); |
| - referrerMapping.Add("tenth", "ninth"); |
| + referrerMapping.Add("second", "first", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("third", "second", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("fourth", "third", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("fifth", "fourth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("sixth", "fifth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("seventh", "sixth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("eighth", "seventh", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("ninth", "eighth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("tenth", "ninth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| std::vector<std::string> referrerChain = |
| - referrerMapping.BuildReferrerChain("tenth"); |
| + referrerMapping.BuildFrameStructure("tenth"); |
| ASSERT_EQ(10, referrerChain.size()); |
| ASSERT_EQ("first", referrerChain[0]); |
| ASSERT_EQ("second", referrerChain[1]); |
| @@ -68,14 +102,15 @@ |
| TEST(ReferrerMappingTest, CacheOnlyFiveUrls) |
| { |
| AdblockPlus::ReferrerMapping referrerMapping(5); |
| - referrerMapping.Add("second", "first"); |
| - referrerMapping.Add("third", "second"); |
| - referrerMapping.Add("fourth", "third"); |
| - referrerMapping.Add("fifth", "fourth"); |
| - referrerMapping.Add("sixth", "fifth"); |
| - referrerMapping.Add("seventh", "sixth"); |
| + std::string outOfCacheUrl = "first"; |
| + referrerMapping.Add("second", outOfCacheUrl, FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("third", "second", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("fourth", "third", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("fifth", "fourth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("sixth", "fifth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("seventh", "sixth", FrameIndicator::FRAME_INDICATOR_FRAME); |
| std::vector<std::string> referrerChain = |
| - referrerMapping.BuildReferrerChain("seventh"); |
| + referrerMapping.BuildFrameStructure("seventh"); |
| ASSERT_EQ(6, referrerChain.size()); |
| ASSERT_EQ("second", referrerChain[0]); |
| ASSERT_EQ("third", referrerChain[1]); |
| @@ -84,3 +119,26 @@ |
| ASSERT_EQ("sixth", referrerChain[4]); |
| ASSERT_EQ("seventh", referrerChain[5]); |
| } |
| + |
| +TEST(ReferrerMappingTest, OnlyFrames) |
| +{ |
| + AdblockPlus::ReferrerMapping referrerMapping; |
| + referrerMapping.Add("iframe1", "root-page", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("not a frame", "iframe1", FrameIndicator::FRAME_INDICATOR_NOT_A_FRAME); |
| + referrerMapping.Add("iframe2", "not a frame", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerMapping.Add("media", "iframe2", FrameIndicator::FRAME_INDICATOR_NOT_A_FRAME); |
| + |
| + std::vector<std::string> referrerChain = referrerMapping.BuildFrameStructure("media"); |
| + ASSERT_EQ(3, referrerChain.size()); |
| + EXPECT_EQ("root-page", referrerChain[0]); |
| + EXPECT_EQ("iframe1", referrerChain[1]); |
| + EXPECT_EQ("iframe2", referrerChain[2]); |
| + |
| + referrerMapping.Add("iframe3", "media", FrameIndicator::FRAME_INDICATOR_FRAME); |
| + referrerChain = referrerMapping.BuildFrameStructure("iframe3"); |
| + ASSERT_EQ(4, referrerChain.size()); |
| + EXPECT_EQ("root-page", referrerChain[0]); |
| + EXPECT_EQ("iframe1", referrerChain[1]); |
| + EXPECT_EQ("iframe2", referrerChain[2]); |
| + EXPECT_EQ("iframe3", referrerChain[3]); |
| +} |