OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2017 eyeo GmbH | 3 * Copyright (C) 2006-2017 eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 // with subscription object will result in execution of JS, which will | 270 // with subscription object will result in execution of JS, which will |
271 // be blocked until finishing of currently running code. | 271 // be blocked until finishing of currently running code. |
272 } | 272 } |
273 return subscription; | 273 return subscription; |
274 } | 274 } |
275 }; | 275 }; |
276 } | 276 } |
277 | 277 |
278 TEST_F(FilterEngineTest, FilterCreation) | 278 TEST_F(FilterEngineTest, FilterCreation) |
279 { | 279 { |
280 AdblockPlus::FilterPtr filter1 = filterEngine->GetFilter("foo"); | 280 AdblockPlus::Filter filter1 = filterEngine->GetFilter("foo"); |
281 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, filter1->GetType()); | 281 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, filter1.GetType()); |
282 AdblockPlus::FilterPtr filter2 = filterEngine->GetFilter("@@foo"); | 282 AdblockPlus::Filter filter2 = filterEngine->GetFilter("@@foo"); |
283 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter2->GetType()); | 283 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter2.GetType()); |
284 AdblockPlus::FilterPtr filter3 = filterEngine->GetFilter("example.com##foo"); | 284 AdblockPlus::Filter filter3 = filterEngine->GetFilter("example.com##foo"); |
285 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE, filter3->GetType()); | 285 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE, filter3.GetType()); |
286 AdblockPlus::FilterPtr filter4 = filterEngine->GetFilter("example.com#@#foo"); | 286 AdblockPlus::Filter filter4 = filterEngine->GetFilter("example.com#@#foo"); |
287 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION, filter4->GetType()); | 287 ASSERT_EQ(AdblockPlus::Filter::TYPE_ELEMHIDE_EXCEPTION, filter4.GetType()); |
288 AdblockPlus::FilterPtr filter5 = filterEngine->GetFilter(" foo "); | 288 AdblockPlus::Filter filter5 = filterEngine->GetFilter(" foo "); |
289 ASSERT_EQ(*filter1, *filter5); | 289 ASSERT_EQ(filter1, filter5); |
290 } | 290 } |
291 | 291 |
292 TEST_F(FilterEngineTest, FilterProperties) | 292 TEST_F(FilterEngineTest, FilterProperties) |
293 { | 293 { |
294 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); | 294 AdblockPlus::Filter filter = filterEngine->GetFilter("foo"); |
295 | 295 |
296 ASSERT_TRUE(filter->GetProperty("stringFoo").IsUndefined()); | 296 ASSERT_TRUE(filter.GetProperty("stringFoo").IsUndefined()); |
297 ASSERT_TRUE(filter->GetProperty("intFoo").IsUndefined()); | 297 ASSERT_TRUE(filter.GetProperty("intFoo").IsUndefined()); |
298 ASSERT_TRUE(filter->GetProperty("boolFoo").IsUndefined()); | 298 ASSERT_TRUE(filter.GetProperty("boolFoo").IsUndefined()); |
299 | 299 |
300 filter->SetProperty("stringFoo", "y"); | 300 filter.SetProperty("stringFoo", "y"); |
301 filter->SetProperty("intFoo", 24); | 301 filter.SetProperty("intFoo", 24); |
302 filter->SetProperty("boolFoo", true); | 302 filter.SetProperty("boolFoo", true); |
303 ASSERT_EQ("y", filter->GetProperty("stringFoo").AsString()); | 303 ASSERT_EQ("y", filter.GetProperty("stringFoo").AsString()); |
304 ASSERT_EQ(24, filter->GetProperty("intFoo").AsInt()); | 304 ASSERT_EQ(24, filter.GetProperty("intFoo").AsInt()); |
305 ASSERT_TRUE(filter->GetProperty("boolFoo").AsBool()); | 305 ASSERT_TRUE(filter.GetProperty("boolFoo").AsBool()); |
306 } | 306 } |
307 | 307 |
308 TEST_F(FilterEngineTest, AddRemoveFilters) | 308 TEST_F(FilterEngineTest, AddRemoveFilters) |
309 { | 309 { |
310 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 310 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
311 AdblockPlus::FilterPtr filter = filterEngine->GetFilter("foo"); | 311 AdblockPlus::Filter filter = filterEngine->GetFilter("foo"); |
312 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 312 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
313 ASSERT_FALSE(filter->IsListed()); | 313 ASSERT_FALSE(filter.IsListed()); |
314 filter->AddToList(); | 314 filter.AddToList(); |
315 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); | 315 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
316 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); | 316 ASSERT_EQ(filter, filterEngine->GetListedFilters()[0]); |
317 ASSERT_TRUE(filter->IsListed()); | 317 ASSERT_TRUE(filter.IsListed()); |
318 filter->AddToList(); | 318 filter.AddToList(); |
319 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); | 319 ASSERT_EQ(1u, filterEngine->GetListedFilters().size()); |
320 ASSERT_EQ(*filter, *filterEngine->GetListedFilters()[0]); | 320 ASSERT_EQ(filter, filterEngine->GetListedFilters()[0]); |
321 ASSERT_TRUE(filter->IsListed()); | 321 ASSERT_TRUE(filter.IsListed()); |
322 filter->RemoveFromList(); | 322 filter.RemoveFromList(); |
323 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 323 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
324 ASSERT_FALSE(filter->IsListed()); | 324 ASSERT_FALSE(filter.IsListed()); |
325 filter->RemoveFromList(); | 325 filter.RemoveFromList(); |
326 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); | 326 ASSERT_EQ(0u, filterEngine->GetListedFilters().size()); |
327 ASSERT_FALSE(filter->IsListed()); | 327 ASSERT_FALSE(filter.IsListed()); |
328 } | 328 } |
329 | 329 |
330 TEST_F(FilterEngineTest, SubscriptionProperties) | 330 TEST_F(FilterEngineTest, SubscriptionProperties) |
331 { | 331 { |
332 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); | 332 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); |
333 | 333 |
334 ASSERT_TRUE(subscription->GetProperty("stringFoo").IsUndefined()); | 334 ASSERT_TRUE(subscription->GetProperty("stringFoo").IsUndefined()); |
335 ASSERT_TRUE(subscription->GetProperty("intFoo").IsUndefined()); | 335 ASSERT_TRUE(subscription->GetProperty("intFoo").IsUndefined()); |
336 ASSERT_TRUE(subscription->GetProperty("boolFoo").IsUndefined()); | 336 ASSERT_TRUE(subscription->GetProperty("boolFoo").IsUndefined()); |
337 | 337 |
(...skipping 29 matching lines...) Expand all Loading... |
367 | 367 |
368 TEST_F(FilterEngineTest, SubscriptionUpdates) | 368 TEST_F(FilterEngineTest, SubscriptionUpdates) |
369 { | 369 { |
370 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); | 370 AdblockPlus::SubscriptionPtr subscription = filterEngine->GetSubscription("foo
"); |
371 ASSERT_FALSE(subscription->IsUpdating()); | 371 ASSERT_FALSE(subscription->IsUpdating()); |
372 subscription->UpdateFilters(); | 372 subscription->UpdateFilters(); |
373 } | 373 } |
374 | 374 |
375 TEST_F(FilterEngineTest, Matches) | 375 TEST_F(FilterEngineTest, Matches) |
376 { | 376 { |
377 filterEngine->GetFilter("adbanner.gif")->AddToList(); | 377 filterEngine->GetFilter("adbanner.gif").AddToList(); |
378 filterEngine->GetFilter("@@notbanner.gif")->AddToList(); | 378 filterEngine->GetFilter("@@notbanner.gif").AddToList(); |
379 filterEngine->GetFilter("tpbanner.gif$third-party")->AddToList(); | 379 filterEngine->GetFilter("tpbanner.gif$third-party").AddToList(); |
380 filterEngine->GetFilter("fpbanner.gif$~third-party")->AddToList(); | 380 filterEngine->GetFilter("fpbanner.gif$~third-party").AddToList(); |
381 filterEngine->GetFilter("combanner.gif$domain=example.com")->AddToList(); | 381 filterEngine->GetFilter("combanner.gif$domain=example.com").AddToList(); |
382 filterEngine->GetFilter("orgbanner.gif$domain=~example.com")->AddToList(); | 382 filterEngine->GetFilter("orgbanner.gif$domain=~example.com").AddToList(); |
383 | 383 |
384 AdblockPlus::FilterPtr match1 = filterEngine->Matches("http://example.org/foob
ar.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); | 384 AdblockPlus::FilterPtr match1 = filterEngine->Matches("http://example.org/foob
ar.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); |
385 ASSERT_FALSE(match1); | 385 ASSERT_FALSE(match1); |
386 | 386 |
387 AdblockPlus::FilterPtr match2 = filterEngine->Matches("http://example.org/adba
nner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); | 387 AdblockPlus::FilterPtr match2 = filterEngine->Matches("http://example.org/adba
nner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); |
388 ASSERT_TRUE(match2); | 388 ASSERT_TRUE(match2); |
389 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match2->GetType()); | 389 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match2->GetType()); |
390 | 390 |
391 AdblockPlus::FilterPtr match3 = filterEngine->Matches("http://example.org/notb
anner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); | 391 AdblockPlus::FilterPtr match3 = filterEngine->Matches("http://example.org/notb
anner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, ""); |
392 ASSERT_TRUE(match3); | 392 ASSERT_TRUE(match3); |
(...skipping 27 matching lines...) Expand all Loading... |
420 AdblockPlus::FilterPtr match11 = filterEngine->Matches("http://example.org/org
banner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "http://example.com/
"); | 420 AdblockPlus::FilterPtr match11 = filterEngine->Matches("http://example.org/org
banner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "http://example.com/
"); |
421 ASSERT_FALSE(match11); | 421 ASSERT_FALSE(match11); |
422 | 422 |
423 AdblockPlus::FilterPtr match12 = filterEngine->Matches("http://example.org/org
banner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "http://example.org/
"); | 423 AdblockPlus::FilterPtr match12 = filterEngine->Matches("http://example.org/org
banner.gif", AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "http://example.org/
"); |
424 ASSERT_TRUE(match12); | 424 ASSERT_TRUE(match12); |
425 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match12->GetType()); | 425 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match12->GetType()); |
426 } | 426 } |
427 | 427 |
428 TEST_F(FilterEngineTest, MatchesOnWhitelistedDomain) | 428 TEST_F(FilterEngineTest, MatchesOnWhitelistedDomain) |
429 { | 429 { |
430 filterEngine->GetFilter("adbanner.gif")->AddToList(); | 430 filterEngine->GetFilter("adbanner.gif").AddToList(); |
431 filterEngine->GetFilter("@@||example.org^$document")->AddToList(); | 431 filterEngine->GetFilter("@@||example.org^$document").AddToList(); |
432 | 432 |
433 AdblockPlus::FilterPtr match1 = | 433 AdblockPlus::FilterPtr match1 = |
434 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, | 434 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, |
435 "http://example.com/"); | 435 "http://example.com/"); |
436 ASSERT_TRUE(match1); | 436 ASSERT_TRUE(match1); |
437 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); | 437 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); |
438 | 438 |
439 AdblockPlus::FilterPtr match2 = | 439 AdblockPlus::FilterPtr match2 = |
440 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, | 440 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, |
441 "http://example.org/"); | 441 "http://example.org/"); |
442 ASSERT_TRUE(match2); | 442 ASSERT_TRUE(match2); |
443 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match2->GetType()); | 443 ASSERT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, match2->GetType()); |
444 } | 444 } |
445 | 445 |
446 TEST_F(FilterEngineTest, MatchesWithContentTypeMask) | 446 TEST_F(FilterEngineTest, MatchesWithContentTypeMask) |
447 { | 447 { |
448 filterEngine->GetFilter("adbanner.gif.js$script,image")->AddToList(); | 448 filterEngine->GetFilter("adbanner.gif.js$script,image").AddToList(); |
449 filterEngine->GetFilter("@@notbanner.gif")->AddToList(); | 449 filterEngine->GetFilter("@@notbanner.gif").AddToList(); |
450 filterEngine->GetFilter("blockme")->AddToList(); | 450 filterEngine->GetFilter("blockme").AddToList(); |
451 filterEngine->GetFilter("@@||example.doc^$document")->AddToList(); | 451 filterEngine->GetFilter("@@||example.doc^$document").AddToList(); |
452 | 452 |
453 EXPECT_FALSE(filterEngine->Matches("http://example.org/foobar.gif", | 453 EXPECT_FALSE(filterEngine->Matches("http://example.org/foobar.gif", |
454 AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "")) | 454 AdblockPlus::FilterEngine::CONTENT_TYPE_IMAGE, "")) |
455 << "another url should not match"; | 455 << "another url should not match"; |
456 | 456 |
457 EXPECT_FALSE(filterEngine->Matches("http://example.org/adbanner.gif.js", | 457 EXPECT_FALSE(filterEngine->Matches("http://example.org/adbanner.gif.js", |
458 /*mask*/ 0, "")) << "zero mask should not match (filter with some options)"; | 458 /*mask*/ 0, "")) << "zero mask should not match (filter with some options)"; |
459 | 459 |
460 EXPECT_FALSE(filterEngine->Matches("http://example.xxx/blockme", | 460 EXPECT_FALSE(filterEngine->Matches("http://example.xxx/blockme", |
461 /*mask*/ 0, "")) << "zero mask should not match (filter without any option)"
; | 461 /*mask*/ 0, "")) << "zero mask should not match (filter without any option)"
; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 ASSERT_TRUE(filter = filterEngine->Matches("http://example.doc/blockme", | 500 ASSERT_TRUE(filter = filterEngine->Matches("http://example.doc/blockme", |
501 /*mask*/0, "http://example.doc")) | 501 /*mask*/0, "http://example.doc")) |
502 << "zero mask should match when document is whitelisted"; | 502 << "zero mask should match when document is whitelisted"; |
503 | 503 |
504 EXPECT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter->GetType()); | 504 EXPECT_EQ(AdblockPlus::Filter::TYPE_EXCEPTION, filter->GetType()); |
505 } | 505 } |
506 } | 506 } |
507 | 507 |
508 TEST_F(FilterEngineTest, MatchesNestedFrameRequest) | 508 TEST_F(FilterEngineTest, MatchesNestedFrameRequest) |
509 { | 509 { |
510 filterEngine->GetFilter("adbanner.gif")->AddToList(); | 510 filterEngine->GetFilter("adbanner.gif").AddToList(); |
511 filterEngine->GetFilter("@@adbanner.gif$domain=example.org")->AddToList(); | 511 filterEngine->GetFilter("@@adbanner.gif$domain=example.org").AddToList(); |
512 | 512 |
513 std::vector<std::string> documentUrls1; | 513 std::vector<std::string> documentUrls1; |
514 documentUrls1.push_back("http://ads.com/frame/"); | 514 documentUrls1.push_back("http://ads.com/frame/"); |
515 documentUrls1.push_back("http://example.com/"); | 515 documentUrls1.push_back("http://example.com/"); |
516 AdblockPlus::FilterPtr match1 = | 516 AdblockPlus::FilterPtr match1 = |
517 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, | 517 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, |
518 documentUrls1); | 518 documentUrls1); |
519 ASSERT_TRUE(match1); | 519 ASSERT_TRUE(match1); |
520 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); | 520 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); |
521 | 521 |
(...skipping 11 matching lines...) Expand all Loading... |
533 documentUrls3.push_back("http://ads.com/frame/"); | 533 documentUrls3.push_back("http://ads.com/frame/"); |
534 AdblockPlus::FilterPtr match3 = | 534 AdblockPlus::FilterPtr match3 = |
535 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, | 535 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, |
536 documentUrls3); | 536 documentUrls3); |
537 ASSERT_TRUE(match3); | 537 ASSERT_TRUE(match3); |
538 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match3->GetType()); | 538 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match3->GetType()); |
539 } | 539 } |
540 | 540 |
541 TEST_F(FilterEngineTest, MatchesNestedFrameOnWhitelistedDomain) | 541 TEST_F(FilterEngineTest, MatchesNestedFrameOnWhitelistedDomain) |
542 { | 542 { |
543 filterEngine->GetFilter("adbanner.gif")->AddToList(); | 543 filterEngine->GetFilter("adbanner.gif").AddToList(); |
544 filterEngine->GetFilter("@@||example.org^$document,domain=ads.com")->AddToList
(); | 544 filterEngine->GetFilter("@@||example.org^$document,domain=ads.com").AddToList(
); |
545 | 545 |
546 std::vector<std::string> documentUrls1; | 546 std::vector<std::string> documentUrls1; |
547 documentUrls1.push_back("http://ads.com/frame/"); | 547 documentUrls1.push_back("http://ads.com/frame/"); |
548 documentUrls1.push_back("http://example.com/"); | 548 documentUrls1.push_back("http://example.com/"); |
549 AdblockPlus::FilterPtr match1 = | 549 AdblockPlus::FilterPtr match1 = |
550 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, | 550 filterEngine->Matches("http://ads.com/adbanner.gif", AdblockPlus::FilterEngi
ne::CONTENT_TYPE_IMAGE, |
551 documentUrls1); | 551 documentUrls1); |
552 ASSERT_TRUE(match1); | 552 ASSERT_TRUE(match1); |
553 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); | 553 ASSERT_EQ(AdblockPlus::Filter::TYPE_BLOCKING, match1->GetType()); |
554 | 554 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 { | 598 { |
599 ASSERT_TRUE(filterEngine->IsFirstRun()); | 599 ASSERT_TRUE(filterEngine->IsFirstRun()); |
600 } | 600 } |
601 | 601 |
602 TEST_F(FilterEngineTest, SetRemoveFilterChangeCallback) | 602 TEST_F(FilterEngineTest, SetRemoveFilterChangeCallback) |
603 { | 603 { |
604 int timesCalled = 0; | 604 int timesCalled = 0; |
605 MockFilterChangeCallback mockFilterChangeCallback(timesCalled); | 605 MockFilterChangeCallback mockFilterChangeCallback(timesCalled); |
606 std::this_thread::sleep_for(std::chrono::milliseconds(200)); | 606 std::this_thread::sleep_for(std::chrono::milliseconds(200)); |
607 filterEngine->SetFilterChangeCallback(mockFilterChangeCallback); | 607 filterEngine->SetFilterChangeCallback(mockFilterChangeCallback); |
608 filterEngine->GetFilter("foo")->AddToList(); | 608 filterEngine->GetFilter("foo").AddToList(); |
609 EXPECT_EQ(1, timesCalled); | 609 EXPECT_EQ(1, timesCalled); |
610 | 610 |
611 filterEngine->RemoveFilterChangeCallback(); | 611 filterEngine->RemoveFilterChangeCallback(); |
612 filterEngine->GetFilter("foo")->RemoveFromList(); | 612 filterEngine->GetFilter("foo").RemoveFromList(); |
613 EXPECT_EQ(1, timesCalled); | 613 EXPECT_EQ(1, timesCalled); |
614 } | 614 } |
615 | 615 |
616 TEST_F(UpdaterTest, SetRemoveUpdateAvailableCallback) | 616 TEST_F(UpdaterTest, SetRemoveUpdateAvailableCallback) |
617 { | 617 { |
618 mockWebRequest->response.status = 0; | 618 mockWebRequest->response.status = 0; |
619 mockWebRequest->response.responseStatus = 200; | 619 mockWebRequest->response.responseStatus = 200; |
620 mockWebRequest->response.responseText = "\ | 620 mockWebRequest->response.responseText = "\ |
621 {\ | 621 {\ |
622 \"test\": {\ | 622 \"test\": {\ |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 filterEngine->ForceUpdateCheck([&called](const std::string& error)->void | 656 filterEngine->ForceUpdateCheck([&called](const std::string& error)->void |
657 { | 657 { |
658 called = error.empty() ? 1 : 2; | 658 called = error.empty() ? 1 : 2; |
659 }); | 659 }); |
660 AdblockPlus::Sleep(100); | 660 AdblockPlus::Sleep(100); |
661 EXPECT_EQ(1, called); | 661 EXPECT_EQ(1, called); |
662 } | 662 } |
663 | 663 |
664 TEST_F(FilterEngineTest, DocumentWhitelisting) | 664 TEST_F(FilterEngineTest, DocumentWhitelisting) |
665 { | 665 { |
666 filterEngine->GetFilter("@@||example.org^$document")->AddToList(); | 666 filterEngine->GetFilter("@@||example.org^$document").AddToList(); |
667 filterEngine->GetFilter("@@||example.com^$document,domain=example.de")->AddToL
ist(); | 667 filterEngine->GetFilter("@@||example.com^$document,domain=example.de").AddToLi
st(); |
668 | 668 |
669 ASSERT_TRUE(filterEngine->IsDocumentWhitelisted( | 669 ASSERT_TRUE(filterEngine->IsDocumentWhitelisted( |
670 "http://example.org", | 670 "http://example.org", |
671 std::vector<std::string>())); | 671 std::vector<std::string>())); |
672 | 672 |
673 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( | 673 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( |
674 "http://example.co.uk", | 674 "http://example.co.uk", |
675 std::vector<std::string>())); | 675 std::vector<std::string>())); |
676 | 676 |
677 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( | 677 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( |
678 "http://example.com", | 678 "http://example.com", |
679 std::vector<std::string>())); | 679 std::vector<std::string>())); |
680 | 680 |
681 std::vector<std::string> documentUrls1; | 681 std::vector<std::string> documentUrls1; |
682 documentUrls1.push_back("http://example.de"); | 682 documentUrls1.push_back("http://example.de"); |
683 | 683 |
684 ASSERT_TRUE(filterEngine->IsDocumentWhitelisted( | 684 ASSERT_TRUE(filterEngine->IsDocumentWhitelisted( |
685 "http://example.com", | 685 "http://example.com", |
686 documentUrls1)); | 686 documentUrls1)); |
687 | 687 |
688 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( | 688 ASSERT_FALSE(filterEngine->IsDocumentWhitelisted( |
689 "http://example.co.uk", | 689 "http://example.co.uk", |
690 documentUrls1)); | 690 documentUrls1)); |
691 } | 691 } |
692 | 692 |
693 TEST_F(FilterEngineTest, ElemhideWhitelisting) | 693 TEST_F(FilterEngineTest, ElemhideWhitelisting) |
694 { | 694 { |
695 filterEngine->GetFilter("@@||example.org^$elemhide")->AddToList(); | 695 filterEngine->GetFilter("@@||example.org^$elemhide").AddToList(); |
696 filterEngine->GetFilter("@@||example.com^$elemhide,domain=example.de")->AddToL
ist(); | 696 filterEngine->GetFilter("@@||example.com^$elemhide,domain=example.de").AddToLi
st(); |
697 | 697 |
698 ASSERT_TRUE(filterEngine->IsElemhideWhitelisted( | 698 ASSERT_TRUE(filterEngine->IsElemhideWhitelisted( |
699 "http://example.org", | 699 "http://example.org", |
700 std::vector<std::string>())); | 700 std::vector<std::string>())); |
701 | 701 |
702 ASSERT_FALSE(filterEngine->IsElemhideWhitelisted( | 702 ASSERT_FALSE(filterEngine->IsElemhideWhitelisted( |
703 "http://example.co.uk", | 703 "http://example.co.uk", |
704 std::vector<std::string>())); | 704 std::vector<std::string>())); |
705 | 705 |
706 ASSERT_FALSE(filterEngine->IsElemhideWhitelisted( | 706 ASSERT_FALSE(filterEngine->IsElemhideWhitelisted( |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 filterEngine->SetAllowedConnectionType(&testConnection); | 1088 filterEngine->SetAllowedConnectionType(&testConnection); |
1089 auto subscription = EnsureExampleSubscriptionAndForceUpdate("subB"); | 1089 auto subscription = EnsureExampleSubscriptionAndForceUpdate("subB"); |
1090 EXPECT_EQ("synchronize_ok", subscription->GetProperty("downloadStatus").AsSt
ring()); | 1090 EXPECT_EQ("synchronize_ok", subscription->GetProperty("downloadStatus").AsSt
ring()); |
1091 EXPECT_EQ(1u, subscription->GetProperty("filters").AsList().size()); | 1091 EXPECT_EQ(1u, subscription->GetProperty("filters").AsList().size()); |
1092 auto capturedConnectionTypes = this->capturedConnectionTypes.GetStrings(); | 1092 auto capturedConnectionTypes = this->capturedConnectionTypes.GetStrings(); |
1093 ASSERT_EQ(1u, capturedConnectionTypes.size()); | 1093 ASSERT_EQ(1u, capturedConnectionTypes.size()); |
1094 EXPECT_TRUE(capturedConnectionTypes[0].first); | 1094 EXPECT_TRUE(capturedConnectionTypes[0].first); |
1095 EXPECT_EQ(testConnection, capturedConnectionTypes[0].second); | 1095 EXPECT_EQ(testConnection, capturedConnectionTypes[0].second); |
1096 } | 1096 } |
1097 } | 1097 } |
OLD | NEW |