Index: chrome/test/data/extensions/api_test/webnavigation/navigation/test.html |
diff --git a/chrome/test/data/extensions/api_test/webnavigation/navigation/test.html b/chrome/test/data/extensions/api_test/webnavigation/navigation/test.html |
index 4ac358d1dbf7515032261a838c16ed68692946a1..431b4e776cb16a15e011edcb012d1b2e1015446d 100644 |
--- a/chrome/test/data/extensions/api_test/webnavigation/navigation/test.html |
+++ b/chrome/test/data/extensions/api_test/webnavigation/navigation/test.html |
@@ -16,98 +16,221 @@ function checkExpectations() { |
chrome.test.succeed(); |
} |
+chrome.experimental.webNavigation.onBeforeNavigate.addListener( |
+ function(details) { |
+ console.log('---onBeforeNavigate: ' + details.url); |
+ // normalize details. |
+ details.timeStamp = 0; |
+ if (details.frameId != 0) { |
+ details.frameId = 1; |
+ } |
+ capturedEventData.push(["onBeforeNavigate", details]); |
+ checkExpectations(); |
+}); |
+ |
chrome.experimental.webNavigation.onCommitted.addListener(function(details) { |
- console.log('---onCommitted: ' + details.url); |
+ console.log('---onCommitted: ' + details.url); |
+ // normalize details. |
+ details.timeStamp = 0; |
+ if (details.frameId != 0) { |
+ details.frameId = 1; |
+ } |
+ capturedEventData.push(["onCommitted", details]); |
+ checkExpectations(); |
+}); |
+ |
+chrome.experimental.webNavigation.onErrorOccurred.addListener( |
+ function(details) { |
+ console.log('---onErrorOccurred: ' + details.url); |
// normalize details. |
details.timeStamp = 0; |
if (details.frameId != 0) { |
details.frameId = 1; |
} |
- capturedEventData.push(details); |
+ capturedEventData.push(["onErrorOccurred", details]); |
checkExpectations(); |
}); |
var getURL = chrome.extension.getURL; |
chrome.tabs.getSelected(null, function(tab) { |
- var tabId = tab.id; |
+ var tabId = tab.id; |
+ |
+ chrome.test.runTests([ |
+ /* Navigates to an URL */ |
+ function simpleLoad() { |
+ expect([ |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('simpleLoad/a.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "link", |
+ url: getURL('simpleLoad/a.html') }]]); |
+ chrome.tabs.update(tabId, { url: getURL('simpleLoad/a.html') }); |
+ }, |
- chrome.test.runTests([ |
- /* Navigates to an URL */ |
- function simpleLoad() { |
- expect([ |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "", |
- transitionType: "link", |
- url: getURL('simpleLoad/a.html') }]); |
- chrome.tabs.update(tabId, { url: getURL('simpleLoad/a.html') }); |
- }, |
+ /* Navigates to a.html that redirects to b.html (using javascript) |
+ after a delay of 500ms, so the initial navigation is completed and |
+ the redirection is marked as client_redirect */ |
+ function clientRedirect() { |
+ expect([ |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('clientRedirect/a.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "link", |
+ url: getURL('clientRedirect/a.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('clientRedirect/b.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "client_redirect", |
+ transitionType: "link", |
+ url: getURL('clientRedirect/b.html') }]]); |
+ chrome.tabs.update(tabId, { url: getURL('clientRedirect/a.html') }); |
+ }, |
- /* Navigates to a.html that redirects to b.html (using javascript) |
- after a delay of 500ms, so the initial navigation is completed and |
- the redirection is marked as client_redirect */ |
- function clientRedirect() { |
- expect([ |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "", |
- transitionType: "link", |
- url: getURL('clientRedirect/a.html') }, |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "client_redirect", |
- transitionType: "link", |
- url: getURL('clientRedirect/b.html') }]); |
- chrome.tabs.update(tabId, { url: getURL('clientRedirect/a.html') }); |
- }, |
+ /* First navigates to a.html which redirects to to b.html which uses |
+ history.back() to navigate back to a.html */ |
+ function forwardBack() { |
+ expect([ |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('forwardBack/a.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "link", |
+ url: getURL('forwardBack/a.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('forwardBack/b.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "client_redirect", |
+ transitionType: "link", |
+ url: getURL('forwardBack/b.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('forwardBack/a.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "forward_back", |
+ transitionType: "link", |
+ url: getURL('forwardBack/a.html') }]]); |
+ chrome.tabs.update(tabId, { url: getURL('forwardBack/a.html') }); |
+ }, |
- /* First navigates to a.html which redirects to to b.html which uses |
- history.back() to navigate back to a.html */ |
- function forwardBack() { |
- expect([ |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "", |
- transitionType: "link", |
- url: getURL('forwardBack/a.html') }, |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "client_redirect", |
- transitionType: "link", |
- url: getURL('forwardBack/b.html') }, |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "forward_back", |
- transitionType: "link", |
- url: getURL('forwardBack/a.html') }]); |
- chrome.tabs.update(tabId, { url: getURL('forwardBack/a.html') }); |
- }, |
+ /* Navigates to a.html which includes b.html as an iframe. b.html |
+ redirects to c.html. */ |
+ function iframe() { |
+ expect([ |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('iframe/a.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "link", |
+ url: getURL('iframe/a.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('iframe/b.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "auto_subframe", |
+ url: getURL('iframe/b.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('iframe/c.html') }], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "manual_subframe", |
+ url: getURL('iframe/c.html') }]]); |
+ chrome.tabs.update(tabId, { url: getURL('iframe/a.html') }); |
+ }, |
- /* Navigates to a.html which includes b.html as an iframe. b.html |
- redirects to c.html. Note that all navigation entries are for |
- a.html. Also, b.html does not generate a navigation entry. */ |
- function iframe() { |
- expect([ |
- { frameId: 0, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "", |
- transitionType: "link", |
- url: getURL('iframe/a.html') }, |
- { frameId: 1, |
- tabId: tabId, |
- timeStamp: 0, |
- transitionQualifiers: "", |
- transitionType: "link", |
- url: getURL('iframe/a.html') }]); |
- chrome.tabs.update(tabId, { url: getURL('iframe/a.html') }); |
- }, |
- ]); |
+ /* Navigates to a non-existant page. */ |
+ function nonExistant() { |
+ expect([ |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('nonexistant.html') }], |
+ [ "onErrorOccurred", |
+ { error: "net::ERR_FILE_NOT_FOUND", |
+ frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: getURL('nonexistant.html') }], |
+ [ "onBeforeNavigate", |
+ { frameId: 0, |
+ requestId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ url: "chrome://chromewebdata/"}], |
+ [ "onCommitted", |
+ { frameId: 0, |
+ tabId: tabId, |
+ timeStamp: 0, |
+ transitionQualifiers: "", |
+ transitionType: "link", |
+ url: getURL('nonexistant.html') }]]); |
+ chrome.tabs.update(tabId, { url: getURL('nonexistant.html') }); |
+ }, |
+ ]); |
}); |
</script> |