Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1492)

Unified Diff: chrome/browser/extensions/api/declarative_content/request_content_script_browsertest.cc

Issue 493633003: Browser changes for wiring up RequestContentScript API to shared memory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ditto Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/declarative_content/request_content_script_browsertest.cc
diff --git a/chrome/browser/extensions/api/declarative_content/request_content_script_browsertest.cc b/chrome/browser/extensions/api/declarative_content/request_content_script_browsertest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f2920cb0137640ac1f7687f1d582eac985e8ea0e
--- /dev/null
+++ b/chrome/browser/extensions/api/declarative_content/request_content_script_browsertest.cc
@@ -0,0 +1,262 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/files/file_path.h"
+#include "base/test/values_test_util.h"
+#include "chrome/browser/extensions/api/declarative_content/content_action.h"
+#include "chrome/browser/extensions/extension_browsertest.h"
+#include "chrome/browser/extensions/test_extension_dir.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace extensions {
+namespace {
+
+const char kRequestContentScriptManifest[] =
+ "{\n"
+ " \"name\": \"Request Content Script browsertest\",\n"
+ " \"version\": \"0.1\",\n"
+ " \"manifest_version\": 2,\n"
+ " \"description\": \n"
+ " \"browser test for the declarativeContentRequestContentScript\",\n"
+ " \"background\": {\n"
+ " \"scripts\": [\"background.js\"]\n"
+ " },\n"
+ " \"permissions\": [\n"
+ " \"declarativeContent\"\n"
+ " ]\n"
+ "}\n";
+
+class RequestContentScriptTest : public ExtensionBrowserTest {
+ public:
+ void InitBasicExtensionFiles() {
+ ext_dir().WriteManifest(kRequestContentScriptManifest);
+ ext_dir().WriteFile(FILE_PATH_LITERAL("background.js"), "");
+ }
+
+ const Extension* LoadTestExtension() {
+ const Extension* extension =
+ LoadExtension(ext_dir().unpacked_path());
+ return extension;
+ }
+
+ TestExtensionDir& ext_dir() { return ext_dir_; }
+
+ private:
+ TestExtensionDir ext_dir_;
+};
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, MissingScripts) {
Jeffrey Yasskin 2014/08/22 01:12:24 These look like they just duplicate tests in conte
Mark Dittmer 2014/08/22 19:59:19 I originally implemented these as unittest, but th
+ InitBasicExtensionFiles();
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"allFrames\": true,\n"
+ " \"matchAboutBlank\": true\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_THAT(error, testing::HasSubstr("Missing parameter is required"));
+ EXPECT_FALSE(bad_message);
+ ASSERT_FALSE(result.get());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, CSS) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("style.css"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"css\": [\"style.css\"]\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_EQ("", error);
+ EXPECT_FALSE(bad_message);
+ ASSERT_TRUE(result.get());
+ EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, JS) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": [\"script.js\"]\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_EQ("", error);
+ EXPECT_FALSE(bad_message);
+ ASSERT_TRUE(result.get());
+ EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, CSSBadType) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("style.css"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"css\": \"style.css\"\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_TRUE(bad_message);
+ ASSERT_FALSE(result.get());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, JSBadType) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": \"script.js\"\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_TRUE(bad_message);
+ ASSERT_FALSE(result.get());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, AllFrames) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": [\"script.js\"],\n"
+ " \"allFrames\": true\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_EQ("", error);
+ EXPECT_FALSE(bad_message);
+ ASSERT_TRUE(result.get());
+ EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, MatchAboutBlank) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": [\"script.js\"],\n"
+ " \"matchAboutBlank\": true\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_EQ("", error);
+ EXPECT_FALSE(bad_message);
+ ASSERT_TRUE(result.get());
+ EXPECT_EQ(ContentAction::ACTION_REQUEST_CONTENT_SCRIPT, result->GetType());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, AllFramesBadType) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": [\"script.js\"],\n"
+ " \"allFrames\": null\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_TRUE(bad_message);
+ ASSERT_FALSE(result.get());
+}
+
+IN_PROC_BROWSER_TEST_F(RequestContentScriptTest, MatchAboutBlankBadType) {
+ InitBasicExtensionFiles();
+ ext_dir().WriteFile(FILE_PATH_LITERAL("script.js"), "");
+ const Extension* extension = LoadTestExtension();
+ ASSERT_TRUE(extension);
+
+ std::string error;
+ bool bad_message = false;
+ scoped_refptr<const ContentAction> result = ContentAction::Create(
+ profile(),
+ extension,
+ *base::test::ParseJson(
+ "{\n"
+ " \"instanceType\": \"declarativeContent.RequestContentScript\",\n"
+ " \"js\": [\"script.js\"],\n"
+ " \"matchAboutBlank\": null\n"
+ "}"),
+ &error,
+ &bad_message);
+ EXPECT_TRUE(bad_message);
+ ASSERT_FALSE(result.get());
+}
+
+} // namespace
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698