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

Unified Diff: chrome/browser/extensions/extension_dom_clipboard_apitest.cc

Issue 495213002: Add tests to make sure copy/paste in an about:blank iframe in a hosted app works. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/extension_dom_clipboard_apitest.cc
diff --git a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
index 21c32dc8551d15bd72f90460de3eea3cc3106a5e..20da52acda627c935b35c2e5ca8ab7e4806ad8f0 100644
--- a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
+++ b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
@@ -19,11 +19,13 @@ class ClipboardApiTest : public ExtensionApiTest {
public:
bool LoadHostedApp(const std::string& app_name,
const std::string& launch_page);
- bool ExecuteCopyInSelectedTab(bool* result);
- bool ExecutePasteInSelectedTab(bool* result);
+ bool ExecuteCopyInSelectedTab();
+ bool ExecutePasteInSelectedTab();
+ bool ExecuteCopyInIframeInSelectedTab();
+ bool ExecutePasteInIframeInSelectedTab();
private:
- bool ExecuteScriptInSelectedTab(const std::string& script, bool* result);
+ bool ExecuteScriptInSelectedTab(const std::string& script);
};
bool ClipboardApiTest::LoadHostedApp(const std::string& app_name,
@@ -55,28 +57,43 @@ bool ClipboardApiTest::LoadHostedApp(const std::string& app_name,
return true;
}
-bool ClipboardApiTest::ExecuteCopyInSelectedTab(bool* result) {
+bool ClipboardApiTest::ExecuteCopyInSelectedTab() {
const char kScript[] =
"window.domAutomationController.send(document.execCommand('copy'))";
- return ExecuteScriptInSelectedTab(kScript, result);
+ return ExecuteScriptInSelectedTab(kScript);
}
-bool ClipboardApiTest::ExecutePasteInSelectedTab(bool* result) {
+bool ClipboardApiTest::ExecutePasteInSelectedTab() {
const char kScript[] =
"window.domAutomationController.send(document.execCommand('paste'))";
- return ExecuteScriptInSelectedTab(kScript, result);
+ return ExecuteScriptInSelectedTab(kScript);
}
-bool ClipboardApiTest::ExecuteScriptInSelectedTab(const std::string& script,
- bool* result) {
- if (!content::ExecuteScriptAndExtractBool(
- browser()->tab_strip_model()->GetActiveWebContents(),
- script,
- result)) {
- message_ = "Failed to execute script in selected tab.";
- return false;
- }
- return true;
+bool ClipboardApiTest::ExecuteCopyInIframeInSelectedTab() {
+ const char kScript[] =
+ "var ifr = document.createElement('iframe');\n"
+ "document.body.appendChild(ifr);\n"
+ "window.domAutomationController.send("
+ "ifr.contentDocument.execCommand('copy'));";
+ return ExecuteScriptInSelectedTab(kScript);
+}
+
+bool ClipboardApiTest::ExecutePasteInIframeInSelectedTab() {
+ const char kScript[] =
+ "var ifr = document.createElement('iframe');\n"
+ "document.body.appendChild(ifr);\n"
+ "window.domAutomationController.send("
+ "ifr.contentDocument.execCommand('paste'));";
+ return ExecuteScriptInSelectedTab(kScript);
+}
+
+bool ClipboardApiTest::ExecuteScriptInSelectedTab(const std::string& script) {
+ bool result;
+ CHECK(content::ExecuteScriptAndExtractBool(
+ browser()->tab_strip_model()->GetActiveWebContents(),
+ script,
+ &result));
+ return result;
}
} // namespace
@@ -95,21 +112,19 @@ IN_PROC_BROWSER_TEST_F(ClipboardApiTest, ExtensionNoPermission) {
IN_PROC_BROWSER_TEST_F(ClipboardApiTest, HostedApp) {
ASSERT_TRUE(LoadHostedApp("hosted_app", "main.html")) << message_;
- bool result = false;
- ASSERT_TRUE(ExecuteCopyInSelectedTab(&result)) << message_;
- EXPECT_TRUE(result);
- ASSERT_TRUE(ExecutePasteInSelectedTab(&result)) << message_;
- EXPECT_TRUE(result);
+ EXPECT_TRUE(ExecuteCopyInSelectedTab()) << message_;
+ EXPECT_TRUE(ExecutePasteInSelectedTab()) << message_;
+ EXPECT_TRUE(ExecuteCopyInIframeInSelectedTab()) << message_;
+ EXPECT_TRUE(ExecutePasteInIframeInSelectedTab()) << message_;
}
IN_PROC_BROWSER_TEST_F(ClipboardApiTest, HostedAppNoPermission) {
ASSERT_TRUE(LoadHostedApp("hosted_app_no_permission", "main.html"))
<< message_;
- bool result = false;
- ASSERT_TRUE(ExecuteCopyInSelectedTab(&result)) << message_;
- EXPECT_FALSE(result);
- ASSERT_TRUE(ExecutePasteInSelectedTab(&result)) << message_;
- EXPECT_FALSE(result);
+ EXPECT_FALSE(ExecuteCopyInSelectedTab()) << message_;
+ EXPECT_FALSE(ExecutePasteInSelectedTab()) << message_;
+ EXPECT_FALSE(ExecuteCopyInIframeInSelectedTab()) << message_;
+ EXPECT_FALSE(ExecutePasteInIframeInSelectedTab()) << message_;
}

Powered by Google App Engine
This is Rietveld 408576698