var _ = require('../../../../src/util') var templateParser = require('../../../../src/parse/template') var parse = templateParser.parse var testString = '
world
' if (_.inBrowser) { describe('Template Parser', function () { it('should return same if argument is already a fragment', function () { var frag = document.createDocumentFragment() var res = parse(frag) expect(res).toBe(frag) }) it('should return content if argument is a valid template node', function () { var templateNode = document.createElement('template') if (!templateNode.content) { // mock the content templateNode.content = document.createDocumentFragment() } var res = parse(templateNode) expect(res).toBe(templateNode.content) }) it('should parse if argument is a template string', function () { var res = parse(testString) expect(res instanceof DocumentFragment).toBeTruthy() expect(res.childNodes.length).toBe(2) expect(res.querySelector('.test').textContent).toBe('world') }) it('should work if the template string doesn\'t contain tags', function () { var res = parse('hello!') expect(res instanceof DocumentFragment).toBeTruthy() expect(res.childNodes.length).toBe(1) expect(res.firstChild.nodeType).toBe(3) // Text node }) it('should parse textContent if argument is a script node', function () { var node = document.createElement('script') node.textContent = testString var res = parse(node) expect(res instanceof DocumentFragment).toBeTruthy() expect(res.childNodes.length).toBe(2) expect(res.querySelector('.test').textContent).toBe('world') }) it('should parse innerHTML if argument is a normal node', function () { var node = document.createElement('div') node.innerHTML = testString var res = parse(node) expect(res instanceof DocumentFragment).toBeTruthy() expect(res.childNodes.length).toBe(2) expect(res.querySelector('.test').textContent).toBe('world') }) it('should retrieve and parse if argument is an id selector', function () { var node = document.createElement('script') node.setAttribute('id', 'template-test') node.setAttribute('type', 'x/template') node.textContent = testString document.head.appendChild(node) var res = parse('#template-test') expect(res instanceof DocumentFragment).toBeTruthy() expect(res.childNodes.length).toBe(2) expect(res.querySelector('.test').textContent).toBe('world') document.head.removeChild(node) }) it('should work for table elements', function () { var res = parse('