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

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

Issue 1420053005: Move code in components/safe_browsing_db and chrome/browser/s_b/ under the safe_browsing namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@02_components_move
Patch Set: CR feedback. Remove using from *.h Created 5 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This test creates a safebrowsing service using test safebrowsing database 5 // This test creates a safebrowsing service using test safebrowsing database
6 // and a test protocol manager. It is used to test logics in safebrowsing 6 // and a test protocol manager. It is used to test logics in safebrowsing
7 // service. 7 // service.
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 #error This test requires SAFE_BROWSING_DB_LOCAL. 63 #error This test requires SAFE_BROWSING_DB_LOCAL.
64 #endif 64 #endif
65 65
66 using content::BrowserThread; 66 using content::BrowserThread;
67 using content::InterstitialPage; 67 using content::InterstitialPage;
68 using content::WebContents; 68 using content::WebContents;
69 using ::testing::_; 69 using ::testing::_;
70 using ::testing::Mock; 70 using ::testing::Mock;
71 using ::testing::StrictMock; 71 using ::testing::StrictMock;
72 72
73 namespace safe_browsing {
74
73 namespace { 75 namespace {
74 76
75 void InvokeFullHashCallback( 77 void InvokeFullHashCallback(
76 SafeBrowsingProtocolManager::FullHashCallback callback, 78 SafeBrowsingProtocolManager::FullHashCallback callback,
77 const std::vector<SBFullHashResult>& result) { 79 const std::vector<SBFullHashResult>& result) {
78 callback.Run(result, base::TimeDelta::FromMinutes(45)); 80 callback.Run(result, base::TimeDelta::FromMinutes(45));
79 } 81 }
80 82
81 class FakeSafeBrowsingService : public SafeBrowsingService { 83 class FakeSafeBrowsingService : public SafeBrowsingService {
82 public: 84 public:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 return true; 133 return true;
132 } 134 }
133 135
134 // Called on the IO thread to check if the given URL is safe or not. If we 136 // Called on the IO thread to check if the given URL is safe or not. If we
135 // can synchronously determine that the URL is safe, CheckUrl returns true, 137 // can synchronously determine that the URL is safe, CheckUrl returns true,
136 // otherwise it returns false. 138 // otherwise it returns false.
137 bool ContainsBrowseUrl(const GURL& url, 139 bool ContainsBrowseUrl(const GURL& url,
138 std::vector<SBPrefix>* prefix_hits, 140 std::vector<SBPrefix>* prefix_hits,
139 std::vector<SBFullHashResult>* cache_hits) override { 141 std::vector<SBFullHashResult>* cache_hits) override {
140 cache_hits->clear(); 142 cache_hits->clear();
141 return ContainsUrl(safe_browsing::MALWARE, 143 return ContainsUrl(MALWARE,
142 safe_browsing::PHISH, 144 PHISH,
143 std::vector<GURL>(1, url), 145 std::vector<GURL>(1, url),
144 prefix_hits); 146 prefix_hits);
145 } 147 }
146 bool ContainsUnwantedSoftwareUrl( 148 bool ContainsUnwantedSoftwareUrl(
147 const GURL& url, 149 const GURL& url,
148 std::vector<SBPrefix>* prefix_hits, 150 std::vector<SBPrefix>* prefix_hits,
149 std::vector<SBFullHashResult>* cache_hits) override { 151 std::vector<SBFullHashResult>* cache_hits) override {
150 cache_hits->clear(); 152 cache_hits->clear();
151 return ContainsUrl(safe_browsing::UNWANTEDURL, 153 return ContainsUrl(UNWANTEDURL,
152 safe_browsing::UNWANTEDURL, 154 UNWANTEDURL,
153 std::vector<GURL>(1, url), 155 std::vector<GURL>(1, url),
154 prefix_hits); 156 prefix_hits);
155 } 157 }
156 bool ContainsDownloadUrlPrefixes( 158 bool ContainsDownloadUrlPrefixes(
157 const std::vector<SBPrefix>& prefixes, 159 const std::vector<SBPrefix>& prefixes,
158 std::vector<SBPrefix>* prefix_hits) override { 160 std::vector<SBPrefix>* prefix_hits) override {
159 bool found = 161 bool found =
160 ContainsUrlPrefixes(safe_browsing::BINURL, 162 ContainsUrlPrefixes(BINURL,
161 safe_browsing::BINURL, prefixes, prefix_hits); 163 BINURL, prefixes, prefix_hits);
162 if (!found) 164 if (!found)
163 return false; 165 return false;
164 DCHECK_LE(1U, prefix_hits->size()); 166 DCHECK_LE(1U, prefix_hits->size());
165 return true; 167 return true;
166 } 168 }
167 bool ContainsCsdWhitelistedUrl(const GURL& url) override { return true; } 169 bool ContainsCsdWhitelistedUrl(const GURL& url) override { return true; }
168 bool ContainsDownloadWhitelistedString(const std::string& str) override { 170 bool ContainsDownloadWhitelistedString(const std::string& str) override {
169 return true; 171 return true;
170 } 172 }
171 bool ContainsDownloadWhitelistedUrl(const GURL& url) override { return true; } 173 bool ContainsDownloadWhitelistedUrl(const GURL& url) override { return true; }
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 class SafeBrowsingServiceTest : public InProcessBrowserTest { 419 class SafeBrowsingServiceTest : public InProcessBrowserTest {
418 public: 420 public:
419 SafeBrowsingServiceTest() { 421 SafeBrowsingServiceTest() {
420 } 422 }
421 423
422 static void GenUrlFullhashResult(const GURL& url, 424 static void GenUrlFullhashResult(const GURL& url,
423 int list_id, 425 int list_id,
424 SBFullHashResult* full_hash) { 426 SBFullHashResult* full_hash) {
425 std::string host; 427 std::string host;
426 std::string path; 428 std::string path;
427 safe_browsing::CanonicalizeUrl(url, &host, &path, NULL); 429 CanonicalizeUrl(url, &host, &path, NULL);
428 full_hash->hash = safe_browsing::SBFullHashForString(host + path); 430 full_hash->hash = SBFullHashForString(host + path);
429 full_hash->list_id = list_id; 431 full_hash->list_id = list_id;
430 } 432 }
431 433
432 void SetUp() override { 434 void SetUp() override {
433 // InProcessBrowserTest::SetUp() instantiates SafebrowsingService and 435 // InProcessBrowserTest::SetUp() instantiates SafebrowsingService and
434 // RegisterFactory has to be called before SafeBrowsingService is created. 436 // RegisterFactory has to be called before SafeBrowsingService is created.
435 sb_factory_.reset(new TestSafeBrowsingServiceFactory( 437 sb_factory_.reset(new TestSafeBrowsingServiceFactory(
436 "https://definatelynotarealdomain/safebrowsing")); 438 "https://definatelynotarealdomain/safebrowsing"));
437 SafeBrowsingService::RegisterFactory(sb_factory_.get()); 439 SafeBrowsingService::RegisterFactory(sb_factory_.get());
438 SafeBrowsingDatabase::RegisterFactory(&db_factory_); 440 SafeBrowsingDatabase::RegisterFactory(&db_factory_);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 return LocalDatabaseManagerForService(sb_service)->check_timeout_; 522 return LocalDatabaseManagerForService(sb_service)->check_timeout_;
521 } 523 }
522 524
523 static void SetCheckTimeout(SafeBrowsingService* sb_service, 525 static void SetCheckTimeout(SafeBrowsingService* sb_service,
524 const base::TimeDelta& delay) { 526 const base::TimeDelta& delay) {
525 LocalDatabaseManagerForService(sb_service)->check_timeout_ = delay; 527 LocalDatabaseManagerForService(sb_service)->check_timeout_ = delay;
526 } 528 }
527 529
528 void CreateCSDService() { 530 void CreateCSDService() {
529 #if defined(SAFE_BROWSING_CSD) 531 #if defined(SAFE_BROWSING_CSD)
530 safe_browsing::ClientSideDetectionService* csd_service = 532 ClientSideDetectionService* csd_service =
531 safe_browsing::ClientSideDetectionService::Create(NULL); 533 ClientSideDetectionService::Create(NULL);
532 SafeBrowsingService* sb_service = 534 SafeBrowsingService* sb_service =
533 g_browser_process->safe_browsing_service(); 535 g_browser_process->safe_browsing_service();
534 536
535 // A CSD service should already exist. 537 // A CSD service should already exist.
536 EXPECT_TRUE(sb_service->csd_service_); 538 EXPECT_TRUE(sb_service->csd_service_);
537 539
538 sb_service->csd_service_.reset(csd_service); 540 sb_service->csd_service_.reset(csd_service);
539 sb_service->RefreshState(); 541 sb_service->RefreshState();
540 #endif 542 #endif
541 } 543 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 }; 596 };
595 597
596 class SafeBrowsingServiceMetadataTest 598 class SafeBrowsingServiceMetadataTest
597 : public SafeBrowsingServiceTest, 599 : public SafeBrowsingServiceTest,
598 public ::testing::WithParamInterface<MalwareMetadataTestType> { 600 public ::testing::WithParamInterface<MalwareMetadataTestType> {
599 public: 601 public:
600 SafeBrowsingServiceMetadataTest() {} 602 SafeBrowsingServiceMetadataTest() {}
601 603
602 void GenUrlFullhashResultWithMetadata(const GURL& url, 604 void GenUrlFullhashResultWithMetadata(const GURL& url,
603 SBFullHashResult* full_hash) { 605 SBFullHashResult* full_hash) {
604 GenUrlFullhashResult(url, safe_browsing::MALWARE, full_hash); 606 GenUrlFullhashResult(url, MALWARE, full_hash);
605 607
606 safe_browsing::MalwarePatternType proto; 608 MalwarePatternType proto;
607 switch (GetParam()) { 609 switch (GetParam()) {
608 case METADATA_NONE: 610 case METADATA_NONE:
609 full_hash->metadata = std::string(); 611 full_hash->metadata = std::string();
610 break; 612 break;
611 case METADATA_LANDING: 613 case METADATA_LANDING:
612 proto.set_pattern_type(safe_browsing::MalwarePatternType::LANDING); 614 proto.set_pattern_type(MalwarePatternType::LANDING);
613 full_hash->metadata = proto.SerializeAsString(); 615 full_hash->metadata = proto.SerializeAsString();
614 break; 616 break;
615 case METADATA_DISTRIBUTION: 617 case METADATA_DISTRIBUTION:
616 proto.set_pattern_type(safe_browsing::MalwarePatternType::DISTRIBUTION); 618 proto.set_pattern_type(MalwarePatternType::DISTRIBUTION);
617 full_hash->metadata = proto.SerializeAsString(); 619 full_hash->metadata = proto.SerializeAsString();
618 break; 620 break;
619 } 621 }
620 } 622 }
621 623
622 private: 624 private:
623 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingServiceMetadataTest); 625 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingServiceMetadataTest);
624 }; 626 };
625 627
626 namespace { 628 namespace {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 METADATA_LANDING, 707 METADATA_LANDING,
706 METADATA_DISTRIBUTION)); 708 METADATA_DISTRIBUTION));
707 709
708 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, UnwantedImgIgnored) { 710 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, UnwantedImgIgnored) {
709 GURL main_url = embedded_test_server()->GetURL(kMalwarePage); 711 GURL main_url = embedded_test_server()->GetURL(kMalwarePage);
710 GURL img_url = embedded_test_server()->GetURL(kMalwareImg); 712 GURL img_url = embedded_test_server()->GetURL(kMalwareImg);
711 713
712 // Add the img url as coming from a site serving UwS and then load the parent 714 // Add the img url as coming from a site serving UwS and then load the parent
713 // page. 715 // page.
714 SBFullHashResult uws_full_hash; 716 SBFullHashResult uws_full_hash;
715 GenUrlFullhashResult(img_url, safe_browsing::UNWANTEDURL, 717 GenUrlFullhashResult(img_url, UNWANTEDURL,
716 &uws_full_hash); 718 &uws_full_hash);
mattm 2015/11/12 00:36:05 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
717 SetupResponseForUrl(img_url, uws_full_hash); 719 SetupResponseForUrl(img_url, uws_full_hash);
718 720
719 ui_test_utils::NavigateToURL(browser(), main_url); 721 ui_test_utils::NavigateToURL(browser(), main_url);
720 722
721 EXPECT_FALSE(ShowingInterstitialPage()); 723 EXPECT_FALSE(ShowingInterstitialPage());
722 } 724 }
723 725
724 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, DISABLED_MalwareWithWhitelist) { 726 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, DISABLED_MalwareWithWhitelist) {
725 GURL url = embedded_test_server()->GetURL(kEmptyPage); 727 GURL url = embedded_test_server()->GetURL(kEmptyPage);
726 728
727 // After adding the url to safebrowsing database and getfullhash result, 729 // After adding the url to safebrowsing database and getfullhash result,
728 // we should see the interstitial page. 730 // we should see the interstitial page.
729 SBFullHashResult malware_full_hash; 731 SBFullHashResult malware_full_hash;
730 GenUrlFullhashResult(url, safe_browsing::MALWARE, &malware_full_hash); 732 GenUrlFullhashResult(url, MALWARE, &malware_full_hash);
731 EXPECT_CALL(observer_, 733 EXPECT_CALL(observer_,
732 OnSafeBrowsingMatch(IsUnsafeResourceFor(url))).Times(1); 734 OnSafeBrowsingMatch(IsUnsafeResourceFor(url))).Times(1);
733 EXPECT_CALL(observer_, OnSafeBrowsingHit(IsUnsafeResourceFor(url))).Times(1) 735 EXPECT_CALL(observer_, OnSafeBrowsingHit(IsUnsafeResourceFor(url))).Times(1)
734 .WillOnce(testing::Invoke( 736 .WillOnce(testing::Invoke(
735 this, &SafeBrowsingServiceTest::ProceedAndWhitelist)); 737 this, &SafeBrowsingServiceTest::ProceedAndWhitelist));
736 SetupResponseForUrl(url, malware_full_hash); 738 SetupResponseForUrl(url, malware_full_hash);
737 739
738 ui_test_utils::NavigateToURL(browser(), url); 740 ui_test_utils::NavigateToURL(browser(), url);
739 // Mock calls OnBlockingPageDone set to proceed, so the interstitial 741 // Mock calls OnBlockingPageDone set to proceed, so the interstitial
740 // is removed. 742 // is removed.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 } 776 }
775 777
776 private: 778 private:
777 prerender::PrerenderManager::PrerenderManagerMode old_prerender_mode_; 779 prerender::PrerenderManager::PrerenderManagerMode old_prerender_mode_;
778 } set_prefetch_for_test(true); 780 } set_prefetch_for_test(true);
779 781
780 // Even though we have added this uri to the safebrowsing database and 782 // Even though we have added this uri to the safebrowsing database and
781 // getfullhash result, we should not see the interstitial page since the 783 // getfullhash result, we should not see the interstitial page since the
782 // only malware was a prefetch target. 784 // only malware was a prefetch target.
783 SBFullHashResult malware_full_hash; 785 SBFullHashResult malware_full_hash;
784 GenUrlFullhashResult(malware_url, safe_browsing::MALWARE, 786 GenUrlFullhashResult(malware_url, MALWARE,
785 &malware_full_hash); 787 &malware_full_hash);
mattm 2015/11/12 00:36:06 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
786 SetupResponseForUrl(malware_url, malware_full_hash); 788 SetupResponseForUrl(malware_url, malware_full_hash);
787 ui_test_utils::NavigateToURL(browser(), url); 789 ui_test_utils::NavigateToURL(browser(), url);
788 EXPECT_FALSE(ShowingInterstitialPage()); 790 EXPECT_FALSE(ShowingInterstitialPage());
789 Mock::VerifyAndClear(&observer_); 791 Mock::VerifyAndClear(&observer_);
790 792
791 // However, when we navigate to the malware page, we should still get 793 // However, when we navigate to the malware page, we should still get
792 // the interstitial. 794 // the interstitial.
793 EXPECT_CALL(observer_, OnSafeBrowsingMatch(IsUnsafeResourceFor(malware_url))) 795 EXPECT_CALL(observer_, OnSafeBrowsingMatch(IsUnsafeResourceFor(malware_url)))
794 .Times(1); 796 .Times(1);
795 EXPECT_CALL(observer_, OnSafeBrowsingHit(IsUnsafeResourceFor(malware_url))) 797 EXPECT_CALL(observer_, OnSafeBrowsingHit(IsUnsafeResourceFor(malware_url)))
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile); 891 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile);
890 std::vector<GURL> badbin_urls(1, badbin_url); 892 std::vector<GURL> badbin_urls(1, badbin_url);
891 893
892 scoped_refptr<TestSBClient> client(new TestSBClient); 894 scoped_refptr<TestSBClient> client(new TestSBClient);
893 client->CheckDownloadUrl(badbin_urls); 895 client->CheckDownloadUrl(badbin_urls);
894 896
895 // Since badbin_url is not in database, it is considered to be safe. 897 // Since badbin_url is not in database, it is considered to be safe.
896 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType()); 898 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType());
897 899
898 SBFullHashResult full_hash_result; 900 SBFullHashResult full_hash_result;
899 GenUrlFullhashResult(badbin_url, safe_browsing::BINURL, 901 GenUrlFullhashResult(badbin_url, BINURL,
900 &full_hash_result); 902 &full_hash_result);
mattm 2015/11/12 00:36:06 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
901 SetupResponseForUrl(badbin_url, full_hash_result); 903 SetupResponseForUrl(badbin_url, full_hash_result);
902 904
903 client->CheckDownloadUrl(badbin_urls); 905 client->CheckDownloadUrl(badbin_urls);
904 906
905 // Now, the badbin_url is not safe since it is added to download database. 907 // Now, the badbin_url is not safe since it is added to download database.
906 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType()); 908 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType());
907 } 909 }
908 910
909 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckUnwantedSoftwareUrl) { 911 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckUnwantedSoftwareUrl) {
910 const GURL bad_url = embedded_test_server()->GetURL(kMalwareFile); 912 const GURL bad_url = embedded_test_server()->GetURL(kMalwareFile);
911 { 913 {
912 scoped_refptr<TestSBClient> client(new TestSBClient); 914 scoped_refptr<TestSBClient> client(new TestSBClient);
913 915
914 // Since bad_url is not in database, it is considered to be 916 // Since bad_url is not in database, it is considered to be
915 // safe. 917 // safe.
916 client->CheckBrowseUrl(bad_url); 918 client->CheckBrowseUrl(bad_url);
917 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType()); 919 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType());
918 920
919 SBFullHashResult full_hash_result; 921 SBFullHashResult full_hash_result;
920 GenUrlFullhashResult( 922 GenUrlFullhashResult(
921 bad_url, safe_browsing::UNWANTEDURL, &full_hash_result); 923 bad_url, UNWANTEDURL, &full_hash_result);
mattm 2015/11/12 00:36:05 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
922 SetupResponseForUrl(bad_url, full_hash_result); 924 SetupResponseForUrl(bad_url, full_hash_result);
923 925
924 // Now, the bad_url is not safe since it is added to download 926 // Now, the bad_url is not safe since it is added to download
925 // database. 927 // database.
926 client->CheckBrowseUrl(bad_url); 928 client->CheckBrowseUrl(bad_url);
927 EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED, client->GetThreatType()); 929 EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED, client->GetThreatType());
928 } 930 }
929 931
930 // The unwantedness should survive across multiple clients. 932 // The unwantedness should survive across multiple clients.
931 { 933 {
932 scoped_refptr<TestSBClient> client(new TestSBClient); 934 scoped_refptr<TestSBClient> client(new TestSBClient);
933 client->CheckBrowseUrl(bad_url); 935 client->CheckBrowseUrl(bad_url);
934 EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED, client->GetThreatType()); 936 EXPECT_EQ(SB_THREAT_TYPE_URL_UNWANTED, client->GetThreatType());
935 } 937 }
936 938
937 // An unwanted URL also marked as malware should be flagged as malware. 939 // An unwanted URL also marked as malware should be flagged as malware.
938 { 940 {
939 scoped_refptr<TestSBClient> client(new TestSBClient); 941 scoped_refptr<TestSBClient> client(new TestSBClient);
940 942
941 SBFullHashResult full_hash_result; 943 SBFullHashResult full_hash_result;
942 GenUrlFullhashResult( 944 GenUrlFullhashResult(
943 bad_url, safe_browsing::MALWARE, &full_hash_result); 945 bad_url, MALWARE, &full_hash_result);
mattm 2015/11/12 00:36:06 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
944 SetupResponseForUrl(bad_url, full_hash_result); 946 SetupResponseForUrl(bad_url, full_hash_result);
945 947
946 client->CheckBrowseUrl(bad_url); 948 client->CheckBrowseUrl(bad_url);
947 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType()); 949 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType());
948 } 950 }
949 } 951 }
950 952
951 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckBrowseUrl) { 953 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckBrowseUrl) {
952 const GURL bad_url = embedded_test_server()->GetURL(kMalwareFile); 954 const GURL bad_url = embedded_test_server()->GetURL(kMalwareFile);
953 { 955 {
954 scoped_refptr<TestSBClient> client(new TestSBClient); 956 scoped_refptr<TestSBClient> client(new TestSBClient);
955 957
956 // Since bad_url is not in database, it is considered to be 958 // Since bad_url is not in database, it is considered to be
957 // safe. 959 // safe.
958 client->CheckBrowseUrl(bad_url); 960 client->CheckBrowseUrl(bad_url);
959 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType()); 961 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType());
960 962
961 SBFullHashResult full_hash_result; 963 SBFullHashResult full_hash_result;
962 GenUrlFullhashResult( 964 GenUrlFullhashResult(
963 bad_url, safe_browsing::MALWARE, &full_hash_result); 965 bad_url, MALWARE, &full_hash_result);
mattm 2015/11/12 00:36:05 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
964 SetupResponseForUrl(bad_url, full_hash_result); 966 SetupResponseForUrl(bad_url, full_hash_result);
965 967
966 // Now, the bad_url is not safe since it is added to download 968 // Now, the bad_url is not safe since it is added to download
967 // database. 969 // database.
968 client->CheckBrowseUrl(bad_url); 970 client->CheckBrowseUrl(bad_url);
969 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType()); 971 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType());
970 } 972 }
971 973
972 // The unwantedness should survive across multiple clients. 974 // The unwantedness should survive across multiple clients.
973 { 975 {
974 scoped_refptr<TestSBClient> client(new TestSBClient); 976 scoped_refptr<TestSBClient> client(new TestSBClient);
975 client->CheckBrowseUrl(bad_url); 977 client->CheckBrowseUrl(bad_url);
976 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType()); 978 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType());
977 } 979 }
978 980
979 // Adding the unwanted state to an existing malware URL should have no impact 981 // Adding the unwanted state to an existing malware URL should have no impact
980 // (i.e. a malware hit should still prevail). 982 // (i.e. a malware hit should still prevail).
981 { 983 {
982 scoped_refptr<TestSBClient> client(new TestSBClient); 984 scoped_refptr<TestSBClient> client(new TestSBClient);
983 985
984 SBFullHashResult full_hash_result; 986 SBFullHashResult full_hash_result;
985 GenUrlFullhashResult( 987 GenUrlFullhashResult(
986 bad_url, safe_browsing::UNWANTEDURL, &full_hash_result); 988 bad_url, UNWANTEDURL, &full_hash_result);
mattm 2015/11/12 00:36:06 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
987 SetupResponseForUrl(bad_url, full_hash_result); 989 SetupResponseForUrl(bad_url, full_hash_result);
988 990
989 client->CheckBrowseUrl(bad_url); 991 client->CheckBrowseUrl(bad_url);
990 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType()); 992 EXPECT_EQ(SB_THREAT_TYPE_URL_MALWARE, client->GetThreatType());
991 } 993 }
992 } 994 }
993 995
994 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckDownloadUrlRedirects) { 996 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckDownloadUrlRedirects) {
995 GURL original_url = embedded_test_server()->GetURL(kEmptyPage); 997 GURL original_url = embedded_test_server()->GetURL(kEmptyPage);
996 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile); 998 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile);
997 GURL final_url = embedded_test_server()->GetURL(kEmptyPage); 999 GURL final_url = embedded_test_server()->GetURL(kEmptyPage);
998 std::vector<GURL> badbin_urls; 1000 std::vector<GURL> badbin_urls;
999 badbin_urls.push_back(original_url); 1001 badbin_urls.push_back(original_url);
1000 badbin_urls.push_back(badbin_url); 1002 badbin_urls.push_back(badbin_url);
1001 badbin_urls.push_back(final_url); 1003 badbin_urls.push_back(final_url);
1002 1004
1003 scoped_refptr<TestSBClient> client(new TestSBClient); 1005 scoped_refptr<TestSBClient> client(new TestSBClient);
1004 client->CheckDownloadUrl(badbin_urls); 1006 client->CheckDownloadUrl(badbin_urls);
1005 1007
1006 // Since badbin_url is not in database, it is considered to be safe. 1008 // Since badbin_url is not in database, it is considered to be safe.
1007 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType()); 1009 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType());
1008 1010
1009 SBFullHashResult full_hash_result; 1011 SBFullHashResult full_hash_result;
1010 GenUrlFullhashResult(badbin_url, safe_browsing::BINURL, 1012 GenUrlFullhashResult(badbin_url, BINURL,
1011 &full_hash_result); 1013 &full_hash_result);
mattm 2015/11/12 00:36:06 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
1012 SetupResponseForUrl(badbin_url, full_hash_result); 1014 SetupResponseForUrl(badbin_url, full_hash_result);
1013 1015
1014 client->CheckDownloadUrl(badbin_urls); 1016 client->CheckDownloadUrl(badbin_urls);
1015 1017
1016 // Now, the badbin_url is not safe since it is added to download database. 1018 // Now, the badbin_url is not safe since it is added to download database.
1017 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType()); 1019 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType());
1018 } 1020 }
1019 1021
1020 #if defined(OS_WIN) 1022 #if defined(OS_WIN)
1021 // http://crbug.com/396409 1023 // http://crbug.com/396409
1022 #define MAYBE_CheckDownloadUrlTimedOut DISABLED_CheckDownloadUrlTimedOut 1024 #define MAYBE_CheckDownloadUrlTimedOut DISABLED_CheckDownloadUrlTimedOut
1023 #else 1025 #else
1024 #define MAYBE_CheckDownloadUrlTimedOut CheckDownloadUrlTimedOut 1026 #define MAYBE_CheckDownloadUrlTimedOut CheckDownloadUrlTimedOut
1025 #endif 1027 #endif
1026 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, 1028 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest,
1027 MAYBE_CheckDownloadUrlTimedOut) { 1029 MAYBE_CheckDownloadUrlTimedOut) {
1028 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile); 1030 GURL badbin_url = embedded_test_server()->GetURL(kMalwareFile);
1029 std::vector<GURL> badbin_urls(1, badbin_url); 1031 std::vector<GURL> badbin_urls(1, badbin_url);
1030 1032
1031 scoped_refptr<TestSBClient> client(new TestSBClient); 1033 scoped_refptr<TestSBClient> client(new TestSBClient);
1032 SBFullHashResult full_hash_result; 1034 SBFullHashResult full_hash_result;
1033 GenUrlFullhashResult(badbin_url, safe_browsing::BINURL, 1035 GenUrlFullhashResult(badbin_url, BINURL,
1034 &full_hash_result); 1036 &full_hash_result);
mattm 2015/11/12 00:36:05 formatting
vakh (old account. dont use) 2015/11/12 09:27:43 Done.
1035 SetupResponseForUrl(badbin_url, full_hash_result); 1037 SetupResponseForUrl(badbin_url, full_hash_result);
1036 client->CheckDownloadUrl(badbin_urls); 1038 client->CheckDownloadUrl(badbin_urls);
1037 1039
1038 // badbin_url is not safe since it is added to download database. 1040 // badbin_url is not safe since it is added to download database.
1039 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType()); 1041 EXPECT_EQ(SB_THREAT_TYPE_BINARY_MALWARE_URL, client->GetThreatType());
1040 1042
1041 // 1043 //
1042 // Now introducing delays and we should hit timeout. 1044 // Now introducing delays and we should hit timeout.
1043 // 1045 //
1044 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); 1046 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service();
1045 base::TimeDelta default_urlcheck_timeout = GetCheckTimeout(sb_service); 1047 base::TimeDelta default_urlcheck_timeout = GetCheckTimeout(sb_service);
1046 IntroduceGetHashDelay(base::TimeDelta::FromSeconds(1)); 1048 IntroduceGetHashDelay(base::TimeDelta::FromSeconds(1));
1047 SetCheckTimeout(sb_service, base::TimeDelta::FromMilliseconds(1)); 1049 SetCheckTimeout(sb_service, base::TimeDelta::FromMilliseconds(1));
1048 client->CheckDownloadUrl(badbin_urls); 1050 client->CheckDownloadUrl(badbin_urls);
1049 1051
1050 // There should be a timeout and the hash would be considered as safe. 1052 // There should be a timeout and the hash would be considered as safe.
1051 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType()); 1053 EXPECT_EQ(SB_THREAT_TYPE_SAFE, client->GetThreatType());
1052 1054
1053 // Need to set the timeout back to the default value. 1055 // Need to set the timeout back to the default value.
1054 SetCheckTimeout(sb_service, default_urlcheck_timeout); 1056 SetCheckTimeout(sb_service, default_urlcheck_timeout);
1055 } 1057 }
1056 1058
1057 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, StartAndStop) { 1059 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, StartAndStop) {
1058 CreateCSDService(); 1060 CreateCSDService();
1059 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); 1061 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service();
1060 safe_browsing::ClientSideDetectionService* csd_service = 1062 ClientSideDetectionService* csd_service =
1061 sb_service->safe_browsing_detection_service(); 1063 sb_service->safe_browsing_detection_service();
1062 PrefService* pref_service = browser()->profile()->GetPrefs(); 1064 PrefService* pref_service = browser()->profile()->GetPrefs();
1063 1065
1064 ASSERT_TRUE(sb_service != NULL); 1066 ASSERT_TRUE(sb_service != NULL);
1065 ASSERT_TRUE(csd_service != NULL); 1067 ASSERT_TRUE(csd_service != NULL);
1066 ASSERT_TRUE(pref_service != NULL); 1068 ASSERT_TRUE(pref_service != NULL);
1067 1069
1068 EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled)); 1070 EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled));
1069 1071
1070 // SBS might still be starting, make sure this doesn't flake. 1072 // SBS might still be starting, make sure this doesn't flake.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 } 1151 }
1150 1152
1151 protected: 1153 protected:
1152 Profile* profile2_; 1154 Profile* profile2_;
1153 }; 1155 };
1154 1156
1155 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceShutdownTest, 1157 IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceShutdownTest,
1156 DontStartAfterShutdown) { 1158 DontStartAfterShutdown) {
1157 CreateCSDService(); 1159 CreateCSDService();
1158 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service(); 1160 SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service();
1159 safe_browsing::ClientSideDetectionService* csd_service = 1161 ClientSideDetectionService* csd_service =
1160 sb_service->safe_browsing_detection_service(); 1162 sb_service->safe_browsing_detection_service();
1161 PrefService* pref_service = browser()->profile()->GetPrefs(); 1163 PrefService* pref_service = browser()->profile()->GetPrefs();
1162 1164
1163 ASSERT_TRUE(sb_service != NULL); 1165 ASSERT_TRUE(sb_service != NULL);
1164 ASSERT_TRUE(csd_service != NULL); 1166 ASSERT_TRUE(csd_service != NULL);
1165 ASSERT_TRUE(pref_service != NULL); 1167 ASSERT_TRUE(pref_service != NULL);
1166 1168
1167 EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled)); 1169 EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled));
1168 1170
1169 // SBS might still be starting, make sure this doesn't flake. 1171 // SBS might still be starting, make sure this doesn't flake.
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 content::WindowedNotificationObserver observer( 1355 content::WindowedNotificationObserver observer(
1354 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, 1356 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
1355 content::Source<SafeBrowsingDatabaseManager>( 1357 content::Source<SafeBrowsingDatabaseManager>(
1356 sb_service_->database_manager().get())); 1358 sb_service_->database_manager().get()));
1357 BrowserThread::PostTask( 1359 BrowserThread::PostTask(
1358 BrowserThread::IO, 1360 BrowserThread::IO,
1359 FROM_HERE, 1361 FROM_HERE,
1360 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this)); 1362 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this));
1361 observer.Wait(); 1363 observer.Wait();
1362 } 1364 }
1365
1366 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698