Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
node_modules
/
@canvas
/
jquery
/
__tests__
/
Filename :
formToJSON.test.js
back
Copy
/* * 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/>. */ import $ from 'jquery' import '../jquery.toJSON' // TODO: share code with 'unflatten' module const $datepickerEl = () => $(`<input type='text' name='date' class='datetime_field_enabled'/>`) describe('jquery.toJSON', () => { let form beforeEach(() => { 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', () => { const expected = { foo: 'foo', arr: ['1', '2'], nested: { foo: 'nested[foo]', bar: 'nested[bar]', baz: { qux: 'nested[baz][qux]', }, arr: ['1', '2'], }, } expect(JSON.stringify(expected)).toBe(JSON.stringify(form)) }) test(`returns null if element with datetime_field enabled class has undefined for $.data( 'date' )`, () => { form.prepend($datepickerEl()) expect(form.toJSON().date).toBeNull() }) test('returns date object for form element with datetime_field_enabled', () => { const $dateEl = $datepickerEl() form.prepend($dateEl) const date = Date.now() $dateEl.data('date', date) $dateEl.val(date) expect(form.toJSON().date).toBe(date) }) })