|
395 | 395 | ok( identical, "Going back returns $.mobile.urlHistory to its initial value" ); |
396 | 396 | ok( $.mobile.urlHistory.activeIndex === $.mobile.urlHistory.stack.length - 3, "Going back leaves exactly two entries ahead in $.mobile.urlHistory" ); |
397 | 397 |
|
398 | | - setTimeout( function() { start(); }, 300 ); |
| 398 | + setTimeout( function() { start(); }, 500 ); |
| 399 | + }, |
| 400 | + ]); |
| 401 | + }); |
| 402 | + |
| 403 | + asyncTest( "Sequence page -> popup -> dialog -> popup works", function() { |
| 404 | + var originallyActivePage = $.mobile.activePage[ 0 ]; |
| 405 | + |
| 406 | + expect( 13 ); |
| 407 | + $.testHelper.detailedEventCascade([ |
| 408 | + function() { |
| 409 | + $( "#popup-sequence-test" ).popup( "open" ); |
| 410 | + }, |
| 411 | + |
| 412 | + { |
| 413 | + opened: { src: $( "#popup-sequence-test" ), event: "popupafteropen.sequenceTestStep1" }, |
| 414 | + hashchange: { src: $( window ), event: "hashchange.sequenceTestStep1" } |
| 415 | + }, |
| 416 | + |
| 417 | + function( result ) { |
| 418 | + ok( !result.opened.timedOut, "Popup has emitted 'popupafteropen'" ); |
| 419 | + ok( !result.hashchange.timedOut, "A 'hashchange' event has occurred" ); |
| 420 | + $( "#popup-sequence-test-open-dialog" ).click(); |
| 421 | + }, |
| 422 | + |
| 423 | + { |
| 424 | + closed: { src: $( "#popup-sequence-test" ), event: "popupafterclose.sequenceTestStep2" }, |
| 425 | + pagechange: { src: $.mobile.pageContainer, event: "pagechange.sequenceTestStep2" } |
| 426 | + }, |
| 427 | + |
| 428 | + function( result ) { |
| 429 | + ok( !result.closed.timedOut, "Popup has emitted 'popupafterclose'" ); |
| 430 | + ok( !result.pagechange.timedOut, "A 'pagechange' event has occurred" ); |
| 431 | + ok( $.mobile.activePage[ 0 ] === $( "#popup-sequence-test-dialog" )[ 0 ], "The dialog is the active page" ); |
| 432 | + $( "a[href='#popup-sequence-test-popup-inside-dialog']" ).click(); |
399 | 433 | }, |
400 | 434 |
|
| 435 | + { |
| 436 | + opened: { src: function() { return $( "#popup-sequence-test-popup-inside-dialog" ); }, event: "popupafteropen.sequenceTestStep3" }, |
| 437 | + hashchange: { src: $( window ), event: "hashchange.sequenceTestStep3" } |
| 438 | + }, |
| 439 | + |
| 440 | + function( result ) { |
| 441 | + ok( !result.opened.timedOut, "Popup inside dialog has emitted 'popupafteropen'" ); |
| 442 | + ok( !result.hashchange.timedOut, "Popup inside dialog has caused a 'hashchange'" ); |
| 443 | + window.history.back(); |
| 444 | + }, |
| 445 | + |
| 446 | + { |
| 447 | + close: { src: function() { return $( "#popup-sequence-test-popup-inside-dialog" ); }, event: "popupafterclose.sequenceTestStep4" }, |
| 448 | + hashchange: { src: $( window ), event: "hashchange.sequenceTestStep4" } |
| 449 | + }, |
| 450 | + |
| 451 | + function( result ) { |
| 452 | + ok( !result.close.timedOut, "Popup inside dialog has emitted 'popupafterclose'" ); |
| 453 | + ok( !result.hashchange.timedOut, "The closing of the inside popup has resulted in a 'hashchange'" ); |
| 454 | + ok( $.mobile.activePage[ 0 ] === $( "#popup-sequence-test-dialog" )[ 0 ], "The dialog is once more the active page" ); |
| 455 | + window.history.back(); |
| 456 | + }, |
| 457 | + |
| 458 | + { |
| 459 | + pagechange: { src: $.mobile.pageContainer, event: "pagechange.sequenceTestStep5" }, |
| 460 | + hashchange: { src: $( window ), event: "hashchange.sequenceTestStep5" } |
| 461 | + }, |
| 462 | + |
| 463 | + function( result ) { |
| 464 | + ok( !result.pagechange.timedOut, "Going back from the dialog has resulted in a 'pagechange'" ); |
| 465 | + ok( !result.hashchange.timedOut, "Going back from the dialog has resulted in a 'hashchange'" ); |
| 466 | + ok( originallyActivePage === $.mobile.activePage[ 0 ], "After going back from the dialog, the originally active page is active once more" ); |
| 467 | + setTimeout( function() { start(); }, 300 ); |
| 468 | + } |
401 | 469 | ]); |
402 | 470 | }); |
403 | 471 |
|
|
0 commit comments