Skip to content

Commit

Permalink
Merge branch 'master' of github.com:developmentseed/bones
Browse files Browse the repository at this point in the history
  • Loading branch information
miccolis committed Sep 16, 2011
2 parents cadb1b1 + eeb94ad commit a705829
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 2 deletions.
2 changes: 1 addition & 1 deletion server/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Backbone.Router.prototype.route = function(route, name, callback) {
// Add route to express server.
var router = this;
this.server.get(route, function(req, res, next) {
var fragment = (req.query && req.query['_escaped_fragment_']) || req.url;
var fragment = (req.query && req.query['_escaped_fragment_']) || req.url.replace(/[#?].*$/, '');
var args = router._extractParameters(route, fragment);
var context = Object.create(router, { req: { value: req }, res: { value: res } });
callback.apply(context, args);
Expand Down
7 changes: 6 additions & 1 deletion test/fixture/routers/Page.bones
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
router = Backbone.Router.extend({
routes: {
'/': 'home',
'/page/:id': 'page',
'/page/special': 'pageSpecial'
},

page: function(id) {
this.res && this.res.send('page ' + id);
},

pageSpecial: function() {
this.res && this.res.send('special page');
},

home: function() {
this.res && this.res.send('home');
}
});
34 changes: 34 additions & 0 deletions test/urls.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
process.env.NODE_ENV = 'test';
var assert = require('assert');

var server = require('./fixture/start').servers.Core;

exports['_escaped_fragment_ redirect'] = function() {
assert.response(server, {
url: '/page/special?_escaped_fragment_=/something/different',
method: 'GET'
}, {
body: '<p>Moved Permanently. Redirecting to <a href="http://127.0.0.1:3000/something/different">http://127.0.0.1:3000/something/different</a></p>',
status: 301
});
}

exports['hash request'] = function() {
assert.response(server, {
url: '/#!/map/devseed-hq',
method: 'GET'
}, {
body: 'home',
status: 200
});
}

exports['query request'] = function() {
assert.response(server, {
url: '/?foo',
method: 'GET'
}, {
body: 'home',
status: 200
});
}

0 comments on commit a705829

Please sign in to comment.