oj
Version:
A unified templating language for the people. Thirsty people.
73 lines (57 loc) • 2.19 kB
text/coffeescript
# oj.CheckBox.coffee
# ==============================================================================
path = require 'path'
fs = require 'fs'
oj = require '../oj.js'
describe 'oj.CheckBox', ->
it 'exists', ->
assert oj.CheckBox != null, 'oj.CheckBox is null'
oj.CheckBox.should.be.a 'function'
it 'construct default', ->
control = oj.CheckBox()
expect(oj.isOJ control).to.equal true
expect(control.typeName).to.equal 'CheckBox'
expect(control.value).to.equal false
it 'construct with value:true', ->
control = oj.CheckBox value:true
expect(control.typeName).to.equal 'CheckBox'
expect(control.value).to.equal true
it 'construct with id', ->
id = 'my-id'
control = oj.CheckBox id:id
expect(control.id).to.equal id
expect(control.attributes.id).to.equal id
# it 'construct with class', ->
# cls = 'my-class'
# control = oj.CheckBox class:cls
# expect(control.class).to.equal cls
# expect(control.attributes.class).to.equal cls
# cls2 = 'my-class2'
# cls3 = 'my-class3'
# control.class = [cls2,cls3]
# expect(control.classes).to.deep.equal cls
it 'construct with name', ->
name = 'my-name'
control = oj.CheckBox name:name
expect(control.name).to.not.exist
expect(control.attributes.name).to.equal name
it 'compile html', ->
control = oj.CheckBox(value:true)
results = oj.compile html:true, dom:true, control
expect(results.html).to.contain '<input'
expect(results.html).to.not.contain 'id'
expect(results.html).to.contain 'class="oj-CheckBox"'
expect(results.html).to.contain 'checked="checked"'
it 'compile with new keyword', ->
control = null
htmlDiv = oj.toHTML ->
oj.div c:'test', ->
control = new oj.CheckBox value:true
return
expect(control.typeName).to.equal 'CheckBox'
expect(control.value).to.equal true
expect(htmlDiv).to.equal '<div class="test"></div>'
htmlDiv2 = oj.toHTML minify:true, ->
oj.div c:'test2', ->
control.emit()
expect(htmlDiv2).to.equal """<div class="test2"><input type="checkbox" checked="checked" class="#{control.attributes.class}"></div>"""