Chromium Code Reviews| Index: chrome/browser/extensions/api/declarative_content/content_action_unittest.cc |
| diff --git a/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc b/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc |
| index bf29bb5dfcd4372223ab480dd77bd1724fa67c5f..09519878276f39c4c2f60b6131b9c731728c68dd 100644 |
| --- a/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc |
| +++ b/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc |
| @@ -4,13 +4,20 @@ |
| #include "chrome/browser/extensions/api/declarative_content/content_action.h" |
| +#include "base/run_loop.h" |
| #include "base/test/values_test_util.h" |
| #include "chrome/browser/extensions/extension_action.h" |
| #include "chrome/browser/extensions/extension_action_manager.h" |
| +#include "chrome/browser/extensions/extension_service_test_base.h" |
| #include "chrome/browser/extensions/extension_tab_util.h" |
| #include "chrome/browser/extensions/test_extension_environment.h" |
| +#include "chrome/browser/extensions/test_extension_system.h" |
| +#include "chrome/test/base/testing_profile.h" |
| #include "chrome/test/base/testing_profile.h" |
| #include "content/public/browser/web_contents.h" |
| +#include "extensions/browser/extension_registry.h" |
|
Devlin
2014/08/27 21:22:05
don't need.
Mark Dittmer
2014/08/28 19:57:08
Done.
|
| +#include "extensions/browser/extension_system.h" |
| +#include "extensions/common/extension.h" |
| #include "extensions/common/extension_builder.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -21,6 +28,34 @@ namespace { |
| using base::test::ParseJson; |
| using testing::HasSubstr; |
| + |
| +scoped_ptr<base::DictionaryValue> SimpleManifest() { |
| + return DictionaryBuilder() |
| + .Set("name", "extension") |
| + .Set("manifest_version", 2) |
| + .Set("version", "1.0") |
| + .Build(); |
| +} |
| + |
| +class RequestContentScriptTest : public ExtensionServiceTestBase { |
| + public: |
| + RequestContentScriptTest(); |
| + |
| + Profile* profile() { return profile_.get(); } |
| + Extension* extension() { return extension_.get(); } |
| + |
| + private: |
| + scoped_refptr<Extension> extension_; |
| +}; |
| + |
| +RequestContentScriptTest::RequestContentScriptTest() |
| + : extension_(ExtensionBuilder().SetManifest(SimpleManifest()).Build()) { |
| + profile_.reset(TestingProfile::Builder().Build().release()); |
|
Devlin
2014/08/27 21:22:05
Two things:
1. These should almost certainly not g
Mark Dittmer
2014/08/28 12:22:17
Done. I'm not sure what you meant by "within your
Devlin
2014/08/28 17:58:10
Sometimes, there's a problem with calling Initiali
Mark Dittmer
2014/08/28 19:57:07
Very unfortunate. The subsequent lines depend on i
|
| + static_cast<TestExtensionSystem*>(ExtensionSystem::Get(profile_.get()))-> |
| + SetReady(); |
| + base::RunLoop().RunUntilIdle(); |
| +} |
| + |
| TEST(DeclarativeContentActionTest, InvalidCreation) { |
| TestExtensionEnvironment env; |
| std::string error; |
| @@ -29,21 +64,23 @@ TEST(DeclarativeContentActionTest, InvalidCreation) { |
| // Test wrong data type passed. |
| error.clear(); |
| - result = ContentAction::Create(NULL, *ParseJson("[]"), &error, &bad_message); |
| + result = ContentAction::Create( |
| + NULL, NULL, *ParseJson("[]"), &error, &bad_message); |
| EXPECT_TRUE(bad_message); |
| EXPECT_EQ("", error); |
| EXPECT_FALSE(result.get()); |
| // Test missing instanceType element. |
| error.clear(); |
| - result = ContentAction::Create(NULL, *ParseJson("{}"), &error, &bad_message); |
| + result = ContentAction::Create( |
| + NULL, NULL, *ParseJson("{}"), &error, &bad_message); |
| EXPECT_TRUE(bad_message); |
| EXPECT_EQ("", error); |
| EXPECT_FALSE(result.get()); |
| // Test wrong instanceType element. |
| error.clear(); |
| - result = ContentAction::Create(NULL, *ParseJson( |
| + result = ContentAction::Create(NULL, NULL, *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.UnknownType\",\n" |
| "}"), |
| @@ -59,6 +96,7 @@ TEST(DeclarativeContentActionTest, ShowPageActionWithoutPageAction) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| + NULL, |
| extension, |
| *ParseJson( |
| "{\n" |
| @@ -79,6 +117,7 @@ TEST(DeclarativeContentActionTest, ShowPageAction) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| + NULL, |
| extension, |
| *ParseJson( |
| "{\n" |
| @@ -109,13 +148,12 @@ TEST(DeclarativeContentActionTest, ShowPageAction) { |
| EXPECT_FALSE(page_action->GetIsVisible(tab_id)); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptMissingScripts) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, MissingScripts) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -129,13 +167,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptMissingScripts) { |
| ASSERT_FALSE(result.get()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptCSS) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, CSS) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -149,13 +186,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptCSS) { |
| EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptJS) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, JS) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -169,13 +205,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptJS) { |
| EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptCSSBadType) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, CSSBadType) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -187,13 +222,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptCSSBadType) { |
| ASSERT_FALSE(result.get()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptJSBadType) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, JSBadType) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -205,13 +239,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptJSBadType) { |
| ASSERT_FALSE(result.get()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptAllFrames) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, AllFrames) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -226,13 +259,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptAllFrames) { |
| EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptMatchAboutBlank) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, MatchAboutBlank) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -247,13 +279,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptMatchAboutBlank) { |
| EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptAllFramesBadType) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, AllFramesBadType) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |
| @@ -266,13 +297,12 @@ TEST(DeclarativeContentActionTest, RequestContentScriptAllFramesBadType) { |
| ASSERT_FALSE(result.get()); |
| } |
| -TEST(DeclarativeContentActionTest, RequestContentScriptMatchAboutBlankBadType) { |
| - TestExtensionEnvironment env; |
| - |
| +TEST_F(RequestContentScriptTest, MatchAboutBlankBadType) { |
| std::string error; |
| bool bad_message = false; |
| scoped_refptr<const ContentAction> result = ContentAction::Create( |
| - NULL, |
| + profile(), |
| + extension(), |
| *ParseJson( |
| "{\n" |
| " \"instanceType\": \"declarativeContent.RequestContentScript\",\n" |