Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: test/ReferrerMapping.cpp

Issue 5768603836088320: Issue 1564-Fix FilterEngine::Matches for allowing request which is whitelisted in the ascendant node
Patch Set: fix according to comments and add some tests Created Nov. 26, 2014, 10:35 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/ReferrerMapping.cpp ('K') | « src/ReferrerMapping.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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]);
+}
« src/ReferrerMapping.cpp ('K') | « src/ReferrerMapping.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld