 				.calledWithMatch(project_id, projectHistoryId, userId, changesMatcher)
 				.should.equal true
 
+	describe 'copyFileFromExistingProjectWithProject, with linkedFileData', ->
+
+		beforeEach ->
+			@oldProject_id = "123kljadas"
+			@oldFileRef = {
+				_id:"oldFileRef",
+				name:@fileName,
+				linkedFileData: @linkedFileData
+			}
+			@ProjectEntityMongoUpdateHandler._confirmFolder = sinon.stub().yields(folder_id)
+			@ProjectEntityMongoUpdateHandler._putElement = sinon.stub().yields(null, {path:{fileSystem: @fileSystemPath}})
+
+			@ProjectEntityUpdateHandler.copyFileFromExistingProjectWithProject @project, folder_id, @oldProject_id, @oldFileRef, userId, @callback
+
+		it 'should copy the file in FileStoreHandler', ->
+			@FileStoreHandler.copyFile
+				.calledWith(@oldProject_id, @oldFileRef._id, project_id, file_id)
+				.should.equal true
+
+		it 'should put file into folder by calling put element, with the linkedFileData', ->
+			@ProjectEntityMongoUpdateHandler._putElement
+				.calledWithMatch(
+					@project,
+					folder_id,
+					{ _id: file_id, name: @fileName, linkedFileData: @linkedFileData},
+					"file"
+				)
+				.should.equal true
+
 	describe 'updateDocLines', ->
 		beforeEach ->
 			@path = "/somewhere/something.tex"

		beforeEach ->
			@path = "/path/to/file"

			@newFile = {_id: file_id, rev: 0, name: @fileName}
			@TpdsUpdateSender.addFile = sinon.stub().yields()
			@ProjectEntityMongoUpdateHandler.addFile = sinon.stub().yields(null, {path: fileSystem: @path}, @project)
			@ProjectEntityUpdateHandler.addFile project_id, folder_id, @fileName, @fileSystemPath, @linkedFileData, userId, @callback

			@newFileUrl = "new-file-url"
			@FileStoreHandler.uploadFileFromDisk = sinon.stub().yields(null, @newFileUrl)

			@newFile = _id: new_file_id, name: "dummy-upload-filename", rev: 0, linkedFileData: @linkedFileData
			@oldFile = _id: file_id
			@path = "/path/to/file"
			@ProjectEntityMongoUpdateHandler._insertDeletedFileReference = sinon.stub().yields()
