Example #1
0
    def test_self_close(self):
        html = Config({'options': {'output.selfClosingStyle': 'html'}})
        xhtml = Config({'options': {'output.selfClosingStyle': 'xhtml'}})
        xml = Config({'options': {'output.selfClosingStyle': 'xml'}})

        self.assertEqual(self_close(html), '')
        self.assertEqual(self_close(xhtml), ' /')
        self.assertEqual(self_close(xml), '/')
Example #2
0
    def test_attribute_name(self):
        as_is = Config({'options': {'output.attributeCase': ''}})
        upper = Config({'options': {'output.attributeCase': 'upper'}})
        lower = Config({'options': {'output.attributeCase': 'lower'}})

        self.assertEqual(attr_name('Foo', as_is), 'Foo')
        self.assertEqual(attr_name('bAr', as_is), 'bAr')

        self.assertEqual(attr_name('Foo', upper), 'FOO')
        self.assertEqual(attr_name('bAr', upper), 'BAR')

        self.assertEqual(attr_name('Foo', lower), 'foo')
        self.assertEqual(attr_name('bAr', lower), 'bar')
Example #3
0
    def test_profile_tag_name(self):
        as_is = Config({'options': {'output.tagCase': ''}})
        upper = Config({'options': {'output.tagCase': 'upper'}})
        lower = Config({'options': {'output.tagCase': 'lower'}})

        self.assertEqual(tag_name('Foo', as_is), 'Foo')
        self.assertEqual(tag_name('bAr', as_is), 'bAr')

        self.assertEqual(tag_name('Foo', upper), 'FOO')
        self.assertEqual(tag_name('bAr', upper), 'BAR')

        self.assertEqual(tag_name('Foo', lower), 'foo')
        self.assertEqual(tag_name('bAr', lower), 'bar')
Example #4
0
    def test_stream(self):
        conf = Config({'options': {'output.baseIndent': '>>'}})
        out = OutputStream(conf.options)

        out.push('aaa')
        self.assertEqual(out.value, 'aaa')
        self.assertEqual(out.line, 0)
        self.assertEqual(out.column, 3)
        self.assertEqual(out.offset, 3)

        out.push_string('bbb')
        self.assertEqual(out.value, 'aaabbb')
        self.assertEqual(out.line, 0)
        self.assertEqual(out.column, 6)
        self.assertEqual(out.offset, 6)

        # Add text with newlines
        out.push_string('ccc\nddd')
        self.assertEqual(out.value, 'aaabbbccc\n>>ddd')
        self.assertEqual(out.line, 1)
        self.assertEqual(out.column, 5)
        self.assertEqual(out.offset, 15)

        # Add newline with indent
        out.level += 1
        out.push_newline(True)
        self.assertEqual(out.value, 'aaabbbccc\n>>ddd\n>>\t')
        self.assertEqual(out.line, 2)
        self.assertEqual(out.column, 3)
        self.assertEqual(out.offset, 19)
Example #5
0
    def test_comment(self):
        opt = Config({ 'options': { 'comment.enabled': True } })

        self.assertEqual(output_html('ul>li.item', opt), '<ul>\n\t<li class="item"></li>\n\t<!-- /.item -->\n</ul>')
        self.assertEqual(output_html('div>ul>li.item#foo', opt), '<div>\n\t<ul>\n\t\t<li class="item" id="foo"></li>\n\t\t<!-- /#foo.item -->\n\t</ul>\n</div>')

        opt.options['comment.after'] = ' { [%ID] }'
        self.assertEqual(output_html('div>ul>li.item#foo', opt), '<div>\n\t<ul>\n\t\t<li class="item" id="foo"></li> { %foo }\n\t</ul>\n</div>')
Example #6
0
 def test_xsl(self):
     config = Config({'syntax': 'xsl'})
     self.assertEqual(expand('xsl:variable[select]', config),
                      '<xsl:variable select=""></xsl:variable>')
     self.assertEqual(expand('xsl:with-param[select]', config),
                      '<xsl:with-param select=""></xsl:with-param>')
     self.assertEqual(expand('xsl:variable[select]>div', config),
                      '<xsl:variable><div></div></xsl:variable>')
     self.assertEqual(expand('xsl:with-param[select]{foo}', config),
                      '<xsl:with-param>foo</xsl:with-param>')
Example #7
0
 def test_customize_modifier(self):
     conf = Config({
         'options': {
             'bem.enabled': True,
             'bem.element': '-',
             'bem.modifier': '__'
         }
     })
     self.assertEqual(expand('div.b_m', conf), '<div class="b b__m"></div>')
     self.assertEqual(expand('div.b._m', conf),
                      '<div class="b b__m"></div>')
Example #8
0
 def test_parent_context(self):
     conf = Config({
         'context': {
             'name': 'div',
             'attributes': {
                 'class': 'bl'
             }
         },
         'options': {
             'bem.enabled': True
         }
     })
     self.assertEqual(expand('.-e_m', conf),
                      '<div class="bl__e bl__e_m"></div>')
Example #9
0
import unittest
import sys

sys.path.append('../')

from emmet.config import Config
from emmet.markup import parse
from .stringify import stringify_node

default_config = Config()
bem = Config({'options': {'bem.enabled': True}, 'cache': {}})


def expand(abbr: str, config=default_config):
    return stringify_node(parse(abbr, config))


class TestMarkupAbbreviation(unittest.TestCase):
    def test_implicit_tags(self):
        self.assertEqual(expand('.'), '<div class=""></div>')
        self.assertEqual(expand('.foo>.bar'),
                         '<div class="foo"><div class="bar"></div></div>')
        self.assertEqual(expand('p.foo>.bar'),
                         '<p class="foo"><span class="bar"></span></p>')
        self.assertEqual(
            expand('ul>.item*2'),
            '<ul><li*2@0 class="item"></li><li*2@1 class="item"></li></ul>')
        self.assertEqual(
            expand('table>.row>.cell'),
            '<table><tr class="row"><td class="cell"></td></tr></table>')
        self.assertEqual(expand('{test}'), 'test')
Example #10
0
def create_profile(options: dict):
    return Config({'options': options})
Example #11
0
import unittest
import sys

sys.path.append('../')

from emmet.markup import parse, html, haml, pug, slim
from emmet.config import Config


def tabstops(index: int, placeholder: str, **kwargs):
    if placeholder:
        return '${%d:%s}' % (index, placeholder)
    return '${%d}' % index


default_config = Config()
field = Config({
    'options': {
        'output.field': tabstops
    }
})

def create_profile(options: dict):
    return Config({'options': options})


def output_html(abbr: str, config=default_config):
    return html(parse(abbr, config), config)


class TestHTMLFormat(unittest.TestCase):
Example #12
0
 def test_inline_elements(self):
     config = Config()
     self.assertEqual(is_inline('a', config), True)
     self.assertEqual(is_inline('b', config), True)
     self.assertEqual(is_inline('c', config), False)