 				done()
 
 		it "should be able to delete the file", (done)->
+			@timeout(1000 * 20)
 			request.del @fileUrl, (err, response, body)=>
 				response.statusCode.should.equal 204
 				request.get @fileUrl, (err, response, body)=>
 					body.indexOf("NoSuchKey").should.not.equal -1
 					done()
 
+		it "should be able to copy files", (done)->
+			@timeout(1000 * 20)
+
+			newProjectID = "acceptence_tests_copyied_project"
+			newFileId = Math.random()
+			newFileUrl = "#{@filestoreUrl}/project/#{newProjectID}/file/#{newFileId}"
+			opts = 
+				uri: newFileUrl
+				json:
+					source:
+						project_id:"acceptence_tests"
+						file_id: @file_id
+			request.put opts, (err)=>
+				request.del @fileUrl, (err, response, body)=>
+					request.get newFileUrl, (err, response, body)=>
+						body.should.equal @constantFileContent
+						done()
 
 
 

	describe "with a file on the server", ->

		beforeEach (done)->
			@timeout(1000 * 5)
			@fileUrl = "#{@filestoreUrl}/project/acceptence_tests/file/#{Math.random()}"

			writeStream = request.post(@fileUrl)

			writeStream.on "end", =>
				done()
			fs.createReadStream(@localFileReadPath).pipe writeStream

		it "should be able get the file back", (done)->

request = require("request")
settings = require("settings-sharelatex")

describe "Filestore", ->

	before (done)->
		@localFileReadPath = "/tmp/filestore_acceptence_tests_file_read.txt"
