adding a test to ensure that routes aren't triggered multiple times. #849

This commit is contained in:
Jeremy Ashkenas
2012-01-11 12:11:10 -05:00
parent 933469a2bd
commit 2312b9072c

View File

@@ -4,8 +4,11 @@ $(document).ready(function() {
var Router = Backbone.Router.extend({
count: 0,
routes: {
"noCallback": "noCallback",
"counter": "counter",
"search/:query": "search",
"search/:query/p:page": "search",
"splat/*args/end": "splat",
@@ -18,6 +21,10 @@ $(document).ready(function() {
this.testing = options.testing;
},
counter: function() {
this.count++;
},
search : function(query, page) {
this.query = query;
this.page = page;
@@ -86,6 +93,18 @@ $(document).ready(function() {
equals(router.page, '20');
});
test("Router: doesn't fire routes to the same place twice", function() {
equals(router.count, 0);
router.navigate('counter', {trigger: true});
equals(router.count, 1);
router.navigate('counter', {trigger: true});
router.navigate('counter', {trigger: true});
equals(router.count, 1);
router.navigate('search/counter', {trigger: true});
router.navigate('counter', {trigger: true});
equals(router.count, 2);
});
asyncTest("Router: routes via navigate with {replace: true}", function() {
var historyLength = window.history.length;
router.navigate('search/manhattan/start_here');