@@ -7,6 +7,7 @@ var eventSequence,
7
7
"pagebeforechange" ,
8
8
"pagebeforeload" ,
9
9
"pageload" ,
10
+ "pageloadfailed" ,
10
11
"pagebeforehide" ,
11
12
"pagebeforeshow" ,
12
13
"pagehide" ,
@@ -17,6 +18,7 @@ var eventSequence,
17
18
"pagecontainerbeforechange" ,
18
19
"pagecontainerbeforeload" ,
19
20
"pagecontainerload" ,
21
+ "pagecontainerloadfailed" ,
20
22
"pagebeforecreate" ,
21
23
"pagecreate" ,
22
24
"pageinit" ,
@@ -60,12 +62,19 @@ module( "Page event sequence tests", {
60
62
}
61
63
} ) ;
62
64
65
+ function makeOtherPageUrl ( filename ) {
66
+ var parsedUrl = $ . mobile . path . parseLocation ( ) ;
67
+
68
+ return $ . mobile . path . getLocation ( $ . extend ( parsedUrl , {
69
+ filename : filename ,
70
+ pathname : parsedUrl . directory + filename
71
+ } ) ) ;
72
+ }
73
+
63
74
asyncTest ( "Event sequence during navigation to another page" , function ( ) {
64
- var parsedUrl = $ . mobile . path . parseLocation ( ) ,
65
- otherPageUrl = $ . mobile . path . getLocation ( $ . extend ( parsedUrl , {
66
- filename : "other-page.html" ,
67
- pathname : parsedUrl . directory + "other-page.html"
68
- } ) ) ,
75
+ expect ( 1 ) ;
76
+
77
+ var otherPageUrl = makeOtherPageUrl ( "other-page.html" ) ,
69
78
expectedEventSequence = [
70
79
71
80
// Deprecated as of 1.4.0
@@ -166,7 +175,54 @@ asyncTest( "Event sequence during navigation to another page", function() {
166
175
$ ( ":mobile-pagecontainer" ) . pagecontainer ( "back" ) ;
167
176
} ,
168
177
function ( ) {
169
- deepEqual ( true , true , "Works" ) ;
178
+ start ( ) ;
179
+ }
180
+ ] ) ;
181
+ } ) ;
182
+
183
+ asyncTest ( "Event sequence during page load failure" , function ( ) {
184
+ expect ( 1 ) ;
185
+
186
+ var otherPageUrl = makeOtherPageUrl ( "page-does-not-exist.html" ) ,
187
+ expectedEventSequence = [
188
+
189
+ // Deprecated as of 1.4.0
190
+ { type : "pagebeforechange" , target : "the-body" ,
191
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } } ,
192
+
193
+ // Valid
194
+ { type : "pagecontainerbeforechange" , target : "the-body" ,
195
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } } ,
196
+
197
+ // Deprecated as of 1.4.0
198
+ { type : "pagebeforeload" , target : "the-body" ,
199
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } } ,
200
+
201
+ // Valid
202
+ { type : "pagecontainerbeforeload" , target : "the-body" ,
203
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } } ,
204
+
205
+ // Deprecated as of 1.4.0
206
+ { type : "pageloadfailed" , target : "the-body" ,
207
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } } ,
208
+
209
+ // Valid
210
+ { type : "pagecontainerloadfailed" , target : "the-body" ,
211
+ data : { prevPage : "start-page" , nextPage : undefined , toPage : otherPageUrl } }
212
+ ] ;
213
+
214
+ $ . testHelper . detailedEventCascade ( [
215
+ function ( ) {
216
+ $ ( "#go-to-nonexistent-page" ) . click ( ) ;
217
+ } ,
218
+ {
219
+ pagecontainerloadfailed : {
220
+ src : $ ( ":mobile-pagecontainer" ) ,
221
+ event : "pagecontainerloadfailed.eventSequenceDuringPageLoadFailure1"
222
+ }
223
+ } ,
224
+ function ( ) {
225
+ deepEqual ( eventSequence , expectedEventSequence , "Event sequence as expected" ) ;
170
226
start ( ) ;
171
227
}
172
228
] ) ;
0 commit comments