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

Unified Diff: chrome/test/data/extensions/api_test/executescript/permissions/test.js

Issue 8758008: Move another block of extension tests to manifest_version 2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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/test/data/extensions/api_test/executescript/permissions/test.js
===================================================================
--- chrome/test/data/extensions/api_test/executescript/permissions/test.js (revision 0)
+++ chrome/test/data/extensions/api_test/executescript/permissions/test.js (revision 0)
@@ -0,0 +1,69 @@
+// Copyright (c) 2011 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.
+
+var assertEq = chrome.test.assertEq;
+var assertTrue = chrome.test.assertTrue;
+var numReceivedRequests = 0;
+var relativePath = 'files/extensions/api_test/executescript/permissions/';
+var testFile = relativePath + 'empty.html';
+var testFileFrames = relativePath + 'frames.html';
+var onTabLoaded;
+
+chrome.extension.onRequest.addListener(function(req) {
+ numReceivedRequests++;
+});
+
+chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
+ if (tab.status == 'complete' && onTabLoaded)
+ onTabLoaded(tab);
+});
+
+chrome.test.getConfig(function(config) {
+
+ function fixPort(url) {
+ return url.replace(/PORT/, config.testServer.port);
+ }
+
+ chrome.test.runTests([
+ // Test a race that used to occur here (see bug 30937).
+ // Open a tab that we're not allowed to execute in (c.com), then
+ // navigate it to a tab we *are* allowed to execute in (a.com),
+ // then quickly run script in the tab before it navigates. It
+ // should appear to work (no error -- it could have been a developer
+ // mistake), but not actually do anything.
+ function() {
+ chrome.tabs.create({url: fixPort('http://c.com:PORT/') + testFile});
+ onTabLoaded = function(tab) {
+ onTabLoaded = null;
+ numReceivedRequests = 0;
+ chrome.tabs.update(
+ tab.id, {url: fixPort('http://a.com:PORT/') + testFile});
+ chrome.tabs.executeScript(tab.id, {file: 'script.js'});
+ window.setTimeout(function() {
+ assertEq(0, numReceivedRequests);
+ chrome.test.runNextTest();
+ }, 4000);
+ };
+ },
+
+ // Inject into all frames. This should only affect frames we have
+ // access to. This page has three subframes, one each from a.com,
+ // b.com, and c.com. We have access to two of those, plus the root
+ // frame, so we should get three responses.
+ function() {
+ chrome.tabs.create(
+ {url: fixPort('http://a.com:PORT/') + testFileFrames});
+ onTabLoaded = function(tab) {
+ numReceivedRequests = 0;
+ chrome.tabs.executeScript(tab.id,
+ {file: 'script.js', allFrames: true});
+ window.setTimeout(function() {
+ chrome.test.assertEq(3, numReceivedRequests);
+ chrome.test.runNextTest();
+ }, 4000);
+ };
+ }
+ ]);
+
+});

Powered by Google App Engine
This is Rietveld 408576698