11import * as TKUnit from "../TKUnit" ;
2- import { Page , NavigatedData } from "tns-core-modules/ui/page" ;
2+ import { EventData , Page , NavigatedData } from "tns-core-modules/ui/page" ;
33import { topmost as topmostFrame , NavigationTransition } from "tns-core-modules/ui/frame" ;
44import { Color } from "tns-core-modules/color" ;
55import * as helper from "../ui/helper" ;
@@ -377,4 +377,41 @@ export function test_NavigationEvents_WithClearHistory() {
377377
378378export function test_NavigationEvents_WithClearHistory_WithTransition ( ) {
379379 _test_NavigationEvents_WithClearHistory ( { name : "fade" , duration : 10 } ) ;
380+ }
381+
382+ export function test_Navigate_From_Page_Loaded_Handler ( ) {
383+ _test_Navigate_From_Page_Event_Handler ( Page . loadedEvent ) ;
384+ }
385+
386+ export function test_Navigate_From_Page_NavigatedTo_Handler ( ) {
387+ _test_Navigate_From_Page_Event_Handler ( Page . navigatedToEvent ) ;
388+ }
389+
390+ function _test_Navigate_From_Page_Event_Handler ( eventName : string ) {
391+ let secondPageNavigatedTo = false ;
392+
393+ const firstPageFactory = function ( ) : Page {
394+ const firstPage = new Page ( ) ;
395+ firstPage . id = "first-page" ;
396+ firstPage . on ( eventName , ( args : EventData ) => {
397+ const page = < Page > args . object ;
398+ const frame = page . frame ;
399+
400+ const secondPageFactory = function ( ) : Page {
401+ const secondPage = new Page ( ) ;
402+ secondPage . id = "second-page" ;
403+ secondPage . on ( Page . navigatedToEvent , ( ) => { secondPageNavigatedTo = true } ) ;
404+
405+ return secondPage ;
406+ } ;
407+
408+ frame . navigate ( secondPageFactory ) ;
409+ } ) ;
410+
411+ return firstPage ;
412+ } ;
413+
414+ helper . navigateWithEntry ( { create : firstPageFactory } ) ;
415+
416+ TKUnit . waitUntilReady ( ( ) => secondPageNavigatedTo ) ;
380417}
0 commit comments