| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- Route = FlowRouter.Route;
 
- Tinytest.addAsync('Client - Route - Reactivity - getParam', function (test, done) {
 
-   var r = new Route();
 
-   Tracker.autorun(function(c) {
 
-     var param = r.getParam("id");
 
-     if(param) {
 
-       test.equal(param, "hello");
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   
 
-   setTimeout(function() {
 
-     var context = {
 
-       params: {id: "hello"},
 
-       queryParams: {}
 
-     };
 
-     r.registerRouteChange(context);
 
-   }, 10);
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - getParam on route close', function (test, done) {
 
-   var r = new Route();
 
-   var closeTriggered = false;
 
-   Tracker.autorun(function(c) {
 
-     var param = r.getParam("id");
 
-     if(closeTriggered) {
 
-       test.equal(param, undefined);
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   
 
-   setTimeout(function() {
 
-     closeTriggered = true;
 
-     r.registerRouteClose();
 
-   }, 10);
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - getQueryParam', function (test, done) {
 
-   var r = new Route();
 
-   Tracker.autorun(function(c) {
 
-     var param = r.getQueryParam("id");
 
-     if(param) {
 
-       test.equal(param, "hello");
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   
 
-   setTimeout(function() {
 
-     var context = {
 
-       params: {},
 
-       queryParams: {id: "hello"}
 
-     };
 
-     r.registerRouteChange(context);
 
-   }, 10);
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - getQueryParam on route close', function (test, done) {
 
-   var r = new Route();
 
-   var closeTriggered = false;
 
-   Tracker.autorun(function(c) {
 
-     var param = r.getQueryParam("id");
 
-     if(closeTriggered) {
 
-       test.equal(param, undefined);
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   
 
-   setTimeout(function() {
 
-     closeTriggered = true;
 
-     r.registerRouteClose();
 
-   }, 10);
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - getRouteName rerun when route closed', function (test, done) {
 
-   var r = new Route();
 
-   r.name = "my-route";
 
-   var closeTriggered = false;
 
-   Tracker.autorun(function(c) {
 
-     var name = r.getRouteName();
 
-     test.equal(name, r.name);
 
-     if(closeTriggered) {
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   
 
-   setTimeout(function() {
 
-     closeTriggered = true;
 
-     r.registerRouteClose();
 
-   }, 10);
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeChange', function (test, done) {
 
-   var r = new Route();
 
-   var pathChangeCounts = 0;
 
-   var c = Tracker.autorun(function() {
 
-     r.watchPathChange();
 
-     pathChangeCounts++;
 
-   });
 
-   var context = {
 
-     params: {},
 
-     queryParams: {}
 
-   };
 
-   setTimeout(function() {
 
-     r.registerRouteChange(context);
 
-     setTimeout(checkAfterNormalRouteChange, 50);
 
-   }, 10);
 
-   function checkAfterNormalRouteChange() {
 
-     test.equal(pathChangeCounts, 2);
 
-     var lastRouteChange = true;
 
-     r.registerRouteChange(context, lastRouteChange);
 
-     setTimeout(checkAfterLastRouteChange, 10);
 
-   }
 
-   function checkAfterLastRouteChange() {
 
-     test.equal(pathChangeCounts, 2);
 
-     c.stop();
 
-     Meteor.defer(done);
 
-   }
 
- });
 
- Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeClose', function (test, done) {
 
-   var r = new Route();
 
-   var pathChangeCounts = 0;
 
-   var c = Tracker.autorun(function() {
 
-     r.watchPathChange();
 
-     pathChangeCounts++;
 
-   });
 
-   var context = {
 
-     params: {},
 
-     queryParams: {}
 
-   };
 
-   
 
-   setTimeout(function() {
 
-     r.registerRouteClose();
 
-     setTimeout(checkAfterRouteClose, 10);
 
-   }, 10);
 
-   function checkAfterRouteClose() {
 
-     test.equal(pathChangeCounts, 2);
 
-     c.stop();
 
-     Meteor.defer(done);
 
-   }
 
- });
 
 
  |