Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: chrome/browser/safe_browsing/client_side_detection_service_unittest.cc

Issue 8854004: Remove the check of the whitelist entries in ClientPhishingResponse. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <map> 5 #include <map>
6 #include <queue> 6 #include <queue>
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 true /* success */); 347 true /* success */);
348 EXPECT_TRUE(SendClientReportPhishingRequest(url, score)); 348 EXPECT_TRUE(SendClientReportPhishingRequest(url, score));
349 349
350 // This request will fail 350 // This request will fail
351 GURL second_url("http://b.com/"); 351 GURL second_url("http://b.com/");
352 response.set_phishy(false); 352 response.set_phishy(false);
353 SetClientReportPhishingResponse(response.SerializeAsString(), 353 SetClientReportPhishingResponse(response.SerializeAsString(),
354 false /* success */); 354 false /* success */);
355 EXPECT_FALSE(SendClientReportPhishingRequest(second_url, score)); 355 EXPECT_FALSE(SendClientReportPhishingRequest(second_url, score));
356 356
357 // This is a false positive.
358 response.set_phishy(true);
359 response.add_whitelist_expression("c.com/a.html");
360 SetClientReportPhishingResponse(response.SerializeAsString(),
361 true /* success */);
362 GURL third_url("http://c.com/");
363 EXPECT_FALSE(SendClientReportPhishingRequest(third_url, score));
364
365 base::Time after = base::Time::Now(); 357 base::Time after = base::Time::Now();
366 358
367 // Check that we have recorded all 4 requests within the correct time range. 359 // Check that we have recorded all 3 requests within the correct time range.
368 std::queue<base::Time>& report_times = GetPhishingReportTimes(); 360 std::queue<base::Time>& report_times = GetPhishingReportTimes();
369 EXPECT_EQ(4U, report_times.size()); 361 EXPECT_EQ(3U, report_times.size());
370 while (!report_times.empty()) { 362 while (!report_times.empty()) {
371 base::Time time = report_times.back(); 363 base::Time time = report_times.back();
372 report_times.pop(); 364 report_times.pop();
373 EXPECT_LE(before, time); 365 EXPECT_LE(before, time);
374 EXPECT_GE(after, time); 366 EXPECT_GE(after, time);
375 } 367 }
376 368
377 // Only the first url should be in the cache. 369 // Only the first url should be in the cache.
378 bool is_phishing; 370 bool is_phishing;
379 EXPECT_TRUE(csd_service_->IsInCache(url)); 371 EXPECT_TRUE(csd_service_->IsInCache(url));
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 // report back. 648 // report back.
657 EXPECT_CALL(*service, ScheduleFetchModel(_)) 649 EXPECT_CALL(*service, ScheduleFetchModel(_))
658 .WillOnce(Invoke(service, &MockClientSideDetectionService::Schedule)); 650 .WillOnce(Invoke(service, &MockClientSideDetectionService::Schedule));
659 EXPECT_CALL(*service, EndFetchModel( 651 EXPECT_CALL(*service, EndFetchModel(
660 ClientSideDetectionService::MODEL_NOT_CHANGED)) 652 ClientSideDetectionService::MODEL_NOT_CHANGED))
661 .WillOnce(Invoke(service, &MockClientSideDetectionService::Disable)); 653 .WillOnce(Invoke(service, &MockClientSideDetectionService::Disable));
662 csd_service_->SetEnabledAndRefreshState(true); 654 csd_service_->SetEnabledAndRefreshState(true);
663 EXPECT_FALSE(SendClientReportPhishingRequest(GURL("http://a.com/"), 0.4f)); 655 EXPECT_FALSE(SendClientReportPhishingRequest(GURL("http://a.com/"), 0.4f));
664 Mock::VerifyAndClearExpectations(service); 656 Mock::VerifyAndClearExpectations(service);
665 } 657 }
666
667 TEST_F(ClientSideDetectionServiceTest, IsFalsePositiveResponse) {
668 GURL url("http://www.google.com/");
669 ClientPhishingResponse response;
670
671 // If the response is not phishing is should never be a false positive.
672 response.set_phishy(false);
673 response.add_whitelist_expression("www.google.com/");
674 EXPECT_FALSE(ClientSideDetectionService::IsFalsePositiveResponse(
675 url, response));
676
677 // If there are no entries in the whitelist it should always return false.
678 response.clear_whitelist_expression();
679 response.set_phishy(true);
680 EXPECT_FALSE(ClientSideDetectionService::IsFalsePositiveResponse(
681 url, response));
682
683 // If the URL doesn't match any whitelist entries it whould return false.
684 response.add_whitelist_expression("www.yahoo.com/");
685 EXPECT_FALSE(ClientSideDetectionService::IsFalsePositiveResponse(
686 url, response));
687
688 // If the URL matches the whitelist it should return true.
689 response.add_whitelist_expression("google.com/");
690 EXPECT_TRUE(ClientSideDetectionService::IsFalsePositiveResponse(
691 url, response));
692
693 // If an entry in the whitelist matches the URL it should return true.
694 response.clear_whitelist_expression();
695 response.add_whitelist_expression("www.google.com/a/b.html");
696 EXPECT_TRUE(ClientSideDetectionService::IsFalsePositiveResponse(
697 url, response));
698 }
699 } // namespace safe_browsing 658 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/client_side_detection_service.cc ('k') | chrome/common/safe_browsing/csd.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698