diff options
Diffstat (limited to 'node_modules/css-tokenize/test/base.js')
| -rw-r--r-- | node_modules/css-tokenize/test/base.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/node_modules/css-tokenize/test/base.js b/node_modules/css-tokenize/test/base.js new file mode 100644 index 00000000..a42298b7 --- /dev/null +++ b/node_modules/css-tokenize/test/base.js @@ -0,0 +1,100 @@ +var fs = require('fs'), + test = require('tape'), + through = require('through2'), + tokenize = require('../') + + +test('basic', function(t) { + var tok = tokenize(); + + var input = "html { font-size: 10px; }" + var expected = [ + ['rule_start', 'html {'], + ['rule', ' font-size: 10px; '], + ['rule_end', '}'] + ] + + t.plan(expected.length); + tok.pipe(through.obj(function(token, enc, next) { + token[1] = token[1].toString(); + if (expected.length > 0) t.same(token, expected.shift()) + next(); + })) + + tok.end(input); +}) + +test('at-rule nesting', function(t) { + var tok = tokenize(); + var expected = [ + [ 'atrule_start', '@media screen and (min-width: 1000px) {' ], + [ 'atrule', '\n ' ], + [ 'rule_start', 'a {' ], + [ 'rule', '\n text-decoration: underline;\n ' ], + [ 'rule_end', '}' ], + [ 'atrule', '\n' ], + [ 'atrule_end', '}' ], + [ 'root', '\n' ] + ] + + t.plan(expected.length); + tok.pipe(through.obj(function(token, enc, next) { + token[1] = token[1].toString(); + if (expected.length > 0) t.same(token, expected.shift()) + next(); + })) + + fs.createReadStream(__dirname + '/nested.css').pipe(tok); +}) + +test('gauntlet', function(t) { + var tok = tokenize(); + + var expected = [ + ['root', '\n'], + ['rule_start', 'div {'], + ['rule', '\n background: red;\n'], + ['rule_end', '}'], + ['root', '\n\n'], + ['rule_start', '.cls {'], + ['rule', '\n color: green;\n'], + ['rule_end', '}'], + ['root', '\n\n'], + ['rule_start', '#id {'], + ['rule', '\n font-size: 10px;\n'], + ['rule_end', '}'], + ['comment', '\n\n/* comment */'], + ['space', '\n\n'], + ['atrule_start', '@media screen and (min-width: 1000px) {'], + ['atrule', '\n '], + ['rule_start', 'a {'], + ['rule', '\n text-decoration: underline;\n '], + ['rule_end', '}'], + ['atrule', '\n'], + ['atrule_end', '}'], + ['root', '\n\n'], + ['rule_start', 'a:hover {'], + ['rule', '\n font-weight: bold; \n'], + ['rule_end', '}'], + ['root', '\n\n'], + ['rule_start', 'section \n\n\n{'], + ['rule', '\n margin: 0;\n '], + ['comment', '/* comment wthin a rule */'], + ['rule', '\n padding: 5px;\n'], + ['rule_end', '}'], + ['root', '\n\n\n'], + ['rule_start', 'body > * {'], + ['rule', '\n \n'], + ['rule_end', '}'], + ['root', '\n'] + ] + + t.plan(expected.length); + tok.pipe(through.obj(function(token, enc, next) { + token[1] = token[1].toString(); + if (expected.length > 0) t.same(token, expected.shift()) + next(); + })); + + fs.createReadStream(__dirname + '/gauntlet.css').pipe(tok); +}) |
