@@ -504,19 +504,19 @@ describe('Hash routing', function() {
504
504
505
505
render : function ( ) {
506
506
return Router . Locations ( { ref : 'router' , hash : true , className : 'App' } ,
507
- Router . Location ( {
508
- path : '/' ,
509
- handler : function ( props ) {
510
- return Router . Link ( { ref : 'link' , href : '/hello' } , 'mainpage' )
511
- }
512
- } ) ,
513
- Router . Location ( {
514
- path : '/:slug' ,
515
- handler : function ( props ) {
516
- return div ( null , props . slug ) ;
517
- }
518
- } )
519
- ) ;
507
+ Router . Location ( {
508
+ path : '/' ,
509
+ handler : function ( props ) {
510
+ return Router . Link ( { ref : 'link' , href : '/hello' } , 'mainpage' ) ;
511
+ }
512
+ } ) ,
513
+ Router . Location ( {
514
+ path : '/:slug' ,
515
+ handler : function ( props ) {
516
+ return div ( null , props . slug ) ;
517
+ }
518
+ } )
519
+ ) ;
520
520
}
521
521
} ) ;
522
522
@@ -571,3 +571,64 @@ describe('Hash routing', function() {
571
571
} ) ;
572
572
573
573
} ) ;
574
+
575
+ describe ( 'Contextual Hash routers' , function ( ) {
576
+
577
+ var SubCat = React . createClass ( {
578
+
579
+ render : function ( ) {
580
+ return React . DOM . div ( null ,
581
+ Router . Locations ( { ref : 'router' , contextual : true } ,
582
+ Router . Location ( {
583
+ path : '/' ,
584
+ handler : function ( props ) { return div ( null , 'subcat/root' ) }
585
+ } ) ,
586
+ Router . Location ( {
587
+ path : '/escape' ,
588
+ handler : function ( props ) {
589
+ return Router . Link ( { globalHash : true , ref : 'link' , href : '/' } , 'subcat/escape' ) ;
590
+ }
591
+ } )
592
+ ) ) ;
593
+ }
594
+ } ) ;
595
+
596
+ var App = React . createClass ( {
597
+
598
+ render : function ( ) {
599
+ return Router . Locations ( { ref : 'router' , hash : true } ,
600
+ Router . Location ( {
601
+ path : '/' ,
602
+ handler : function ( ) {
603
+ return div ( null , "mainpage" ) ;
604
+ }
605
+ } ) ,
606
+ Router . Location ( {
607
+ path : '/subcat/*' ,
608
+ handler : SubCat ,
609
+ ref : 'subcat'
610
+ } )
611
+ ) ;
612
+ }
613
+ } ) ;
614
+
615
+ beforeEach ( setUp ( App ) ) ;
616
+ afterEach ( cleanUp ) ;
617
+
618
+ describe ( 'Link component' , function ( ) {
619
+
620
+ it ( 'does not scope globalHash Link to a current context' , function ( done ) {
621
+ assertRendered ( 'mainpage' ) ;
622
+ router . navigate ( '/subcat/escape' , function ( ) {
623
+ assertRendered ( 'subcat/escape' ) ;
624
+ clickOn ( router . refs . subcat . refs . router . refs . link ) ;
625
+ setTimeout ( function ( ) {
626
+ assertRendered ( 'mainpage' ) ;
627
+ done ( ) ;
628
+ } , 200 ) ;
629
+ } ) ;
630
+ } ) ;
631
+
632
+ } ) ;
633
+
634
+ } ) ;
0 commit comments