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_; |
} |