Chromium Code Reviews| Index: chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc |
| diff --git a/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc b/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc |
| index 34f87fff2fb12fda0c5216847fa1505dc4c71332..90c8cf6bd43c4c352a69c07440169d6624668acd 100644 |
| --- a/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc |
| +++ b/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc |
| @@ -7,6 +7,8 @@ |
| #include "base/bind.h" |
| #include "base/message_loop/message_loop.h" |
| #include "chrome/browser/extensions/api/declarative/test_rules_registry.h" |
| +#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h" |
| +#include "chrome/test/base/testing_profile.h" |
| #include "content/public/test/test_browser_thread.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -53,11 +55,12 @@ class RulesRegistryServiceTest : public testing::Test { |
| }; |
| TEST_F(RulesRegistryServiceTest, TestConstructionAndMultiThreading) { |
| + const RulesRegistry::WebViewKey key(0, 0); |
| TestRulesRegistry* ui_registry = |
| - new TestRulesRegistry(content::BrowserThread::UI, "ui"); |
| + new TestRulesRegistry(content::BrowserThread::UI, "ui", key); |
| TestRulesRegistry* io_registry = |
| - new TestRulesRegistry(content::BrowserThread::IO, "io"); |
| + new TestRulesRegistry(content::BrowserThread::IO, "io", key); |
| // Test registration. |
| @@ -65,29 +68,29 @@ TEST_F(RulesRegistryServiceTest, TestConstructionAndMultiThreading) { |
| registry_service.RegisterRulesRegistry(make_scoped_refptr(ui_registry)); |
| registry_service.RegisterRulesRegistry(make_scoped_refptr(io_registry)); |
| - EXPECT_TRUE(registry_service.GetRulesRegistry("ui").get()); |
| - EXPECT_TRUE(registry_service.GetRulesRegistry("io").get()); |
| - EXPECT_FALSE(registry_service.GetRulesRegistry("foo").get()); |
| + EXPECT_TRUE(registry_service.GetRulesRegistry(key, "ui").get()); |
| + EXPECT_TRUE(registry_service.GetRulesRegistry(key, "io").get()); |
| + EXPECT_FALSE(registry_service.GetRulesRegistry(key, "foo").get()); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::UI, FROM_HERE, |
| - base::Bind(&InsertRule, registry_service.GetRulesRegistry("ui"), |
| + base::Bind(&InsertRule, registry_service.GetRulesRegistry(key, "ui"), |
| "ui_task")); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::IO, FROM_HERE, |
| - base::Bind(&InsertRule, registry_service.GetRulesRegistry("io"), |
| + base::Bind(&InsertRule, registry_service.GetRulesRegistry(key, "io"), |
| "io_task")); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::UI, FROM_HERE, |
| base::Bind(&VerifyNumberOfRules, |
| - registry_service.GetRulesRegistry("ui"), 1)); |
| + registry_service.GetRulesRegistry(key, "ui"), 1)); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::IO, FROM_HERE, |
| base::Bind(&VerifyNumberOfRules, |
| - registry_service.GetRulesRegistry("io"), 1)); |
| + registry_service.GetRulesRegistry(key, "io"), 1)); |
| message_loop_.RunUntilIdle(); |
| @@ -98,14 +101,46 @@ TEST_F(RulesRegistryServiceTest, TestConstructionAndMultiThreading) { |
| content::BrowserThread::PostTask( |
| content::BrowserThread::UI, FROM_HERE, |
| base::Bind(&VerifyNumberOfRules, |
| - registry_service.GetRulesRegistry("ui"), 0)); |
| + registry_service.GetRulesRegistry(key, "ui"), 0)); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::IO, FROM_HERE, |
| base::Bind(&VerifyNumberOfRules, |
| - registry_service.GetRulesRegistry("io"), 0)); |
| + registry_service.GetRulesRegistry(key, "io"), 0)); |
| message_loop_.RunUntilIdle(); |
| } |
| +TEST_F(RulesRegistryServiceTest, TestWebViewKey) { |
| + const int kEmbedderProcessID = 1; |
| + const int kWebViewInstanceID = 1; |
| + const RulesRegistry::WebViewKey key(kEmbedderProcessID, kWebViewInstanceID); |
| + TestRulesRegistry* ui_registry = |
| + new TestRulesRegistry(content::BrowserThread::UI, "ui", key); |
| + RulesRegistryService registry_service(NULL); |
| + registry_service.RegisterRulesRegistry(make_scoped_refptr(ui_registry)); |
| + content::BrowserThread::PostTask( |
| + content::BrowserThread::UI, FROM_HERE, |
| + base::Bind(&InsertRule, registry_service.GetRulesRegistry(key, "ui"), |
| + "ui_task")); |
| + message_loop_.RunUntilIdle(); |
| + |
| + registry_service.RemoveWebViewRulesRegistries(kEmbedderProcessID); |
| + EXPECT_FALSE(registry_service.GetRulesRegistry(key, "ui").get()); |
|
Jeffrey Yasskin
2013/11/11 05:37:36
This should probably check that a registry with a
Fady Samuel
2013/11/11 19:52:33
Done.
|
| +} |
| + |
| +TEST_F(RulesRegistryServiceTest, TestWebViewWebRequestRegistryHasNoCache) { |
| + const int kEmbedderProcessID = 1; |
| + const int kWebViewInstanceID = 1; |
| + const RulesRegistry::WebViewKey key(kEmbedderProcessID, kWebViewInstanceID); |
| + TestingProfile profile; |
| + RulesRegistryService registry_service(&profile); |
| + RulesRegistry* registry = |
| + registry_service.GetRulesRegistry( |
| + key, |
| + declarative_webrequest_constants::kOnRequest).get(); |
| + EXPECT_TRUE(registry); |
| + EXPECT_FALSE(registry->rules_cache_delegate_for_testing()); |
| +} |
| + |
| } // namespace extensions |