forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubmitAssignmentHelperSpec.coffee
More file actions
115 lines (95 loc) · 5.03 KB
/
Copy pathsubmitAssignmentHelperSpec.coffee
File metadata and controls
115 lines (95 loc) · 5.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
define ['submit_assignment_helper','jquery'], (SubmitAssignmentHelper, $) ->
formHtml = """
<div id="form-container">
<form accept-charset="UTF-8" action="/courses/2/assignments/1/submissions" id="submit_online_url_form" method="post">
<input name="utf8" type="hidden" value="✓">
<input name="authenticity_token" type="hidden" value="auth_token"></div>
<input id="submission_submission_type" name="submission[submission_type]" type="hidden" value="online_url">
<input id="submission_url" name="submission[url]" style="min-width: 250px;" type="text">
<textarea class="submission_comment_textarea" id="submission_comment" name="submission[comment]"></textarea>
</form>
<form id="submit_form_external_tool_form">
<input id="external_tool_submission_type" name="submission[submission_type]" type="hidden" value="online_url">
<input id="external_tool_filename" name="submission[filename]" type="hidden">
<input id="external_tool_file_id" name="submission[attachment_ids]" type="hidden">
<input id="external_tool_url" name="submission[url]" type="hidden">
<input id="external_tool_content_type" name="submission[content_type]" type="hidden">
<span class="bad_ext_msg"></span>
</form>
<form accept-charset="UTF-8" action="/action" id="submit_online_upload_form" method="post">
<input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="token">
<input id="submission_submission_type" name="submission[submission_type]" type="hidden" value="online_upload">
<input id="submission_attachment_ids" name="submission[attachment_ids]" type="hidden" value=">
<input aria-labelledby="attachmentLabel" type="file" name="attachments[0][uploaded_data]" class="input-file">
<input aria-labelledby="attachmentLabel" type="file" name="attachments[-1][uploaded_data]" class="input-file">
</form>
</div>
"""
url = 'https://lti-tool-provider-example.herokuapp.com/messages/blti'
fileUrl = 'https://lti-tool-provider-example.herokuapp.com/test_file.txt'
contentItem = null
originalEnv = null
QUnit.module "SubmitAssignmentHelper",
setup: ->
$('#fixtures').append(formHtml)
contentItem =
'ext_canvas_visibility': 'users': [
'86157096483e6b3a50bfedc6bac902c0b20a824f'
]
'updateUrl': 'https://lti-tool-provider-example.herokuapp.com/messages/content-item'
'windowTarget': ''
'text': 'Arch Linux'
'title': 'It\'s amazing'
'url': url
'thumbnail':
'height': 128
'width': 128
'@id': 'http://www.runeaudio.com/assets/img/banner-archlinux.png'
'custom': 'What\'s black and white and red all over?': 'A sunburnt panda'
'placementAdvice':
'displayHeight': 600
'displayWidth': 800
'presentationDocumentTarget': 'iframe'
'mediaType': 'application/vnd.ims.lti.v1.ltilink'
'@type': 'LtiLinkItem'
'@id': 'https://lti-tool-provider-example.herokuapp.com/messages/blti'
'canvasURL': '/courses/2/external_tools/retrieve?display=borderless&url=https%3A%2F%2Flti-tool-provider-example.herokuapp.com%2Fmessages%2Fblti'
originalEnv = ENV
ENV.SUBMIT_ASSIGNMENT = ALLOWED_EXTENSIONS: [
'txt'
]
teardown: ->
$("#fixtures").html("")
ENV = originalEnv
test "correctly populates form values for LtiLinkItem", ->
SubmitAssignmentHelper.submitContentItem(contentItem)
equal $("#external_tool_url").val(), url
equal $("#external_tool_submission_type").val(), 'basic_lti_launch'
test "correctly populates form values for FileItem", ->
fileItem = contentItem
fileItem['@type'] = 'FileItem'
fileItem['@id'] = fileUrl
fileItem.url = fileUrl
SubmitAssignmentHelper.submitContentItem(fileItem)
equal $("#external_tool_url").val(), fileUrl
equal $("#external_tool_submission_type").val(), "online_url_to_file"
test "rejects unsupported file types", ->
unsupportedItem = contentItem
unsupportedItem['@type'] = 'FileItem'
unsupportedItem.url = 'https://lti-tool-provider-example.herokuapp.com/test_file.jpg'
result = SubmitAssignmentHelper.submitContentItem(unsupportedItem)
equal result, false
test "accepts supported file types", ->
supportedItem = contentItem
supportedItem['@type'] = 'FileItem'
supportedItem.url = fileUrl
result = SubmitAssignmentHelper.submitContentItem(supportedItem)
equal result, true
test "correctly populates form values for FileItem", ->
unsupportedItem = contentItem
unsupportedItem['@type'] = 'UnsupportedType'
result = SubmitAssignmentHelper.submitContentItem(unsupportedItem)
equal result, false
test "returns false if not given an item", ->
result = SubmitAssignmentHelper.submitContentItem(undefined)
equal result, false