github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/public/libs/vue-1.0.24/test/unit/specs/util/component_spec.js (about)

     1  var _ = require('src/util')
     2  
     3  describe('Util - component', function () {
     4    it('checkComponentAttr', function () {
     5      var el = document.createElement('component')
     6      var mockOptions = { components: {
     7        foo: {}
     8      }}
     9  
    10      // <component> with no is attr
    11      var res = _.checkComponentAttr(el, mockOptions)
    12      expect(res).toBeUndefined()
    13  
    14      // static <component is="...">
    15      el.setAttribute('is', 'foo')
    16      res = _.checkComponentAttr(el, mockOptions)
    17      expect(res.id).toBe('foo')
    18      expect(res.dynamic).toBeFalsy()
    19  
    20      // <component :is="...">
    21      el.setAttribute(':is', 'foo')
    22      res = _.checkComponentAttr(el, mockOptions)
    23      expect(res.id).toBe('foo')
    24      expect(res.dynamic).toBe(true)
    25  
    26      // <test is="...">
    27      el = document.createElement('test')
    28      el.setAttribute('is', 'foo')
    29      res = _.checkComponentAttr(el, mockOptions)
    30      expect(res.id).toBe('foo')
    31      expect(res.dynamic).toBeUndefined()
    32  
    33      // <test :is="...">
    34      el = document.createElement('test')
    35      el.setAttribute(':is', 'foo')
    36      res = _.checkComponentAttr(el, mockOptions)
    37      expect(res.id).toBe('foo')
    38      expect(res.dynamic).toBe(true)
    39  
    40      // custom element, not defined
    41      el = document.createElement('test')
    42      res = _.checkComponentAttr(el, mockOptions)
    43      expect(res).toBeUndefined()
    44  
    45      // custom element, defined
    46      el = document.createElement('foo')
    47      res = _.checkComponentAttr(el, mockOptions)
    48      expect(res.id).toBe('foo')
    49  
    50      // is on undefined custom element
    51      // should be preserved in case it is a native custom element usage
    52      el = document.createElement('test2')
    53      el.setAttribute('is', 'bar')
    54      res = _.checkComponentAttr(el, mockOptions)
    55      expect(res).toBeUndefined()
    56    })
    57  })