From c15f1cc9b0c59bf617740ae580a46f713aee723b Mon Sep 17 00:00:00 2001 From: Ismael Celis Date: Tue, 21 Sep 2010 14:42:55 +0100 Subject: [PATCH] If defined, include jQuery.ajaxSetup data in REST parameters --- src/model_rest.js | 3 +++ test/tests/model_rest.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/model_rest.js b/src/model_rest.js index 16e4fd3..c02556f 100644 --- a/src/model_rest.js +++ b/src/model_rest.js @@ -46,6 +46,9 @@ Model.REST = function(resource, methods) { } else { params = null; } + if(jQuery.ajaxSettings.data){ + params = jQuery.extend(jQuery.ajaxSettings.data, params || {}); + } return JSON.stringify(params) }, diff --git a/test/tests/model_rest.js b/test/tests/model_rest.js index 330c4a5..f9dbe93 100644 --- a/test/tests/model_rest.js +++ b/test/tests/model_rest.js @@ -168,6 +168,37 @@ test("create failure", function() { }); }); +test("create with AjaxSetup", function() { + + jQuery.ajaxSetup({ + data: { + socket_id: '111' + } + }) + + var Post = Model("post", { + persistence: Model.REST("/posts") + }); + var post = new Post({ title: "Foo", body: "..." }); + + equals(Post.count(), 0); + + AjaxSpy.start(); + + stop(); + + post.save(function(success) { + ok(success); + same(this, post); + start(); + }); + + equals(AjaxSpy.requests.length, 1, "one request should have been made"); + + var request = AjaxSpy.requests.shift(); + same(JSON.parse(request.data), { socket_id: '111', post: { title: "Foo", body: "..." } }); +}); + test("update", function() { var Post = Model("post", { persistence: Model.REST("/posts")