1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 chrome.test.getConfig(function(config) {
6 var path = "/extensions/test_file.txt";
7 var urlA = "http://a.com:" + config.testServer.port + path;
8 var urlB = "http://b.com:" + config.testServer.port + path;
11 function onTabUpdated(tabId, changeInfo, tab) {
12 if (testTabId == tab.id && tab.status == "complete") {
13 chrome.tabs.onUpdated.removeListener(onTabUpdated);
14 chrome.tabs.update(tabId, {url: urlB});
15 executeCodeInTab(testTabId, function() {
16 // Generally, the tab navigation hasn't happened by the time we execute
17 // the script, so it's still showing a.com, where we don't have
18 // permission to run it.
19 if (chrome.runtime.lastError) {
20 chrome.test.assertTrue(
21 chrome.runtime.lastError.message.indexOf(
22 'Cannot access contents of url "http://a.com:') == 0);
23 chrome.test.notifyPass();
25 // If there were no errors, then the script did run, but it should
26 // have run on on b.com (where we do have permission).
27 chrome.tabs.get(tabId, function(tab) {
28 chrome.test.assertTrue(
29 tab.title.indexOf("hi, I'm on http://b.com:") == 0);
30 chrome.test.notifyPass();
37 chrome.tabs.onUpdated.addListener(onTabUpdated);
38 chrome.tabs.create({url: urlA}, function(tab) {