Add "complete" callback support for addShare
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
parent
488020cf2e
commit
6e9f49f397
2 changed files with 57 additions and 0 deletions
|
@ -179,6 +179,10 @@
|
|||
url: this._getUrl('shares'),
|
||||
data: attributes,
|
||||
dataType: 'json'
|
||||
}).always(function() {
|
||||
if (_.isFunction(options.complete)) {
|
||||
options.complete(self);
|
||||
}
|
||||
}).done(function() {
|
||||
self.fetch().done(function() {
|
||||
if (_.isFunction(options.success)) {
|
||||
|
|
|
@ -670,6 +670,30 @@ describe('OC.Share.ShareItemModel', function() {
|
|||
shareWith: 'group1'
|
||||
});
|
||||
});
|
||||
it('calls complete handler before refreshing the model', function() {
|
||||
var completeStub = sinon.stub();
|
||||
model.addShare({
|
||||
shareType: OC.Share.SHARE_TYPE_GROUP,
|
||||
shareWith: 'group1'
|
||||
}, {
|
||||
complete: completeStub
|
||||
});
|
||||
|
||||
expect(fakeServer.requests.length).toEqual(1);
|
||||
fakeServer.requests[0].respond(
|
||||
200,
|
||||
{ 'Content-Type': 'application/json' },
|
||||
JSON.stringify({ })
|
||||
);
|
||||
|
||||
expect(completeStub.calledOnce).toEqual(true);
|
||||
expect(completeStub.lastCall.args[0]).toEqual(model);
|
||||
|
||||
fetchReshareDeferred.resolve(makeOcsResponse([]));
|
||||
fetchSharesDeferred.resolve(makeOcsResponse([]));
|
||||
|
||||
expect(completeStub.calledOnce).toEqual(true);
|
||||
});
|
||||
it('calls success handler after refreshing the model', function() {
|
||||
var successStub = sinon.stub();
|
||||
model.addShare({
|
||||
|
@ -694,6 +718,35 @@ describe('OC.Share.ShareItemModel', function() {
|
|||
expect(successStub.calledOnce).toEqual(true);
|
||||
expect(successStub.lastCall.args[0]).toEqual(model);
|
||||
});
|
||||
it('calls complete handler before error handler', function() {
|
||||
var completeStub = sinon.stub();
|
||||
var errorStub = sinon.stub();
|
||||
model.addShare({
|
||||
shareType: OC.Share.SHARE_TYPE_GROUP,
|
||||
shareWith: 'group1'
|
||||
}, {
|
||||
complete: completeStub,
|
||||
error: errorStub
|
||||
});
|
||||
|
||||
expect(fakeServer.requests.length).toEqual(1);
|
||||
fakeServer.requests[0].respond(
|
||||
400,
|
||||
{ 'Content-Type': 'application/json' },
|
||||
JSON.stringify({
|
||||
ocs: {
|
||||
meta: {
|
||||
message: 'Some error message'
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
expect(completeStub.calledOnce).toEqual(true);
|
||||
expect(completeStub.lastCall.args[0]).toEqual(model);
|
||||
expect(errorStub.calledOnce).toEqual(true);
|
||||
expect(completeStub.calledBefore(errorStub)).toEqual(true);
|
||||
});
|
||||
it('calls error handler with error message', function() {
|
||||
var errorStub = sinon.stub();
|
||||
model.addShare({
|
||||
|
|
Loading…
Reference in a new issue