Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Romain Courteaud
jio
Commits
09252852
Commit
09252852
authored
Sep 27, 2013
by
Tristan Cavelier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
davstorage updated to use RSVP
parent
44b3186d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
74 deletions
+71
-74
src/jio.storage/davstorage.js
src/jio.storage/davstorage.js
+39
-38
test/jio.storage/davstorage.livetests.html
test/jio.storage/davstorage.livetests.html
+1
-1
test/jio.storage/davstorage.tests.js
test/jio.storage/davstorage.tests.js
+31
-35
No files found.
src/jio.storage/davstorage.js
View file @
09252852
...
...
@@ -5,7 +5,7 @@
*/
/*jslint indent: 2, maxlen: 80, nomen: true, regexp: true, unparam: true */
/*global define, window, jIO,
promy
, btoa, DOMParser, Blob */
/*global define, window, jIO,
RSVP
, btoa, DOMParser, Blob */
// JIO Dav Storage Description :
// {
...
...
@@ -45,8 +45,8 @@
return
define
(
dependencies
,
module
);
}
window
.
dav_storage
=
{};
module
(
window
.
dav_storage
,
promy
,
jIO
);
}([
'
exports
'
,
'
promy
'
,
'
jio
'
],
function
(
exports
,
promy
,
jIO
)
{
module
(
window
.
dav_storage
,
RSVP
,
jIO
);
}([
'
exports
'
,
'
rsvp
'
,
'
jio
'
],
function
(
exports
,
RSVP
,
jIO
)
{
"
use strict
"
;
/**
...
...
@@ -167,13 +167,11 @@
}
function
promiseSucceed
(
promise
)
{
var
deferred
=
new
promy
.
Deferred
();
promise
.
then
(
deferred
.
resolve
.
bind
(
deferred
),
deferred
.
resolve
.
bind
(
deferred
),
deferred
.
notify
.
bind
(
deferred
)
);
return
deferred
.
promise
;
return
new
RSVP
.
Promise
(
function
(
resolve
,
reject
,
notify
)
{
promise
.
then
(
resolve
,
reject
,
notify
);
},
function
()
{
promise
.
cancel
();
});
}
/**
...
...
@@ -265,7 +263,7 @@
return
{
"
target
"
:
{
"
status
"
:
e
.
target
.
status
,
"
statusText
"
:
e
.
target
.
statusText
,
"
response
"
:
JSON
.
parse
(
e
.
target
.
response
)
"
response
"
:
JSON
.
parse
(
e
.
target
.
response
Text
)
}};
}
catch
(
err
)
{
throw
{
"
target
"
:
{
...
...
@@ -284,6 +282,13 @@
null
,
this
.
_login
);
// .then(function (v) { // for sinon js compatibility
// return {"target": {
// "status": v.target.status,
// "statusText": v.target.statusText,
// "response": new Blob([v.target.responseText])
// }};
// });
};
DavStorage
.
prototype
.
_remove
=
function
(
param
)
{
...
...
@@ -316,7 +321,7 @@
this
.
_login
).
then
(
function
(
e
)
{
var
i
,
rows
=
[],
row
,
responses
=
new
DOMParser
().
parseFromString
(
e
.
target
.
response
,
e
.
target
.
response
Text
,
"
text/xml
"
).
querySelectorAll
(
"
D
\\
:response, response
"
...
...
@@ -401,8 +406,7 @@
o
.
notify_message
=
"
Updating metadata
"
;
o
.
error_message
=
"
DavStorage, unable to update document.
"
;
o
.
percentage
=
[
30
,
100
];
this
.
_put
(
metadata
).
progress
(
o
.
notifyProgress
).
done
(
o
.
success
).
fail
(
o
.
reject
);
this
.
_put
(
metadata
).
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
}.
bind
(
this
),
errorDocumentExists
:
function
(
e
)
{
command
.
error
(
...
...
@@ -422,8 +426,7 @@
o
.
percentage
=
[
30
,
100
];
o
.
notify_message
=
"
Updating metadata
"
;
o
.
error_message
=
"
DavStorage, unable to create document.
"
;
this
.
_put
(
metadata
).
progress
(
o
.
notifyProgress
).
done
(
o
.
success
).
fail
(
o
.
reject
);
this
.
_put
(
metadata
).
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
}.
bind
(
this
),
success
:
function
(
e
)
{
command
.
success
(
e
.
target
.
status
,
{
"
id
"
:
metadata
.
_id
});
...
...
@@ -437,9 +440,11 @@
}
};
this
.
_get
(
metadata
).
progress
(
o
.
notifyProgress
).
done
(
method
===
'
post
'
?
o
.
errorDocumentExists
:
o
.
putMetadata
).
fail
(
o
.
putMetadataIfPossible
);
this
.
_get
(
metadata
).
then
(
method
===
'
post
'
?
o
.
errorDocumentExists
:
o
.
putMetadata
,
o
.
putMetadataIfPossible
,
o
.
notifyProgress
);
};
/**
...
...
@@ -481,9 +486,6 @@
percentage
:
[
0
,
30
],
notify_message
:
"
Getting metadata
"
,
notifyProgress
:
function
(
e
)
{
if
(
e
===
null
)
{
return
;
}
command
.
notify
({
"
method
"
:
"
putAttachment
"
,
"
message
"
:
o
.
notify_message
,
...
...
@@ -498,15 +500,15 @@
o
.
percentage
=
[
30
,
70
];
o
.
notify_message
=
"
Putting attachment
"
;
o
.
remote_metadata
=
e
.
target
.
response
;
return
promy
.
join
(
return
RSVP
.
all
([
this
.
_putAttachment
(
param
),
jIO
.
util
.
readBlobAsBinaryString
(
param
.
_blob
)
).
then
(
null
,
null
,
function
(
e
)
{
]
).
then
(
null
,
null
,
function
(
e
)
{
// propagate only putAttachment progress
if
(
e
.
index
===
0
)
{
return
e
.
answer
;
return
e
.
value
;
}
return
null
;
throw
null
;
});
}.
bind
(
this
),
putMetadata
:
function
(
answers
)
{
...
...
@@ -538,7 +540,7 @@
this
.
_get
(
param
).
then
(
o
.
putAttachmentAndReadBlob
).
then
(
o
.
putMetadata
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyProgress
);
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
};
/**
...
...
@@ -572,8 +574,7 @@
}
};
this
.
_get
(
param
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyGetProgress
);
this
.
_get
(
param
).
then
(
o
.
success
,
o
.
reject
,
o
.
notifyGetProgress
);
};
/**
...
...
@@ -634,7 +635,7 @@
this
.
_get
(
param
).
then
(
o
.
getAttachment
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyProgress
);
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
};
/**
...
...
@@ -691,8 +692,8 @@
}
o
.
count
=
0
;
o
.
nb_requests
=
requests
.
length
;
return
promy
.
join
.
apply
(
null
,
requests
).
then
(
null
,
null
,
function
(
e
)
{
if
(
e
.
answer
.
loaded
===
e
.
answer
.
total
)
{
return
RSVP
.
all
(
requests
).
then
(
null
,
null
,
function
(
e
)
{
if
(
e
.
value
.
loaded
===
e
.
value
.
total
)
{
o
.
count
+=
1
;
command
.
notify
({
"
method
"
:
"
remove
"
,
...
...
@@ -723,7 +724,7 @@
this
.
_get
(
param
).
then
(
o
.
removeDocument
).
then
(
o
.
removeAllAttachments
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyProgress
);
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
};
/**
...
...
@@ -797,7 +798,7 @@
this
.
_get
(
param
).
then
(
o
.
updateMetadata
).
then
(
o
.
removeAttachment
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyProgress
);
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
};
/**
...
...
@@ -843,8 +844,8 @@
o
.
nb_requests
=
requests
.
length
;
o
.
error_message
=
"
DavStorage, an error occured while
"
+
"
getting document metadata
"
;
return
promy
.
join
.
apply
(
null
,
requests
).
then
(
null
,
null
,
function
(
e
)
{
if
(
e
.
answer
.
loaded
===
e
.
answer
.
total
)
{
return
RSVP
.
all
(
requests
).
then
(
null
,
null
,
function
(
e
)
{
if
(
e
.
value
.
loaded
===
e
.
value
.
total
)
{
o
.
count
+=
1
;
command
.
notify
({
"
method
"
:
"
allDocs
"
,
...
...
@@ -857,7 +858,7 @@
)
});
}
return
null
;
throw
null
;
});
}.
bind
(
this
),
success
:
function
()
{
...
...
@@ -876,7 +877,7 @@
this
.
_allDocs
(
param
,
options
).
then
(
o
.
getAllMetadataIfNecessary
).
done
(
o
.
success
).
fail
(
o
.
reject
).
progress
(
o
.
notifyProgress
);
then
(
o
.
success
,
o
.
reject
,
o
.
notifyProgress
);
};
jIO
.
addStorage
(
'
dav
'
,
DavStorage
);
...
...
test/jio.storage/davstorage.livetests.html
View file @
09252852
...
...
@@ -6,7 +6,7 @@
<link
rel=
"stylesheet"
href=
"../../lib/qunit/qunit.css"
/>
<script
src=
"../../lib/qunit/qunit.js"
></script>
<script
src=
"../../
src/promy/promy
.js"
></script>
<script
src=
"../../
lib/rsvp/rsvp-custom
.js"
></script>
<script
src=
"../../src/sha256.amd.js"
></script>
<script
src=
"../../jio.js"
></script>
<script
src=
"../../complex_queries.js"
></script>
...
...
test/jio.storage/davstorage.tests.js
View file @
09252852
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global module, test, stop, start, expect, ok, deepEqual, location, sinon,
davstorage_spec,
promy
, jIO, test_util, dav_storage, btoa */
davstorage_spec,
RSVP
, jIO, test_util, dav_storage, btoa */
(
function
()
{
"
use strict
"
;
...
...
@@ -25,13 +25,11 @@
module
(
"
Dav Storage
"
);
function
success
(
promise
)
{
var
deferred
=
new
promy
.
Deferred
();
promise
.
then
(
deferred
.
resolve
.
bind
(
deferred
),
deferred
.
resolve
.
bind
(
deferred
),
deferred
.
notify
.
bind
(
deferred
)
);
return
deferred
.
promise
;
return
new
RSVP
.
Promise
(
function
(
resolve
,
reject
,
notify
)
{
promise
.
then
(
resolve
,
resolve
,
notify
);
},
function
()
{
promise
.
cancel
();
});
}
/**
...
...
@@ -940,59 +938,57 @@
// # Post new documents, list them and remove them
// post a 201
postNewDocument
().
done
(
postNewDocumentTest
).
postNewDocument
().
then
(
postNewDocumentTest
).
// get 200
then
(
getCreatedDocument
).
done
(
getCreatedDocumentTest
).
then
(
getCreatedDocument
).
then
(
getCreatedDocumentTest
).
// post b 201
then
(
postSpecificDocument
).
done
(
postSpecificDocumentTest
).
then
(
postSpecificDocument
).
then
(
postSpecificDocumentTest
).
// allD 200 2 documents
then
(
listDocuments
).
done
(
list2DocumentsTest
).
then
(
listDocuments
).
then
(
list2DocumentsTest
).
// remove a 204
then
(
removeCreatedDocument
).
done
(
removeCreatedDocumentTest
).
then
(
removeCreatedDocument
).
then
(
removeCreatedDocumentTest
).
// remove b 204
then
(
removeSpecificDocument
).
done
(
removeSpecificDocumentTest
).
then
(
removeSpecificDocument
).
then
(
removeSpecificDocumentTest
).
// allD 200 empty storage
then
(
listEmptyStorage
).
done
(
listEmptyStorageTest
).
then
(
listEmptyStorage
).
then
(
listEmptyStorageTest
).
// # Create and update documents, and some attachment and remove them
// put 201
then
(
putNewDocument
).
done
(
putNewDocumentTest
).
then
(
putNewDocument
).
then
(
putNewDocumentTest
).
// get 200
then
(
getCreatedDocument2
).
done
(
getCreatedDocument2Test
).
then
(
getCreatedDocument2
).
then
(
getCreatedDocument2Test
).
// post 409
then
(
postSameDocument
).
done
(
postSameDocumentTest
).
then
(
postSameDocument
).
then
(
postSameDocumentTest
).
// putA a 204
then
(
createAttachment
).
done
(
createAttachmentTest
).
then
(
createAttachment
).
then
(
createAttachmentTest
).
// putA a 204
then
(
updateAttachment
).
done
(
updateAttachmentTest
).
then
(
updateAttachment
).
then
(
updateAttachmentTest
).
// putA b 204
then
(
createAnotherAttachment
).
done
(
createAnotherAttachmentTest
).
then
(
createAnotherAttachment
).
then
(
createAnotherAttachmentTest
).
// put 204
then
(
updateLastDocument
).
done
(
updateLastDocumentTest
).
then
(
updateLastDocument
).
then
(
updateLastDocumentTest
).
// getA a 200
then
(
getFirstAttachment
).
then
(
getFirstAttachmentTest
).
then
(
getFirstAttachment
).
then
(
getFirstAttachmentTest
).
// getA b 200
then
(
getSecondAttachment
).
then
(
getSecondAttachmentTest
).
then
(
getSecondAttachment
).
then
(
getSecondAttachmentTest
).
// get 200
then
(
getLastDocument
).
done
(
getLastDocumentTest
).
then
(
getLastDocument
).
then
(
getLastDocumentTest
).
// removeA b 204
then
(
removeSecondAttachment
).
done
(
removeSecondAttachmentTest
).
then
(
removeSecondAttachment
).
then
(
removeSecondAttachmentTest
).
// getA b 404
then
(
getInexistentSecondAttachment
).
done
(
getInexistentSecondAttachmentTest
).
then
(
getInexistentSecondAttachmentTest
).
// get 200
then
(
getOneAttachmentDocument
).
done
(
getOneAttachmentDocumentTest
).
then
(
getOneAttachmentDocument
).
then
(
getOneAttachmentDocumentTest
).
// removeA b 404
then
(
removeSecondAttachmentAgain
).
done
(
removeSecondAttachmentAgainTest
).
then
(
removeSecondAttachmentAgain
).
then
(
removeSecondAttachmentAgainTest
).
// remove 204
then
(
removeDocument
).
done
(
removeDocumentTest
).
then
(
removeDocument
).
then
(
removeDocumentTest
).
// getA a 404
then
(
getInexistentFirstAttachment
).
done
(
getInexistentFirstAttachmentTest
).
then
(
getInexistentFirstAttachment
).
then
(
getInexistentFirstAttachmentTest
).
// get 404
then
(
getInexistentDocument
).
done
(
getInexistentDocumentTest
).
then
(
getInexistentDocument
).
then
(
getInexistentDocumentTest
).
// remove 404
then
(
removeInexistentDocument
).
done
(
removeInexistentDocumentTest
).
then
(
removeInexistentDocument
).
then
(
removeInexistentDocumentTest
).
// check 204
//then(checkDocument).done(checkDocumentTest).
//then(checkStorage).done(checkStorageTest).
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment