nebulab-dropbox
Version:
Client library for the Dropbox API
115 lines (92 loc) • 4.36 kB
text/coffeescript
describe 'Dropbox.Http.UploadCursor', ->
describe '.parse', ->
describe 'on the API example', ->
beforeEach ->
cursorData = {
"upload_id": "v0k84B0AT9fYkfMUp0sBTA",
"offset": 31337,
"expires": "Tue, 19 Jul 2011 21:55:38 +0000"
}
= Dropbox.Http.UploadCursor.parse cursorData
it 'parses tag correctly', ->
expect().to.have.property 'tag'
expect(.tag).to.equal 'v0k84B0AT9fYkfMUp0sBTA'
it 'parses offset correctly', ->
expect().to.have.property 'offset'
expect(.offset).to.equal 31337
it 'parses expiresAt correctly', ->
expect().to.have.property 'expiresAt'
expect(.expiresAt).to.be.instanceOf Date
expect([
'Tue, 19 Jul 2011 21:55:38 GMT', # every sane JS platform
'Tue, 19 Jul 2011 21:55:38 UTC' # Internet Explorer
]).to.contain(.expiresAt.toUTCString())
it 'round-trips through json / parse correctly', ->
newCursor = Dropbox.Http.UploadCursor.parse .json()
expect(newCursor).to.deep.equal
describe 'on a reference string', ->
beforeEach ->
rawRef = 'v0k84B0AT9fYkfMUp0sBTA'
= Dropbox.Http.UploadCursor.parse rawRef
it 'parses tag correctly', ->
expect().to.have.property 'tag'
expect(.tag).to.equal 'v0k84B0AT9fYkfMUp0sBTA'
it 'parses offset correctly', ->
expect().to.have.property 'offset'
expect(.offset).to.equal 0
it 'parses expiresAt correctly', ->
expect().to.have.property 'expiresAt'
expect(.expiresAt).to.be.instanceOf Date
expect(.expiresAt - (new Date())).to.be.below 1000
it 'round-trips through json / parse correctly', ->
newCursor = Dropbox.Http.UploadCursor.parse .json()
newCursor.json() # Get _json populated for newCursor.
expect(newCursor).to.deep.equal
it 'passes null through', ->
expect(Dropbox.Http.UploadCursor.parse(null)).to.equal null
it 'passes undefined through', ->
expect(Dropbox.Http.UploadCursor.parse(undefined)).to.equal undefined
describe '.constructor', ->
describe 'with no arguments', ->
beforeEach ->
= new Dropbox.Http.UploadCursor
it 'sets up tag correctly', ->
expect().to.have.property 'tag'
expect(.tag).to.equal null
it 'parses offset correctly', ->
expect().to.have.property 'offset'
expect(.offset).to.equal 0
it 'parses expiresAt correctly', ->
expect().to.have.property 'expiresAt'
expect(.expiresAt - (new Date())).to.be.below 1000
it 'round-trips through json / parse correctly', ->
newCursor = Dropbox.Http.UploadCursor.parse .json()
newCursor.json() # Get _json populated for newCursor.
expect(newCursor).to.deep.equal
describe '.replace', ->
beforeEach ->
= new Dropbox.Http.UploadCursor
describe 'on the API example', ->
beforeEach ->
cursorData = {
"upload_id": "v0k84B0AT9fYkfMUp0sBTA",
"offset": 31337,
"expires": "Tue, 19 Jul 2011 21:55:38 +0000"
}
.replace cursorData
it 'parses tag correctly', ->
expect().to.have.property 'tag'
expect(.tag).to.equal 'v0k84B0AT9fYkfMUp0sBTA'
it 'parses offset correctly', ->
expect().to.have.property 'offset'
expect(.offset).to.equal 31337
it 'parses expiresAt correctly', ->
expect().to.have.property 'expiresAt'
expect(.expiresAt).to.be.instanceOf Date
expect([
'Tue, 19 Jul 2011 21:55:38 GMT', # every sane JS platform
'Tue, 19 Jul 2011 21:55:38 UTC' # Internet Explorer
]).to.contain(.expiresAt.toUTCString())
it 'round-trips through json / parse correctly', ->
newCursor = Dropbox.Http.UploadCursor.parse .json()
expect(newCursor).to.deep.equal