bind_spec.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var _ = require('../../../../../src/util')
  2. var def = require('../../../../../src/directives/public/bind')
  3. if (_.inBrowser) {
  4. describe('v-bind', function () {
  5. var el, dir
  6. beforeEach(function () {
  7. el = document.createElement('div')
  8. dir = {el: el}
  9. _.extend(dir, def)
  10. })
  11. it('normal attr', function () {
  12. dir.arg = 'test'
  13. dir.update('ok')
  14. expect(el.getAttribute('test')).toBe('ok')
  15. dir.update('again')
  16. expect(el.getAttribute('test')).toBe('again')
  17. dir.update(null)
  18. expect(el.hasAttribute('test')).toBe(false)
  19. dir.update(false)
  20. expect(el.hasAttribute('test')).toBe(false)
  21. dir.update(0)
  22. expect(el.getAttribute('test')).toBe('0')
  23. })
  24. it('should set property for input value', function () {
  25. dir.el = document.createElement('input')
  26. dir.arg = 'value'
  27. dir.update('what')
  28. expect(dir.el.value).toBe('what')
  29. dir.el = document.createElement('input')
  30. dir.el.type = 'checkbox'
  31. dir.arg = 'checked'
  32. expect(dir.el.checked).toBe(false)
  33. dir.update(true)
  34. expect(dir.el.checked).toBe(true)
  35. })
  36. it('xlink', function () {
  37. var xlinkNS = 'http://www.w3.org/1999/xlink'
  38. dir.arg = 'xlink:special'
  39. dir.update('ok')
  40. expect(el.getAttributeNS(xlinkNS, 'special')).toBe('ok')
  41. dir.update('again')
  42. expect(el.getAttributeNS(xlinkNS, 'special')).toBe('again')
  43. dir.update(null)
  44. expect(el.hasAttributeNS(xlinkNS, 'special')).toBe(false)
  45. })
  46. })
  47. }