Index: chrome/test/data/extensions/api_test/clipboard/extension_no_permission/test.js |
diff --git a/chrome/test/data/extensions/api_test/clipboard/extension_no_permission/test.js b/chrome/test/data/extensions/api_test/clipboard/extension_no_permission/test.js |
index 2264f07ad9e82e8df45a24334b758bd5c2dd88ac..f4598fa4a4248d60de6950d6d7d846b78ad6ea9d 100644 |
--- a/chrome/test/data/extensions/api_test/clipboard/extension_no_permission/test.js |
+++ b/chrome/test/data/extensions/api_test/clipboard/extension_no_permission/test.js |
@@ -5,32 +5,37 @@ |
// Clipboard permission test for Chrome. |
// browser_tests.exe --gtest_filter=ClipboardApiTest.ExtensionNoPermission |
-chrome.test.runTests([ |
- function domCopy() { |
- if (document.execCommand('copy')) |
- chrome.test.succeed(); |
- else |
- chrome.test.fail('execCommand("copy") failed'); |
- }, |
- function domPaste() { |
- if (!document.execCommand('paste')) |
- chrome.test.succeed(); |
- else |
- chrome.test.fail('execCommand("paste") succeeded'); |
- }, |
- function copyInIframe() { |
- var ifr = document.createElement('iframe'); |
- document.body.appendChild(ifr); |
- window.command = 'copy'; |
- ifr.contentDocument.write('<script src="iframe.js"></script>'); |
- }, |
- function pasteInIframe() { |
- var ifr = document.createElement('iframe'); |
- document.body.appendChild(ifr); |
- window.command = 'paste'; |
- ifr.contentDocument.write('<script src="iframe.js"></script>'); |
- } |
-]); |
+// TODO(kalman): Consolidate this test script with the other clipboard tests. |
+ |
+var pass = chrome.test.callbackPass; |
+ |
+function testDomCopy() { |
+ if (document.execCommand('copy')) |
+ chrome.test.succeed(); |
+ else |
+ chrome.test.fail('execCommand("copy") failed'); |
+} |
+ |
+function testDomPaste() { |
+ if (document.execCommand('paste')) |
+ chrome.test.fail('execCommand("paste") succeeded'); |
+ else |
+ chrome.test.succeed(); |
+} |
+ |
+function testCopyInIframe() { |
+ var ifr = document.createElement('iframe'); |
+ document.body.appendChild(ifr); |
+ window.command = 'copy'; |
+ ifr.contentDocument.write('<script src="iframe.js"></script>'); |
+} |
+ |
+function testPasteInIframe() { |
+ var ifr = document.createElement('iframe'); |
+ document.body.appendChild(ifr); |
+ window.command = 'paste'; |
+ ifr.contentDocument.write('<script src="iframe.js"></script>'); |
+} |
function testDone(result) { |
// 'copy' should always succeed regardless of the clipboardWrite permission, |
@@ -42,3 +47,40 @@ function testDone(result) { |
else |
chrome.test.fail(); |
} |
+ |
+function testContentScriptCopyPaste(tabUrl) { |
+ function runContentScript(tabId) { |
+ var done = chrome.test.listenForever(chrome.runtime.onMessage, |
+ function(message, sender) { |
+ if (sender.tab.id == tabId) { |
+ chrome.tabs.remove(sender.tab.id); |
+ chrome.test.assertEq('', message); |
+ done(); |
+ chrome.test.succeed(); |
+ } |
+ }); |
+ chrome.tabs.executeScript(tabId, {file: 'content_script.js'}); |
+ } |
+ |
+ chrome.tabs.create({url: tabUrl}, pass(function(newTab) { |
+ var done = chrome.test.listenForever(chrome.tabs.onUpdated, |
+ function(_, info, updatedTab) { |
+ if (updatedTab.id == newTab.id && info.status == 'complete') { |
+ runContentScript(newTab.id); |
+ done(); |
+ } |
+ }); |
+ })); |
+} |
+ |
+chrome.test.getConfig(function(config) { |
+ var tabUrl = 'http://localhost:' + config.testServer.port + |
+ '/extensions/test_file.html'; |
+ chrome.test.runTests([ |
+ testDomCopy, |
+ testDomPaste, |
+ testCopyInIframe, |
+ testPasteInIframe, |
+ testContentScriptCopyPaste.bind(null, tabUrl) |
+ ]); |
+}); |