UNPKG

avalon2

Version:

an elegant efficient express mvvm framework

80 lines (75 loc) 2.96 kB
import { avalon } from '../../src/seed/core' import { getOption, getDuplexType } from '../../src/dom/val/compact' describe('value', function () { var a, b, c, d, e, f beforeEach(function () { a = document.createElement("option"); var div = document.createElement('div') div.innerHTML = '<input type="radio" /><input type="checkbox" />' b = div.children[0] c = div.children[1] d = document.createElement('textarea') e = document.createElement('select') f = document.createElement('input') }) it('option', function () { a[textProp] = ' 111 ' expect(getOption(a)).toBe('111') a.setAttribute('value', ' 222 ') expect(getOption(a)).toBe(' 222 ') }) it('getDuplexType', function () { expect(getDuplexType(a)).toBe('option') expect(getDuplexType(b)).toBe('checked') expect(getDuplexType(c)).toBe('checked') expect(getDuplexType(d)).toBe('textarea') expect(getDuplexType(e)).toBe('select') expect(getDuplexType(f)).toBe('text') }) it('fn.val', function () { expect(avalon(a).val()).toBe('') avalon(a).val(333) expect(avalon(a).val()).toBe('333') avalon(f).val('dd') expect(avalon(f).val()).toBe('dd') e.options.add(new Option("aa","111")) e.options.add(new Option("bb","222")) e.options.add(new Option("cc","333")) expect( avalon(e).val() ).toBe('111') avalon(e).val('222') expect( avalon(e).val() ).toBe('222') expect( e.children[1].selected ).toBe(true) e.multiple = true e.options.add(new Option("dd","444")) e.children[0].disabled = true expect( avalon(e).val() ).toEqual(['222']) avalon(e).val([]) expect( e.children[1].selected ).toBe(false) }) it('处理optgroup', function () { var div = document.createElement('div') div.innerHTML = heredoc(function(){ /* <select multiple=true > <optgroup> <option selected>111</option> <option value='222' selected>2222</option> <option>333</option> </optgroup> <optgroup> <option selected='true' disabled='disabled' >444</option> <option value='fff' selected>hhh</option> <option>kkk</option> </optgroup> <optgroup disabled='disabled'> <option selected >5555</option> <option selected >6666</option> <option>777</option> </optgroup> </select> */ }) var el = div.getElementsByTagName('select')[0] expect(avalon(el).val()).toEqual(['111','222','fff']) }) })