mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-04 21:01:06 -05:00
178 lines
6.1 KiB
CoffeeScript
178 lines
6.1 KiB
CoffeeScript
#require '../common'
|
|
#
|
|
## Doesn't work on Travis. Need to figure out why, probably by having the
|
|
## url not depend on some external resource.
|
|
#mongoose = require 'mongoose'
|
|
#request = require '../request'
|
|
#
|
|
#xdescribe '/file', ->
|
|
# url = getURL('/file')
|
|
# files = []
|
|
# options = {
|
|
# uri: url
|
|
# json: {
|
|
# # url: 'http://scotterickson.info/images/where-are-you.jpg'
|
|
# url: 'http://fc07.deviantart.net/fs37/f/2008/283/5/1/Chu_Chu_Pikachu_by_angelishi.gif'
|
|
# filename: 'where-are-you.jpg'
|
|
# mimetype: 'image/jpeg'
|
|
# description: 'None!'
|
|
# }
|
|
# }
|
|
# filepath = 'tmp/file' # TODO Warning hard coded path !!!
|
|
#
|
|
# jsonOptions= {
|
|
# path: 'my_path'
|
|
# postName: 'my_buffer'
|
|
# filename: 'ittybitty.data'
|
|
# mimetype: 'application/octet-stream'
|
|
# description: 'rando-info'
|
|
# # my_buffer_url: 'http://scotterickson.info/images/where-are-you.jpg'
|
|
# my_buffer_url: 'http://fc07.deviantart.net/fs37/f/2008/283/5/1/Chu_Chu_Pikachu_by_angelishi.gif'
|
|
# }
|
|
#
|
|
# allowHeader = 'GET, POST'
|
|
#
|
|
# it 'preparing test : deletes all the files first', (done) ->
|
|
# dropGridFS ->
|
|
# done()
|
|
#
|
|
# it 'can\'t be created if invalid (property path is required)', (done) ->
|
|
# func = (err, res, body) ->
|
|
# expect(res.statusCode).toBe(422)
|
|
# done()
|
|
#
|
|
# loginAdmin ->
|
|
# request.post(options, func)
|
|
#
|
|
# it 'can be created by an admin', (done) ->
|
|
# func = (err, res, body) ->
|
|
# expect(res.statusCode).toBe(200)
|
|
# expect(body._id).toBeDefined()
|
|
# expect(body.filename).toBe(options.json.filename)
|
|
# expect(body.contentType).toBe(options.json.mimetype)
|
|
# expect(body.length).toBeDefined()
|
|
# expect(body.uploadDate).toBeDefined()
|
|
# expect(body.metadata).toBeDefined()
|
|
# expect(body.metadata.name).toBeDefined()
|
|
# expect(body.metadata.path).toBe(options.json.path)
|
|
# expect(body.metadata.creator).toBeDefined()
|
|
# expect(body.metadata.description).toBe(options.json.description)
|
|
# expect(body.md5).toBeDefined()
|
|
# files.push(body)
|
|
# done()
|
|
#
|
|
# options.json.path = filepath
|
|
# request.post(options, func)
|
|
#
|
|
# it 'can be read by an admin.', (done) ->
|
|
# request.get {uri: url+'/'+files[0]._id}, (err, res) ->
|
|
# expect(res.statusCode).toBe(200)
|
|
# expect(res.headers['content-type']).toBe(files[0].contentType)
|
|
# done()
|
|
#
|
|
# it 'returns 404 for missing files', (done) ->
|
|
# id = '000000000000000000000000'
|
|
# request.get {uri: url+'/'+id}, (err, res) ->
|
|
# expect(res.statusCode).toBe(404)
|
|
# done()
|
|
#
|
|
# it 'returns 404 for invalid ids', (done) ->
|
|
# request.get {uri: url+'/thiswillnotwork'}, (err, res) ->
|
|
# expect(res.statusCode).toBe(404)
|
|
# done()
|
|
#
|
|
# it 'can be created directly with form parameters', (done) ->
|
|
# options2 = {
|
|
# uri: url
|
|
# }
|
|
#
|
|
# func = (err, res, body) ->
|
|
# expect(res.statusCode).toBe(200)
|
|
# body = JSON.parse(body)
|
|
# expect(body._id).toBeDefined()
|
|
# expect(body.filename).toBe(jsonOptions.filename)
|
|
# expect(body.contentType).toBe(jsonOptions.mimetype)
|
|
# expect(body.length).toBeDefined()
|
|
# expect(body.uploadDate).toBeDefined()
|
|
# expect(body.metadata).toBeDefined()
|
|
# expect(body.metadata.name).toBeDefined()
|
|
# expect(body.metadata.path).toBe(jsonOptions.path)
|
|
# expect(body.metadata.creator).toBeDefined()
|
|
# expect(body.metadata.description).toBe(jsonOptions.description)
|
|
# expect(body.md5).toBeDefined()
|
|
# files.push(body)
|
|
# done()
|
|
#
|
|
# # the only way I could figure out how to get request to do what I wanted...
|
|
# r = request.post(options2, func)
|
|
# form = r.form()
|
|
# form.append('path', jsonOptions.path)
|
|
# form.append('postName', jsonOptions.postName)
|
|
# form.append('filename', jsonOptions.filename)
|
|
# form.append('mimetype', jsonOptions.mimetype)
|
|
# form.append('description', jsonOptions.description)
|
|
# form.append('my_buffer', request(jsonOptions.my_buffer_url))
|
|
#
|
|
# it 'created directly, can be read', (done) ->
|
|
# request.get {uri: url+'/'+files[1]._id}, (err, res) ->
|
|
# expect(res.statusCode).toBe(200)
|
|
# expect(res.headers['content-type']).toBe(files[1].contentType)
|
|
# done()
|
|
#
|
|
# it 'does not overwrite existing files', (done) ->
|
|
# options.json.description = 'Face'
|
|
#
|
|
# func = (err, res, body) ->
|
|
# expect(res.statusCode).toBe(409)
|
|
# collection = mongoose.connection.db.collection('media.files')
|
|
# collection.find({}).toArray (err, results) ->
|
|
# # ittybitty.data, and just one Where are you.jpg
|
|
# expect(results.length).toBe(2)
|
|
# for f in results
|
|
# expect(f.metadata.description).not.toBe('Face')
|
|
# done()
|
|
#
|
|
# request.post(options, func)
|
|
#
|
|
# it 'does overwrite existing files if force is true', (done) ->
|
|
# options.json.force = 'true' # TODO ask why it's a string and not a boolean ?
|
|
#
|
|
# func = (err, res, body) ->
|
|
# expect(res.statusCode).toBe(200)
|
|
# collection = mongoose.connection.db.collection('media.files')
|
|
# collection.find({}).toArray (err, results) ->
|
|
# # ittybitty.data, and just one Where are you.jpg
|
|
# expect(results.length).toBe(2)
|
|
# hit = false
|
|
# for f in results
|
|
# hit = true if f.metadata.description is 'Face'
|
|
# expect(hit).toBe(true)
|
|
# done()
|
|
#
|
|
# request.post(options, func)
|
|
#
|
|
# it ' can\'t be requested with HTTP PATCH method', (done) ->
|
|
# request {method: 'patch', uri: url}, (err, res) ->
|
|
# expect(res.statusCode).toBe(405)
|
|
# expect(res.headers.allow).toBe(allowHeader)
|
|
# done()
|
|
#
|
|
# it ' can\'t be requested with HTTP PUT method', (done) ->
|
|
# request.put {uri: url}, (err, res) ->
|
|
# expect(res.statusCode).toBe(405)
|
|
# expect(res.headers.allow).toBe(allowHeader)
|
|
# done()
|
|
#
|
|
# it ' can\'t be requested with HTTP HEAD method', (done) ->
|
|
# request.head {uri: url}, (err, res) ->
|
|
# expect(res.statusCode).toBe(405)
|
|
# expect(res.headers.allow).toBe(allowHeader)
|
|
# done()
|
|
#
|
|
# it ' can\'t be requested with HTTP DEL method', (done) ->
|
|
# request.del {uri: url}, (err, res) ->
|
|
# expect(res.statusCode).toBe(405)
|
|
# expect(res.headers.allow).toBe(allowHeader)
|
|
# done()
|
|
#
|
|
## TODO: test server errors, see what they do
|