- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / webnavigation / test_failures.js
1 // Copyright (c) 2012 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.
4
5 onload = function() {
6   var getURL = chrome.extension.getURL;
7   chrome.tabs.create({"url": "about:blank"}, function(tab) {
8     var tabId = tab.id;
9
10     chrome.test.runTests([
11       // An page that tries to load an non-existent iframe.
12       function nonExistentIframe() {
13         expect([
14           { label: "a-onBeforeNavigate",
15             event: "onBeforeNavigate",
16             details: { frameId: 0,
17                        parentFrameId: -1,
18                        processId: 0,
19                        tabId: 0,
20                        timeStamp: 0,
21                        url: getURL('failures/d.html') }},
22           { label: "a-onCommitted",
23             event: "onCommitted",
24             details: { frameId: 0,
25                        processId: 0,
26                        tabId: 0,
27                        timeStamp: 0,
28                        transitionQualifiers: [],
29                        transitionType: "link",
30                        url: getURL('failures/d.html') }},
31           { label: "a-onDOMContentLoaded",
32             event: "onDOMContentLoaded",
33             details: { frameId: 0,
34                        processId: 0,
35                        tabId: 0,
36                        timeStamp: 0,
37                        url: getURL('failures/d.html') }},
38           { label: "a-onCompleted",
39             event: "onCompleted",
40             details: { frameId: 0,
41                        processId: 0,
42                        tabId: 0,
43                        timeStamp: 0,
44                        url: getURL('failures/d.html') }},
45           { label: "b-onBeforeNavigate",
46             event: "onBeforeNavigate",
47             details: { frameId: 1,
48                        parentFrameId: 0,
49                        processId: 0,
50                        tabId: 0,
51                        timeStamp: 0,
52                        url: getURL('failures/c.html') }},
53           { label: "b-onErrorOccurred",
54             event: "onErrorOccurred",
55             details: { error: "net::ERR_FILE_NOT_FOUND",
56                        frameId: 1,
57                        processId: 0,
58                        tabId: 0,
59                        timeStamp: 0,
60                        url: getURL('failures/c.html') }}],
61           [navigationOrder("a-"),
62             ["a-onCommitted", "b-onBeforeNavigate", "b-onErrorOccurred",
63              "a-onCompleted"]]);
64         chrome.tabs.update(tabId, { url: getURL('failures/d.html') });
65       },
66
67       // An iframe navigates to a non-existent page.
68       function nonExistentIframeNavigation() {
69         expect([
70           { label: "a-onBeforeNavigate",
71             event: "onBeforeNavigate",
72             details: { frameId: 0,
73                        parentFrameId: -1,
74                        processId: 0,
75                        tabId: 0,
76                        timeStamp: 0,
77                        url: getURL('failures/a.html') }},
78           { label: "a-onCommitted",
79             event: "onCommitted",
80             details: { frameId: 0,
81                        processId: 0,
82                        tabId: 0,
83                        timeStamp: 0,
84                        transitionQualifiers: [],
85                        transitionType: "link",
86                        url: getURL('failures/a.html') }},
87           { label: "a-onDOMContentLoaded",
88             event: "onDOMContentLoaded",
89             details: { frameId: 0,
90                        processId: 0,
91                        tabId: 0,
92                        timeStamp: 0,
93                        url: getURL('failures/a.html') }},
94           { label: "a-onCompleted",
95             event: "onCompleted",
96             details: { frameId: 0,
97                        processId: 0,
98                        tabId: 0,
99                        timeStamp: 0,
100                        url: getURL('failures/a.html') }},
101           { label: "b-onBeforeNavigate",
102             event: "onBeforeNavigate",
103             details: { frameId: 1,
104                        parentFrameId: 0,
105                        processId: 0,
106                        tabId: 0,
107                        timeStamp: 0,
108                        url: getURL('failures/b.html') }},
109           { label: "b-onCommitted",
110             event: "onCommitted",
111             details: { frameId: 1,
112                        processId: 0,
113                        tabId: 0,
114                        timeStamp: 0,
115                        transitionQualifiers: [],
116                        transitionType: "auto_subframe",
117                        url: getURL('failures/b.html') }},
118           { label: "b-onDOMContentLoaded",
119             event: "onDOMContentLoaded",
120             details: { frameId: 1,
121                        processId: 0,
122                        tabId: 0,
123                        timeStamp: 0,
124                        url: getURL('failures/b.html') }},
125           { label: "b-onCompleted",
126             event: "onCompleted",
127             details: { frameId: 1,
128                        processId: 0,
129                        tabId: 0,
130                        timeStamp: 0,
131                        url: getURL('failures/b.html') }},
132           { label: "c-onBeforeNavigate",
133             event: "onBeforeNavigate",
134             details: { frameId: 1,
135                        parentFrameId: 0,
136                        processId: 0,
137                        tabId: 0,
138                        timeStamp: 0,
139                        url: getURL('failures/c.html') }},
140           { label: "c-onErrorOccurred",
141             event: "onErrorOccurred",
142             details: { error: "net::ERR_FILE_NOT_FOUND",
143                        frameId: 1,
144                        processId: 0,
145                        tabId: 0,
146                        timeStamp: 0,
147                        url: getURL('failures/c.html') }}],
148           [ navigationOrder("a-"),
149             navigationOrder("b-"),
150             isIFrameOf("b-", "a-"),
151             isLoadedBy("c-", "b-"),
152             ["c-onBeforeNavigate", "c-onErrorOccurred"]]);
153         chrome.tabs.update(tabId, { url: getURL('failures/a.html') });
154       },
155
156       // Cancel a navigation after it is already committed.
157       function cancel() {
158         expect([
159           { label: "onBeforeNavigate",
160             event: "onBeforeNavigate",
161             details: { frameId: 0,
162                        parentFrameId: -1,
163                        processId: 0,
164                        tabId: 0,
165                        timeStamp: 0,
166                        url: getURL('failures/e.html') }},
167           { label: "onCommitted",
168             event: "onCommitted",
169             details: { frameId: 0,
170                        processId: 0,
171                        tabId: 0,
172                        timeStamp: 0,
173                        transitionQualifiers: [],
174                        transitionType: "link",
175                        url: getURL('failures/e.html') }},
176           { label: "onDOMContentLoaded",
177             event: "onDOMContentLoaded",
178             details: { frameId: 0,
179                        processId: 0,
180                        tabId: 0,
181                        timeStamp: 0,
182                        url: getURL('failures/e.html') }},
183           { label: "onErrorOccurred",
184             event: "onErrorOccurred",
185             details: { error: "net::ERR_ABORTED",
186                        frameId: 0,
187                        processId: 0,
188                        tabId: 0,
189                        timeStamp: 0,
190                        url: getURL('failures/e.html') }}],
191           [["onBeforeNavigate", "onCommitted", "onDOMContentLoaded",
192             "onErrorOccurred"]]);
193         chrome.tabs.update(tabId, { url: getURL('failures/e.html') });
194       },
195
196       // Navigates to a non-existent page (this test case must be last,
197       // otherwise the non-existant URL breaks tests that follow, since loading
198       // those test pages is seen as a non-extension -> extension URL
199       // transition, which is forbidden by web_accessible_resources enforcement
200       // in manifest version 2.)
201       function nonExistent() {
202         expect([
203           { label: "onBeforeNavigate",
204             event: "onBeforeNavigate",
205             details: { frameId: 0,
206                        parentFrameId: -1,
207                        processId: 0,
208                        tabId: 0,
209                        timeStamp: 0,
210                        url: getURL('failures/nonexistent.html') }},
211           { label: "onErrorOccurred",
212             event: "onErrorOccurred",
213             details: { error: "net::ERR_FILE_NOT_FOUND",
214                        frameId: 0,
215                        processId: 0,
216                        tabId: 0,
217                        timeStamp: 0,
218                        url: getURL('failures/nonexistent.html') }}],
219           [["onBeforeNavigate", "onErrorOccurred"]]);
220         chrome.tabs.update(tabId, { url: getURL('failures/nonexistent.html') });
221       },
222     ]);
223   });
224 };