diff --git a/services/sync/modules/sharing.js b/services/sync/modules/sharing.js index c3100ab22b41..2e40a5691058 100644 --- a/services/sync/modules/sharing.js +++ b/services/sync/modules/sharing.js @@ -41,6 +41,7 @@ const Ci = Components.interfaces; const Cu = Components.utils; Cu.import("resource://weave/async.js"); +Cu.import("resource://weave/identity.js"); Function.prototype.async = Async.sugar; @@ -58,6 +59,7 @@ Api.prototype = { _shareGenerator: function Api__shareGenerator(path, users) { let self = yield; + let id = ID.get(this._dav.identity); this._dav.defaultPrefix = ""; @@ -67,7 +69,11 @@ Api.prototype = { let jsonSvc = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); let json = jsonSvc.encode(cmd); - this._dav.POST("share/", "cmd=" + escape(json), self.cb); + this._dav.POST("share/", + ("cmd=" + escape(json) + + "&uid=" + escape(id.username) + + "&password=" + escape(id.password)), + self.cb); let xhr = yield; let retval; diff --git a/services/sync/tests/unit/test_sharing.js b/services/sync/tests/unit/test_sharing.js index e18f6de3be95..c3944a871688 100644 --- a/services/sync/tests/unit/test_sharing.js +++ b/services/sync/tests/unit/test_sharing.js @@ -1,11 +1,18 @@ Cu.import("resource://weave/sharing.js"); Cu.import("resource://weave/util.js"); +Cu.import("resource://weave/identity.js"); function runTestGenerator() { let self = yield; + ID.set("blarg", new Identity("realm", "myusername", "mypass")); let fakeDav = { + identity: "blarg", POST: function fakeDav_POST(url, data, callback) { + do_check_true(data.indexOf("uid=myusername") != -1); + do_check_true(data.indexOf("password=mypass") != -1); + do_check_true(data.indexOf("/fake/dir") != -1); + do_check_true(data.indexOf("johndoe") != -1); let result = {status: 200, responseText: "OK"}; Utils.makeTimerForCall(function() { callback(result); }); }