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

Unified Diff: test/FilterEngine.cpp

Issue 23127017: Consider the frame structure in Matches() (Closed)
Patch Set: Proper exception rule handling Created Nov. 3, 2013, 3:46 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/FilterEngine.cpp ('K') | « src/FilterEngine.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/FilterEngine.cpp
===================================================================
--- a/test/FilterEngine.cpp
+++ b/test/FilterEngine.cpp
@@ -202,6 +202,72 @@
ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match12->GetType());
}
+TEST_F(FilterEngineTest, MatchesOnWhitelistedDomain)
+{
+ filterEngine->GetFilter("adbanner.gif")->AddToList();
+ filterEngine->GetFilter("@@||example.org$document")->AddToList();
Wladimir Palant 2013/11/04 07:17:28 Nit: This should be @@||example.org^$document (^ i
Felix Dahlke 2013/11/15 08:18:19 Done.
+
+ AdblockPlus::FilterPtr match1 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ "http://example.com/");
+ ASSERT_TRUE(match1);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType());
+
+ AdblockPlus::FilterPtr match2 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ "http://example.org/");
+ ASSERT_TRUE(match2);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match2->GetType());
+}
+
+TEST_F(FilterEngineTest, MatchesNestedFrameRequest)
+{
+ filterEngine->GetFilter("adbanner.gif")->AddToList();
+ filterEngine->GetFilter("@@adbanner.gif$domain=example.org")->AddToList();
+
+ std::vector<std::string> documentUrls1;
+ documentUrls1.push_back("http://ads.com/frame/");
+ documentUrls1.push_back("http://example.com/");
+ AdblockPlus::FilterPtr match1 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ documentUrls1);
+ ASSERT_TRUE(match1);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType());
+
+ std::vector<std::string> documentUrls2;
+ documentUrls2.push_back("http://ads.com/frame/");
+ documentUrls2.push_back("http://example.org/");
+ AdblockPlus::FilterPtr match2 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ documentUrls2);
Wladimir Palant 2013/11/04 07:17:28 How about an additional test where the document UR
Felix Dahlke 2013/11/15 08:18:19 Done.
+ ASSERT_TRUE(match2);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match2->GetType());
+}
+
+TEST_F(FilterEngineTest, MatchesNestedFrameOnWhitelistedDomain)
+{
+ filterEngine->GetFilter("adbanner.gif")->AddToList();
+ filterEngine->GetFilter("@@||example.org$document")->AddToList();
Wladimir Palant 2013/11/04 07:17:28 Nit: As above, this should be @@||example.org^$doc
Felix Dahlke 2013/11/15 08:18:19 Done.
+
+ std::vector<std::string> documentUrls1;
+ documentUrls1.push_back("http://ads.com/frame/");
+ documentUrls1.push_back("http://example.com/");
+ AdblockPlus::FilterPtr match1 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ documentUrls1);
+ ASSERT_TRUE(match1);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType());
+
+ std::vector<std::string> documentUrls2;
+ documentUrls2.push_back("http://ads.com/frame/");
+ documentUrls2.push_back("http://example.org/");
+ AdblockPlus::FilterPtr match2 =
+ filterEngine->Matches("http://ads.com/adbanner.gif", "IMAGE",
+ documentUrls2);
+ ASSERT_TRUE(match2);
+ ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match2->GetType());
Wladimir Palant 2013/11/04 07:17:28 I would add a few more tests here: * http://examp
Felix Dahlke 2013/11/15 08:18:19 Done.
+}
+
TEST_F(FilterEngineTest, FirstRunFlag)
{
ASSERT_FALSE(filterEngine->IsFirstRun());
« src/FilterEngine.cpp ('K') | « src/FilterEngine.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld