diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-20 20:55:17 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-20 20:55:17 +0000 |
commit | 2447640cc25951a7522c0b655f3482ca9cc1c27b (patch) | |
tree | d54947c9fb370362b387ade837869eceb2d9ad2f /net/proxy/init_proxy_resolver_unittest.cc | |
parent | 28900505e2304ff77769f8fce09b575eab33fc85 (diff) | |
download | chromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.zip chromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.tar.gz chromium_src-2447640cc25951a7522c0b655f3482ca9cc1c27b.tar.bz2 |
Reference-count the data used by PAC scripts, so it is shared between threads.
BUG=49396
Review URL: http://codereview.chromium.org/2836060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/init_proxy_resolver_unittest.cc')
-rw-r--r-- | net/proxy/init_proxy_resolver_unittest.cc | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/net/proxy/init_proxy_resolver_unittest.cc b/net/proxy/init_proxy_resolver_unittest.cc index 681e12d..458cc53 100644 --- a/net/proxy/init_proxy_resolver_unittest.cc +++ b/net/proxy/init_proxy_resolver_unittest.cc @@ -130,35 +130,37 @@ class RuleBasedProxyResolver : public ProxyResolver { NOTREACHED(); } - virtual int SetPacScript(const GURL& pac_url, - const string16& pac_script, - CompletionCallback* callback) { + virtual int SetPacScript( + const scoped_refptr<ProxyResolverScriptData>& script_data, + CompletionCallback* callback) { + + const GURL url = + script_data->type() == ProxyResolverScriptData::TYPE_SCRIPT_URL ? + script_data->url() : GURL(); + const Rules::Rule& rule = expects_pac_bytes() ? - rules_->GetRuleByText(pac_script) : - rules_->GetRuleByUrl(pac_url); + rules_->GetRuleByText(script_data->utf16()) : + rules_->GetRuleByUrl(url); int rv = rule.set_pac_error; EXPECT_NE(ERR_UNEXPECTED, rv); - if (expects_pac_bytes()) - EXPECT_EQ(rule.text(), pac_script); - else - EXPECT_EQ(rule.url, pac_url); - - if (rv == OK) { - pac_script_ = pac_script; - pac_url_ = pac_url; + if (expects_pac_bytes()) { + EXPECT_EQ(rule.text(), script_data->utf16()); + } else { + EXPECT_EQ(rule.url, url); } + + if (rv == OK) + script_data_ = script_data; return rv; } - const string16& pac_script() const { return pac_script_; } - const GURL& pac_url() const { return pac_url_; } + const ProxyResolverScriptData* script_data() const { return script_data_; } private: const Rules* rules_; - string16 pac_script_; - GURL pac_url_; + scoped_refptr<ProxyResolverScriptData> script_data_; }; // Succeed using custom PAC script. @@ -176,7 +178,7 @@ TEST(InitProxyResolverTest, CustomPacSucceeds) { CapturingNetLog log(CapturingNetLog::kUnbounded); InitProxyResolver init(&resolver, &fetcher, &log); EXPECT_EQ(OK, init.Init(config, &callback)); - EXPECT_EQ(rule.text(), resolver.pac_script()); + EXPECT_EQ(rule.text(), resolver.script_data()->utf16()); // Check the NetLog was filled correctly. EXPECT_EQ(6u, log.entries().size()); @@ -209,7 +211,7 @@ TEST(InitProxyResolverTest, CustomPacFails1) { CapturingNetLog log(CapturingNetLog::kUnbounded); InitProxyResolver init(&resolver, &fetcher, &log); EXPECT_EQ(kFailedDownloading, init.Init(config, &callback)); - EXPECT_EQ(string16(), resolver.pac_script()); + EXPECT_EQ(NULL, resolver.script_data()); // Check the NetLog was filled correctly. EXPECT_EQ(4u, log.entries().size()); @@ -237,7 +239,7 @@ TEST(InitProxyResolverTest, CustomPacFails2) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(kFailedParsing, init.Init(config, &callback)); - EXPECT_EQ(string16(), resolver.pac_script()); + EXPECT_EQ(NULL, resolver.script_data()); } // Fail downloading the custom PAC script, because the fetcher was NULL. @@ -251,7 +253,7 @@ TEST(InitProxyResolverTest, HasNullProxyScriptFetcher) { TestCompletionCallback callback; InitProxyResolver init(&resolver, NULL, NULL); EXPECT_EQ(ERR_UNEXPECTED, init.Init(config, &callback)); - EXPECT_EQ(string16(), resolver.pac_script()); + EXPECT_EQ(NULL, resolver.script_data()); } // Succeeds in choosing autodetect (wpad). @@ -268,7 +270,7 @@ TEST(InitProxyResolverTest, AutodetectSuccess) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(OK, init.Init(config, &callback)); - EXPECT_EQ(rule.text(), resolver.pac_script()); + EXPECT_EQ(rule.text(), resolver.script_data()->utf16()); } // Fails at WPAD (downloading), but succeeds in choosing the custom PAC. @@ -287,7 +289,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomSuccess1) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(OK, init.Init(config, &callback)); - EXPECT_EQ(rule.text(), resolver.pac_script()); + EXPECT_EQ(rule.text(), resolver.script_data()->utf16()); } // Fails at WPAD (parsing), but succeeds in choosing the custom PAC. @@ -307,7 +309,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomSuccess2) { CapturingNetLog log(CapturingNetLog::kUnbounded); InitProxyResolver init(&resolver, &fetcher, &log); EXPECT_EQ(OK, init.Init(config, &callback)); - EXPECT_EQ(rule.text(), resolver.pac_script()); + EXPECT_EQ(rule.text(), resolver.script_data()->utf16()); // Check the NetLog was filled correctly. // (Note that the Fetch and Set states are repeated since both WPAD and custom @@ -355,7 +357,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomFails1) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(kFailedDownloading, init.Init(config, &callback)); - EXPECT_EQ(string16(), resolver.pac_script()); + EXPECT_EQ(NULL, resolver.script_data()); } // Fails at WPAD (downloading), and fails at custom PAC (parsing). @@ -374,7 +376,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomFails2) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(kFailedParsing, init.Init(config, &callback)); - EXPECT_EQ(string16(), resolver.pac_script()); + EXPECT_EQ(NULL, resolver.script_data()); } // Fails at WPAD (parsing), but succeeds in choosing the custom PAC. @@ -395,7 +397,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomSuccess2_NoFetch) { TestCompletionCallback callback; InitProxyResolver init(&resolver, &fetcher, NULL); EXPECT_EQ(OK, init.Init(config, &callback)); - EXPECT_EQ(rule.url, resolver.pac_url()); + EXPECT_EQ(rule.url, resolver.script_data()->url()); } } // namespace |