forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathformToJSONSpec.coffee
More file actions
70 lines (62 loc) · 2.23 KB
/
Copy pathformToJSONSpec.coffee
File metadata and controls
70 lines (62 loc) · 2.23 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
#
# Copyright (C) 2012 - present Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
define [
'jquery'
'jquery.toJSON'
], ($) ->
# TODO: share code with 'unflatten' module
$datepickerEl = ->
$ """
<input type='text' name='date' class='datetime_field_enabled'/>
"""
QUnit.module 'jquery.toJSON',
setup: ->
@form = $ '<form/>'
@form.html """
<input type="text" name="foo" value="foo">
<input type="text" name="arr[]" value="1">
<input type="text" name="arr[]" value="2">
<input type="text" name="nested[foo]" value="nested[foo]">
<input type="text" name="nested[bar]" value="nested[bar]">
<input type="text" name="nested[baz][qux]" value="nested[baz][qux]">
<input type="text" name="nested[arr][]" value="1">
<input type="text" name="nested[arr][]" value="2">
"""
test "serializes to a JSON string correctly", ->
expected =
foo: 'foo'
arr: ['1','2']
nested:
foo: 'nested[foo]'
bar: 'nested[bar]'
baz:
qux: 'nested[baz][qux]'
arr: ['1','2']
equal JSON.stringify(expected), JSON.stringify(@form)
test """
returns null if element with datetime_field enabled class has undefined
for $.data( 'date' )
""", ->
@form.prepend $datepickerEl()
strictEqual @form.toJSON().date, null
test "returns date object for form element with datetime_field_enabled",->
$dateEl = $datepickerEl()
@form.prepend $dateEl
date = Date.now()
$dateEl.data 'date', date
$dateEl.val(date)
strictEqual @form.toJSON().date, date