diff options
author | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-29 21:53:18 +0000 |
---|---|---|
committer | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-29 21:53:18 +0000 |
commit | 894c4e8a8146bfa89c66d4e4ab629d589fabd9ba (patch) | |
tree | c8bb18e20e6115b340cc9e62b3f9639626d58cac /chrome/browser/safe_browsing/protocol_manager_unittest.cc | |
parent | 878f43f91009570f2ddf3380236259635d26c82a (diff) | |
download | chromium_src-894c4e8a8146bfa89c66d4e4ab629d589fabd9ba.zip chromium_src-894c4e8a8146bfa89c66d4e4ab629d589fabd9ba.tar.gz chromium_src-894c4e8a8146bfa89c66d4e4ab629d589fabd9ba.tar.bz2 |
Add switches and apis in safebrowsing protocol_manager that will allow end-to-end test later.
BUG=6787,47318
TEST=protocol_manager_unittest.cc
Review URL: http://codereview.chromium.org/2868030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51177 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/safe_browsing/protocol_manager_unittest.cc')
-rw-r--r-- | chrome/browser/safe_browsing/protocol_manager_unittest.cc | 122 |
1 files changed, 119 insertions, 3 deletions
diff --git a/chrome/browser/safe_browsing/protocol_manager_unittest.cc b/chrome/browser/safe_browsing/protocol_manager_unittest.cc index e8d64d0..4f45893 100644 --- a/chrome/browser/safe_browsing/protocol_manager_unittest.cc +++ b/chrome/browser/safe_browsing/protocol_manager_unittest.cc @@ -11,12 +11,23 @@ using base::Time; using base::TimeDelta; +static const char kInfoUrlPrefix[] = "http://info.prefix.com/foo"; +static const char kMacKeyUrlPrefix[] = "https://key.prefix.com/bar"; +static const char kClient[] = "unittest"; +static const char kAppVer[] = "1.0"; +static const char kClientKey[] = "SCg9lcLHd0dfksXgYsacwQ=="; +static const char kWrappedKey[] = + "AKEgNisjLl7iRYrjWHmpd_XwCiilxrw8nNaYH47tiQ7pDe9cEErjVHGZaPPUau5h61tbXSDqA" + "BiJZnDFByc_g8B5vTwxkhBf9g=="; +static const char kAdditionalQuery[] = "&additional_query"; + class SafeBrowsingProtocolManagerTest : public testing::Test { }; // Ensure that we respect section 5 of the SafeBrowsing protocol specification. TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) { - SafeBrowsingProtocolManager pm(NULL, "", "", "", NULL); + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); pm.next_update_sec_ = 1800; DCHECK(pm.back_off_fuzz_ >= 0.0 && pm.back_off_fuzz_ <= 1.0); @@ -54,7 +65,8 @@ TEST_F(SafeBrowsingProtocolManagerTest, TestBackOffTimes) { // Test string combinations with and without MAC. TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) { - SafeBrowsingProtocolManager pm(NULL, "", "", "", NULL); + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); // Add and Sub chunks. SBListChunkRanges phish("goog-phish-shavar"); @@ -87,7 +99,8 @@ TEST_F(SafeBrowsingProtocolManagerTest, TestChunkStrings) { } TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { - SafeBrowsingProtocolManager pm(NULL, "", "", "", NULL); + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); // No errors or back off time yet. EXPECT_EQ(pm.gethash_error_count_, 0); @@ -137,3 +150,106 @@ TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashBackOffTimes) { EXPECT_EQ(pm.gethash_error_count_, 7); EXPECT_TRUE(pm.next_gethash_time_== now + TimeDelta::FromMinutes(480)); } + +TEST_F(SafeBrowsingProtocolManagerTest, TestGetHashUrl) { + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); + pm.version_ = kAppVer; + EXPECT_EQ("http://info.prefix.com/foo/gethash?client=unittest&appver=1.0&" + "pver=2.2", pm.GetHashUrl(false).spec()); + EXPECT_EQ("http://info.prefix.com/foo/gethash?client=unittest&appver=1.0&" + "pver=2.2&wrkey=AKEgNisjLl7iRYrjWHmpd_XwCiilxrw8nNaYH47tiQ7pDe9cE" + "ErjVHGZaPPUau5h61tbXSDqABiJZnDFByc_g8B5vTwxkhBf9g==", + pm.GetHashUrl(true).spec()); + + pm.set_additional_query("&additional_query"); + EXPECT_EQ("http://info.prefix.com/foo/gethash?client=unittest&appver=1.0&" + "pver=2.2&additional_query", + pm.GetHashUrl(false).spec()); + EXPECT_EQ("http://info.prefix.com/foo/gethash?client=unittest&appver=1.0&" + "pver=2.2&additional_query&wrkey=AKEgNisjLl7iRYrjWHmpd_XwCiilxrw8" + "nNaYH47tiQ7pDe9cEErjVHGZaPPUau5h61tbXSDqABiJZnDFByc_g8B5vTwxkhBf" + "9g==", pm.GetHashUrl(true).spec()); +} + +TEST_F(SafeBrowsingProtocolManagerTest, TestUpdateUrl) { + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); + pm.version_ = kAppVer; + + EXPECT_EQ("http://info.prefix.com/foo/downloads?client=unittest&appver=1.0&" + "pver=2.2", pm.UpdateUrl(false).spec()); + EXPECT_EQ("http://info.prefix.com/foo/downloads?client=unittest&appver=1.0&" + "pver=2.2&wrkey=AKEgNisjLl7iRYrjWHmpd_XwCiilxrw8nNaYH47tiQ7pDe9cE" + "ErjVHGZaPPUau5h61tbXSDqABiJZnDFByc_g8B5vTwxkhBf9g==", + pm.UpdateUrl(true).spec()); + + pm.set_additional_query("&additional_query"); + EXPECT_EQ("http://info.prefix.com/foo/downloads?client=unittest&appver=1.0&" + "pver=2.2&additional_query", pm.UpdateUrl(false).spec()); + EXPECT_EQ("http://info.prefix.com/foo/downloads?client=unittest&appver=1.0&" + "pver=2.2&additional_query&wrkey=AKEgNisjLl7iRYrjWHmpd_XwCiilxrw8" + "nNaYH47tiQ7pDe9cEErjVHGZaPPUau5h61tbXSDqABiJZnDFByc_g8B5vTwxkhBf" + "9g==", pm.UpdateUrl(true).spec()); +} + +TEST_F(SafeBrowsingProtocolManagerTest, TestMalwareReportUrl) { + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); + pm.version_ = kAppVer; + + GURL malware_url("http://malware.url.com"); + GURL page_url("http://page.url.com"); + GURL referrer_url("http://referrer.url.com"); + EXPECT_EQ("http://info.prefix.com/foo/report?client=unittest&appver=1.0&" + "pver=2.2&evts=malblhit&evtd=http%3A%2F%2Fmalware.url.com%2F&" + "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." + "url.com%2F", + pm.MalwareReportUrl(malware_url, page_url, referrer_url).spec()); + + pm.set_additional_query("&additional_query"); + EXPECT_EQ("http://info.prefix.com/foo/report?client=unittest&appver=1.0&" + "pver=2.2&additional_query&evts=malblhit&" + "evtd=http%3A%2F%2Fmalware.url.com%2F&" + "evtr=http%3A%2F%2Fpage.url.com%2F&evhr=http%3A%2F%2Freferrer." + "url.com%2F", + pm.MalwareReportUrl(malware_url, page_url, referrer_url).spec()); +} + +TEST_F(SafeBrowsingProtocolManagerTest, TestMacKeyUrl) { + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); + pm.version_ = kAppVer; + + EXPECT_EQ("https://key.prefix.com/bar/newkey?client=unittest&appver=1.0&" + "pver=2.2", pm.MacKeyUrl().spec()); + + pm.set_additional_query("&additional_query"); + EXPECT_EQ("https://key.prefix.com/bar/newkey?client=unittest&appver=1.0&" + "pver=2.2&additional_query", pm.MacKeyUrl().spec()); +} + +TEST_F(SafeBrowsingProtocolManagerTest, TestNextChunkUrl) { + SafeBrowsingProtocolManager pm(NULL, kClient, kClientKey, kWrappedKey, NULL, + kInfoUrlPrefix, kMacKeyUrlPrefix, false); + pm.version_ = kAppVer; + + std::string url_partial = "localhost:1234/foo/bar?foo"; + std::string url_http_full = "http://localhost:1234/foo/bar?foo"; + std::string url_https_full = "https://localhost:1234/foo/bar?foo"; + + EXPECT_EQ("http://localhost:1234/foo/bar?foo", + pm.NextChunkUrl(url_partial).spec()); + EXPECT_EQ("http://localhost:1234/foo/bar?foo", + pm.NextChunkUrl(url_http_full).spec()); + EXPECT_EQ("https://localhost:1234/foo/bar?foo", + pm.NextChunkUrl(url_https_full).spec()); + + pm.set_additional_query("&additional_query"); + EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query", + pm.NextChunkUrl(url_partial).spec()); + EXPECT_EQ("http://localhost:1234/foo/bar?foo&additional_query", + pm.NextChunkUrl(url_http_full).spec()); + EXPECT_EQ("https://localhost:1234/foo/bar?foo&additional_query", + pm.NextChunkUrl(url_https_full).spec()); +} |