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" |