@@ -421,6 +421,110 @@ export function test_WhenPageIsNavigatedToFrameCurrentPageIsNowTheSameAsThePage(
421421 page . off ( Label . loadedEvent , navigatedEventHandler ) ;
422422}
423423
424+ export function test_WhenViewBaseCallsShowModal_WithArguments_ShouldOpenModal ( ) {
425+ let modalClosed = false ;
426+
427+ const modalCloseCallback = function ( returnValue : any ) {
428+ modalClosed = true ;
429+ }
430+
431+ const createTabItems = function ( count : number ) {
432+ var items = new Array < TabViewItem > ( ) ;
433+
434+ for ( var i = 0 ; i < count ; i ++ ) {
435+ var label = new Label ( ) ;
436+ label . text = "Tab " + i ;
437+ var tabEntry = new TabViewItem ( ) ;
438+ tabEntry . title = "Tab " + i ;
439+ tabEntry . view = label ;
440+
441+ items . push ( tabEntry ) ;
442+ }
443+
444+ return items ;
445+ }
446+
447+ const modalPageShownModallyEventHandler = function ( args : ShownModallyData ) {
448+ const page = < Page > args . object ;
449+ page . off ( View . shownModallyEvent , modalPageShownModallyEventHandler ) ;
450+ args . closeCallback ( ) ;
451+ }
452+
453+ const hostNavigatedToEventHandler = function ( args ) {
454+ const page = < Page > args . object ;
455+ page . off ( Page . navigatedToEvent , hostNavigatedToEventHandler ) ;
456+
457+ const modalPage = new Page ( ) ;
458+ modalPage . id = "modalPage_test_WhenViewBaseCallsShowModal_WithArguments_ShouldOpenModal" ;
459+ modalPage . on ( View . shownModallyEvent , modalPageShownModallyEventHandler ) ;
460+ const tabViewItem = ( < TabView > page . content ) . items [ 0 ] ;
461+ tabViewItem . showModal ( modalPage , { } , modalCloseCallback , false , false ) ;
462+ }
463+
464+ const masterPageFactory = function ( ) : Page {
465+ const masterPage = new Page ( ) ;
466+ masterPage . id = "masterPage_test_WhenViewBaseCallsShowModal_WithArguments_ShouldOpenModal" ;
467+ masterPage . on ( Page . navigatedToEvent , hostNavigatedToEventHandler )
468+
469+ const tabView = new TabView ( ) ;
470+ tabView . items = createTabItems ( 2 ) ;
471+ masterPage . content = tabView ;
472+
473+ return masterPage ;
474+ } ;
475+
476+ helper . navigate ( masterPageFactory ) ;
477+
478+ TKUnit . waitUntilReady ( ( ) => modalClosed ) ;
479+ }
480+
481+ export function test_WhenViewBaseCallsShowModal_WithArguments_ShouldThrow ( ) {
482+ let navigatedTo = false ;
483+
484+ const createTabItems = function ( count : number ) {
485+ var items = new Array < TabViewItem > ( ) ;
486+
487+ for ( var i = 0 ; i < count ; i ++ ) {
488+ var label = new Label ( ) ;
489+ label . text = "Tab " + i ;
490+ var tabEntry = new TabViewItem ( ) ;
491+ tabEntry . title = "Tab " + i ;
492+ tabEntry . view = label ;
493+
494+ items . push ( tabEntry ) ;
495+ }
496+
497+ return items ;
498+ }
499+
500+ const hostNavigatedToEventHandler = function ( args ) {
501+ const page = < Page > args . object ;
502+ page . off ( Page . navigatedToEvent , hostNavigatedToEventHandler ) ;
503+
504+ const hostPage = < Page > args . object ;
505+ const tabViewItem = ( < TabView > page . content ) . items [ 0 ] ;
506+ TKUnit . assertThrows ( ( ) => tabViewItem . showModal ( ) ) ;
507+
508+ navigatedTo = true ;
509+ }
510+
511+ const masterPageFactory = function ( ) : Page {
512+ const masterPage = new Page ( ) ;
513+ masterPage . id = "masterPage_test_WhenViewBaseCallsShowModal_WithArguments_ShouldThrow" ;
514+ masterPage . on ( Page . navigatedToEvent , hostNavigatedToEventHandler )
515+
516+ const tabView = new TabView ( ) ;
517+ tabView . items = createTabItems ( 2 ) ;
518+ masterPage . content = tabView ;
519+
520+ return masterPage ;
521+ } ;
522+
523+ helper . navigate ( masterPageFactory ) ;
524+
525+ TKUnit . waitUntilReady ( ( ) => navigatedTo ) ;
526+ }
527+
424528export function test_WhenNavigatingForwardAndBack_IsBackNavigationIsCorrect ( ) {
425529 let page1 ;
426530 let page2 ;
0 commit comments