Sha256: a41301c72904ba9e13aba1464786fd0c0558fa38348fbe3353ceae578ea55442
Contents?: true
Size: 1.85 KB
Versions: 2
Compression:
Stored size: 1.85 KB
Contents
# encoding: utf-8 # Includes tests based on Simon Sapin's CSS parsing tests: # https://github.com/SimonSapin/css-parsing-tests/ require_relative 'support/common' require_relative 'shared/parse_rules' describe 'Crass::Parser' do make_my_diffs_pretty! parallelize_me! describe '#parse_rules' do def parse(*args) CP.parse_rules(*args) end behaves_like 'parsing a list of rules' it 'with CDO/CDC before rule' do tree = parse(" <!-- --> {") assert_equal(2, tree.size) assert_tokens(" ", tree[0]) rule = tree[1] assert_equal(:style_rule, rule[:node]) assert_equal([], rule[:children]) selector = rule[:selector] assert_equal(:selector, selector[:node]) assert_equal("<!-- -->", selector[:value]) assert_tokens("<!-- --> ", selector[:tokens], 1) end it 'followed by CDC' do # TODO: This should be a parse error. tree = parse("div {} -->") assert_equal(2, tree.size) rule = tree[0] assert_equal(:style_rule, rule[:node]) assert_equal([], rule[:children]) selector = rule[:selector] assert_equal(:selector, selector[:node]) assert_equal("div", selector[:value]) assert_tokens("div ", selector[:tokens]) assert_tokens(" ", tree[1], 6) end it 'should parse the block of an at-rule' do rule = CP.parse_stylesheet("@media (max-width: 400px) {#foo:not(.bar){color:#fff;}}")[0] assert_equal(:at_rule, rule[:node]) style_rule = parse(rule[:block][:value])[0] assert_equal(:style_rule, style_rule[:node]) assert_equal("#foo:not(.bar)", style_rule[:selector][:value]) assert_equal(1, style_rule[:children].size) prop = style_rule[:children][0] assert_equal(:property, prop[:node]) assert_equal("color", prop[:name]) assert_equal("#fff", prop[:value]) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
crass-0.2.1 | test/test_parse_rules.rb |
crass-0.2.0 | test/test_parse_rules.rb |