188c88e8eSopenharmony_civar chai = require('chai') 288c88e8eSopenharmony_civar sinon = require('sinon') 388c88e8eSopenharmony_civar sinonChai = require('sinon-chai') 488c88e8eSopenharmony_civar expect = chai.expect 588c88e8eSopenharmony_cichai.use(sinonChai) 688c88e8eSopenharmony_ci 788c88e8eSopenharmony_civar styler = require('../') 888c88e8eSopenharmony_ci 988c88e8eSopenharmony_cidescribe('validate', function () { 1088c88e8eSopenharmony_ci 1188c88e8eSopenharmony_ci it('parse normal style code', function (done) { 1288c88e8eSopenharmony_ci var code = { 1388c88e8eSopenharmony_ci foo: { 1488c88e8eSopenharmony_ci color: '#FF0000', 1588c88e8eSopenharmony_ci width: '200', 1688c88e8eSopenharmony_ci position: 'sticky', 1788c88e8eSopenharmony_ci zIndex: 4 1888c88e8eSopenharmony_ci } 1988c88e8eSopenharmony_ci } 2088c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 2188c88e8eSopenharmony_ci expect(err).is.undefined 2288c88e8eSopenharmony_ci expect(data).is.an.object 2388c88e8eSopenharmony_ci expect(data.jsonStyle).eql({foo: {color: '#FF0000', width: 200, position: 'sticky', zIndex: 4}}) 2488c88e8eSopenharmony_ci expect(data.log).eql([]) 2588c88e8eSopenharmony_ci done() 2688c88e8eSopenharmony_ci }) 2788c88e8eSopenharmony_ci }) 2888c88e8eSopenharmony_ci 2988c88e8eSopenharmony_ci it('parse length', function (done) { 3088c88e8eSopenharmony_ci var code = { 3188c88e8eSopenharmony_ci foo: { 3288c88e8eSopenharmony_ci width: '200px', 3388c88e8eSopenharmony_ci paddingLeft: '300', 3488c88e8eSopenharmony_ci borderWidth: '1pt', 3588c88e8eSopenharmony_ci left: '0', 3688c88e8eSopenharmony_ci right: '0px', 3788c88e8eSopenharmony_ci marginRight: 'asdf' 3888c88e8eSopenharmony_ci } 3988c88e8eSopenharmony_ci } 4088c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 4188c88e8eSopenharmony_ci expect(err).is.undefined 4288c88e8eSopenharmony_ci expect(data).is.an.object 4388c88e8eSopenharmony_ci expect(data.jsonStyle).eql({foo: { 4488c88e8eSopenharmony_ci width: '200px', 4588c88e8eSopenharmony_ci paddingLeft: 300, 4688c88e8eSopenharmony_ci borderWidth: '1pt', 4788c88e8eSopenharmony_ci left: 0, 4888c88e8eSopenharmony_ci right: '0px' 4988c88e8eSopenharmony_ci }}) 5088c88e8eSopenharmony_ci expect(data.log).eql([ 5188c88e8eSopenharmony_ci {reason: 'ERROR: property value `asdf` is not supported for `margin-right` (only number and pixel values are supported)'} 5288c88e8eSopenharmony_ci ]) 5388c88e8eSopenharmony_ci done() 5488c88e8eSopenharmony_ci }) 5588c88e8eSopenharmony_ci }) 5688c88e8eSopenharmony_ci 5788c88e8eSopenharmony_ci it('parse number', function (done) { 5888c88e8eSopenharmony_ci var code = { 5988c88e8eSopenharmony_ci foo: { 6088c88e8eSopenharmony_ci opacity: '1' 6188c88e8eSopenharmony_ci }, 6288c88e8eSopenharmony_ci bar: { 6388c88e8eSopenharmony_ci opacity: '0.5' 6488c88e8eSopenharmony_ci }, 6588c88e8eSopenharmony_ci baz: { 6688c88e8eSopenharmony_ci opacity: 'a' 6788c88e8eSopenharmony_ci }, 6888c88e8eSopenharmony_ci boo: { 6988c88e8eSopenharmony_ci opacity: '0.5a' 7088c88e8eSopenharmony_ci }, 7188c88e8eSopenharmony_ci zero: { 7288c88e8eSopenharmony_ci opacity: '0' 7388c88e8eSopenharmony_ci } 7488c88e8eSopenharmony_ci } 7588c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 7688c88e8eSopenharmony_ci expect(err).is.undefined 7788c88e8eSopenharmony_ci expect(data).is.an.object 7888c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 7988c88e8eSopenharmony_ci foo: { 8088c88e8eSopenharmony_ci opacity: 1 8188c88e8eSopenharmony_ci }, 8288c88e8eSopenharmony_ci bar: { 8388c88e8eSopenharmony_ci opacity: 0.5 8488c88e8eSopenharmony_ci }, 8588c88e8eSopenharmony_ci baz: {}, 8688c88e8eSopenharmony_ci boo: {}, 8788c88e8eSopenharmony_ci zero: { 8888c88e8eSopenharmony_ci opacity: 0 8988c88e8eSopenharmony_ci } 9088c88e8eSopenharmony_ci }) 9188c88e8eSopenharmony_ci expect(data.log).eql([ 9288c88e8eSopenharmony_ci {reason: 'ERROR: property value `a` is not supported for `opacity` (only number is supported)'}, 9388c88e8eSopenharmony_ci {reason: 'ERROR: property value `0.5a` is not supported for `opacity` (only number is supported)'} 9488c88e8eSopenharmony_ci ]) 9588c88e8eSopenharmony_ci done() 9688c88e8eSopenharmony_ci }) 9788c88e8eSopenharmony_ci }) 9888c88e8eSopenharmony_ci 9988c88e8eSopenharmony_ci it('parse integer', function (done) { 10088c88e8eSopenharmony_ci var code = { 10188c88e8eSopenharmony_ci foo: { 10288c88e8eSopenharmony_ci zIndex: '1' 10388c88e8eSopenharmony_ci }, 10488c88e8eSopenharmony_ci bar: { 10588c88e8eSopenharmony_ci zIndex: '0.5' 10688c88e8eSopenharmony_ci }, 10788c88e8eSopenharmony_ci baz: { 10888c88e8eSopenharmony_ci zIndex: 'a' 10988c88e8eSopenharmony_ci }, 11088c88e8eSopenharmony_ci boo: { 11188c88e8eSopenharmony_ci zIndex: '0.5a' 11288c88e8eSopenharmony_ci }, 11388c88e8eSopenharmony_ci zero: { 11488c88e8eSopenharmony_ci zIndex: '0' 11588c88e8eSopenharmony_ci } 11688c88e8eSopenharmony_ci } 11788c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 11888c88e8eSopenharmony_ci expect(err).is.undefined 11988c88e8eSopenharmony_ci expect(data).is.an.object 12088c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 12188c88e8eSopenharmony_ci foo: { 12288c88e8eSopenharmony_ci zIndex: 1 12388c88e8eSopenharmony_ci }, 12488c88e8eSopenharmony_ci bar: {}, 12588c88e8eSopenharmony_ci baz: {}, 12688c88e8eSopenharmony_ci boo: {}, 12788c88e8eSopenharmony_ci zero: { 12888c88e8eSopenharmony_ci zIndex: 0 12988c88e8eSopenharmony_ci } 13088c88e8eSopenharmony_ci }) 13188c88e8eSopenharmony_ci expect(data.log).eql([ 13288c88e8eSopenharmony_ci {reason: 'ERROR: property value `0.5` is not supported for `z-index` (only integer is supported)'}, 13388c88e8eSopenharmony_ci {reason: 'ERROR: property value `a` is not supported for `z-index` (only integer is supported)'}, 13488c88e8eSopenharmony_ci {reason: 'ERROR: property value `0.5a` is not supported for `z-index` (only integer is supported)'} 13588c88e8eSopenharmony_ci ]) 13688c88e8eSopenharmony_ci done() 13788c88e8eSopenharmony_ci }) 13888c88e8eSopenharmony_ci }) 13988c88e8eSopenharmony_ci 14088c88e8eSopenharmony_ci it('parse color', function (done) { 14188c88e8eSopenharmony_ci var code = { 14288c88e8eSopenharmony_ci foo: { 14388c88e8eSopenharmony_ci color: '#FF0000', 14488c88e8eSopenharmony_ci backgroundColor: '#ff0000' 14588c88e8eSopenharmony_ci }, 14688c88e8eSopenharmony_ci bar: { 14788c88e8eSopenharmony_ci color: '#F00', 14888c88e8eSopenharmony_ci backgroundColor: '#f00' 14988c88e8eSopenharmony_ci }, 15088c88e8eSopenharmony_ci baz: { 15188c88e8eSopenharmony_ci color: 'red', 15288c88e8eSopenharmony_ci backgroundColor: 'lightpink' 15388c88e8eSopenharmony_ci }, 15488c88e8eSopenharmony_ci rgba: { 15588c88e8eSopenharmony_ci color: 'rgb(23, 0, 255)', 15688c88e8eSopenharmony_ci backgroundColor: 'rgba(234, 45, 99, .4)' 15788c88e8eSopenharmony_ci }, 15888c88e8eSopenharmony_ci transparent: { 15988c88e8eSopenharmony_ci color: 'transparent', 16088c88e8eSopenharmony_ci backgroundColor: 'asdf' 16188c88e8eSopenharmony_ci }, 16288c88e8eSopenharmony_ci errRgba: { 16388c88e8eSopenharmony_ci color: 'rgb(266,0,255)', 16488c88e8eSopenharmony_ci backgroundColor: 'rgba(234,45,99,1.3)' 16588c88e8eSopenharmony_ci } 16688c88e8eSopenharmony_ci } 16788c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 16888c88e8eSopenharmony_ci expect(err).is.undefined 16988c88e8eSopenharmony_ci expect(data).is.an.object 17088c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 17188c88e8eSopenharmony_ci foo: { 17288c88e8eSopenharmony_ci color: '#FF0000', 17388c88e8eSopenharmony_ci backgroundColor: '#ff0000' 17488c88e8eSopenharmony_ci }, 17588c88e8eSopenharmony_ci bar: { 17688c88e8eSopenharmony_ci color: '#FF0000', 17788c88e8eSopenharmony_ci backgroundColor: '#ff0000' 17888c88e8eSopenharmony_ci }, 17988c88e8eSopenharmony_ci baz: { 18088c88e8eSopenharmony_ci color: '#FF0000', 18188c88e8eSopenharmony_ci backgroundColor: '#FFB6C1' 18288c88e8eSopenharmony_ci }, 18388c88e8eSopenharmony_ci rgba: { 18488c88e8eSopenharmony_ci color: 'rgb(23,0,255)', 18588c88e8eSopenharmony_ci backgroundColor: 'rgba(234,45,99,0.4)' 18688c88e8eSopenharmony_ci }, 18788c88e8eSopenharmony_ci transparent: { 18888c88e8eSopenharmony_ci color: 'rgba(0,0,0,0)' 18988c88e8eSopenharmony_ci }, 19088c88e8eSopenharmony_ci errRgba: {} 19188c88e8eSopenharmony_ci }) 19288c88e8eSopenharmony_ci expect(data.log).eql([ 19388c88e8eSopenharmony_ci {reason: 'NOTE: property value `#F00` is autofixed to `#FF0000`'}, 19488c88e8eSopenharmony_ci {reason: 'NOTE: property value `#f00` is autofixed to `#ff0000`'}, 19588c88e8eSopenharmony_ci {reason: 'NOTE: property value `red` is autofixed to `#FF0000`'}, 19688c88e8eSopenharmony_ci {reason: 'NOTE: property value `lightpink` is autofixed to `#FFB6C1`'}, 19788c88e8eSopenharmony_ci {reason: 'ERROR: property value `asdf` is not valid for `background-color`'}, 19888c88e8eSopenharmony_ci {reason: 'ERROR: property value `rgb(266,0,255)` is not valid for `color`'}, 19988c88e8eSopenharmony_ci {reason: 'ERROR: property value `rgba(234,45,99,1.3)` is not valid for `background-color`'} 20088c88e8eSopenharmony_ci ]) 20188c88e8eSopenharmony_ci done() 20288c88e8eSopenharmony_ci }) 20388c88e8eSopenharmony_ci }) 20488c88e8eSopenharmony_ci 20588c88e8eSopenharmony_ci it('parse color', function (done) { 20688c88e8eSopenharmony_ci var code = { 20788c88e8eSopenharmony_ci foo: { 20888c88e8eSopenharmony_ci color: '#FF0000', 20988c88e8eSopenharmony_ci backgroundColor: '#ff0000' 21088c88e8eSopenharmony_ci }, 21188c88e8eSopenharmony_ci bar: { 21288c88e8eSopenharmony_ci color: '#F00', 21388c88e8eSopenharmony_ci backgroundColor: '#f00' 21488c88e8eSopenharmony_ci }, 21588c88e8eSopenharmony_ci baz: { 21688c88e8eSopenharmony_ci color: 'red', 21788c88e8eSopenharmony_ci backgroundColor: 'lightpink' 21888c88e8eSopenharmony_ci }, 21988c88e8eSopenharmony_ci rgba: { 22088c88e8eSopenharmony_ci color: 'rgb(23, 0, 255)', 22188c88e8eSopenharmony_ci backgroundColor: 'rgba(234, 45, 99, .4)' 22288c88e8eSopenharmony_ci }, 22388c88e8eSopenharmony_ci transparent: { 22488c88e8eSopenharmony_ci color: 'transparent', 22588c88e8eSopenharmony_ci backgroundColor: 'asdf' 22688c88e8eSopenharmony_ci }, 22788c88e8eSopenharmony_ci errRgba: { 22888c88e8eSopenharmony_ci color: 'rgb(266,0,255)', 22988c88e8eSopenharmony_ci backgroundColor: 'rgba(234,45,99,1.3)' 23088c88e8eSopenharmony_ci } 23188c88e8eSopenharmony_ci } 23288c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 23388c88e8eSopenharmony_ci expect(err).is.undefined 23488c88e8eSopenharmony_ci expect(data).is.an.object 23588c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 23688c88e8eSopenharmony_ci foo: { 23788c88e8eSopenharmony_ci color: '#FF0000', 23888c88e8eSopenharmony_ci backgroundColor: '#ff0000' 23988c88e8eSopenharmony_ci }, 24088c88e8eSopenharmony_ci bar: { 24188c88e8eSopenharmony_ci color: '#FF0000', 24288c88e8eSopenharmony_ci backgroundColor: '#ff0000' 24388c88e8eSopenharmony_ci }, 24488c88e8eSopenharmony_ci baz: { 24588c88e8eSopenharmony_ci color: '#FF0000', 24688c88e8eSopenharmony_ci backgroundColor: '#FFB6C1' 24788c88e8eSopenharmony_ci }, 24888c88e8eSopenharmony_ci rgba: { 24988c88e8eSopenharmony_ci color: 'rgb(23,0,255)', 25088c88e8eSopenharmony_ci backgroundColor: 'rgba(234,45,99,0.4)' 25188c88e8eSopenharmony_ci }, 25288c88e8eSopenharmony_ci transparent: { 25388c88e8eSopenharmony_ci color: 'rgba(0,0,0,0)' 25488c88e8eSopenharmony_ci }, 25588c88e8eSopenharmony_ci errRgba: {} 25688c88e8eSopenharmony_ci }) 25788c88e8eSopenharmony_ci expect(data.log).eql([ 25888c88e8eSopenharmony_ci {reason: 'NOTE: property value `#F00` is autofixed to `#FF0000`'}, 25988c88e8eSopenharmony_ci {reason: 'NOTE: property value `#f00` is autofixed to `#ff0000`'}, 26088c88e8eSopenharmony_ci {reason: 'NOTE: property value `red` is autofixed to `#FF0000`'}, 26188c88e8eSopenharmony_ci {reason: 'NOTE: property value `lightpink` is autofixed to `#FFB6C1`'}, 26288c88e8eSopenharmony_ci {reason: 'ERROR: property value `asdf` is not valid for `background-color`'}, 26388c88e8eSopenharmony_ci {reason: 'ERROR: property value `rgb(266,0,255)` is not valid for `color`'}, 26488c88e8eSopenharmony_ci {reason: 'ERROR: property value `rgba(234,45,99,1.3)` is not valid for `background-color`'} 26588c88e8eSopenharmony_ci ]) 26688c88e8eSopenharmony_ci done() 26788c88e8eSopenharmony_ci }) 26888c88e8eSopenharmony_ci }) 26988c88e8eSopenharmony_ci 27088c88e8eSopenharmony_ci it('parse flex-wrap', function (done) { 27188c88e8eSopenharmony_ci var code = { 27288c88e8eSopenharmony_ci foo: { flexWrap: 'nowrap' }, 27388c88e8eSopenharmony_ci bar: { flexWrap: 'wrap' } 27488c88e8eSopenharmony_ci } 27588c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 27688c88e8eSopenharmony_ci expect(err).is.undefined 27788c88e8eSopenharmony_ci expect(data).is.an.object 27888c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 27988c88e8eSopenharmony_ci foo: { flexWrap: 'nowrap' }, 28088c88e8eSopenharmony_ci bar: { flexWrap: 'wrap' } 28188c88e8eSopenharmony_ci }) 28288c88e8eSopenharmony_ci expect(data.log).eql([ 28388c88e8eSopenharmony_ci {reason: 'NOTE: property value `nowrap` is the DEFAULT value for `flex-wrap` (could be removed)'}, 28488c88e8eSopenharmony_ci {reason: 'NOTE: the flex-wrap property may have compatibility problem on native'}, 28588c88e8eSopenharmony_ci ]) 28688c88e8eSopenharmony_ci done() 28788c88e8eSopenharmony_ci }) 28888c88e8eSopenharmony_ci }) 28988c88e8eSopenharmony_ci 29088c88e8eSopenharmony_ci it('parse transition-property', function (done) { 29188c88e8eSopenharmony_ci var code = { 29288c88e8eSopenharmony_ci foo: { 29388c88e8eSopenharmony_ci transitionProperty: 'margin-top' 29488c88e8eSopenharmony_ci }, 29588c88e8eSopenharmony_ci bar: { 29688c88e8eSopenharmony_ci transitionProperty: 'height' 29788c88e8eSopenharmony_ci }, 29888c88e8eSopenharmony_ci foobar: { 29988c88e8eSopenharmony_ci transitionProperty: 'margin-top, height' 30088c88e8eSopenharmony_ci }, 30188c88e8eSopenharmony_ci baz: { 30288c88e8eSopenharmony_ci transitionProperty: 'abc' 30388c88e8eSopenharmony_ci } 30488c88e8eSopenharmony_ci } 30588c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 30688c88e8eSopenharmony_ci expect(err).is.undefined 30788c88e8eSopenharmony_ci expect(data).is.an.object 30888c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 30988c88e8eSopenharmony_ci foo: { 31088c88e8eSopenharmony_ci transitionProperty: 'marginTop' 31188c88e8eSopenharmony_ci }, 31288c88e8eSopenharmony_ci bar: { 31388c88e8eSopenharmony_ci transitionProperty: 'height' 31488c88e8eSopenharmony_ci }, 31588c88e8eSopenharmony_ci foobar: { 31688c88e8eSopenharmony_ci transitionProperty: 'marginTop,height' 31788c88e8eSopenharmony_ci }, 31888c88e8eSopenharmony_ci baz: {} 31988c88e8eSopenharmony_ci }) 32088c88e8eSopenharmony_ci expect(data.log).eql([ 32188c88e8eSopenharmony_ci {reason: 'ERROR: property value `abc` is not supported for `transition-property` (only css property is valid)'} 32288c88e8eSopenharmony_ci ]) 32388c88e8eSopenharmony_ci done() 32488c88e8eSopenharmony_ci }) 32588c88e8eSopenharmony_ci }) 32688c88e8eSopenharmony_ci 32788c88e8eSopenharmony_ci it('parse transition-duration & transition-delay', function (done) { 32888c88e8eSopenharmony_ci var code = { 32988c88e8eSopenharmony_ci foo: { 33088c88e8eSopenharmony_ci transitionDuration: '200ms', 33188c88e8eSopenharmony_ci transitionDelay: '0.5s' 33288c88e8eSopenharmony_ci }, 33388c88e8eSopenharmony_ci bar: { 33488c88e8eSopenharmony_ci transitionDuration: '200', 33588c88e8eSopenharmony_ci transitionDelay: 'abc' 33688c88e8eSopenharmony_ci } 33788c88e8eSopenharmony_ci } 33888c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 33988c88e8eSopenharmony_ci expect(err).is.undefined 34088c88e8eSopenharmony_ci expect(data).is.an.object 34188c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 34288c88e8eSopenharmony_ci foo: { 34388c88e8eSopenharmony_ci transitionDuration: 200, 34488c88e8eSopenharmony_ci transitionDelay: 500 34588c88e8eSopenharmony_ci }, 34688c88e8eSopenharmony_ci bar: { 34788c88e8eSopenharmony_ci transitionDuration: 200 34888c88e8eSopenharmony_ci } 34988c88e8eSopenharmony_ci }) 35088c88e8eSopenharmony_ci expect(data.log).eql([ 35188c88e8eSopenharmony_ci {reason: 'NOTE: property value `200ms` is autofixed to `200`'}, 35288c88e8eSopenharmony_ci {reason: 'NOTE: property value `0.5s` is autofixed to `500`'}, 35388c88e8eSopenharmony_ci {reason: 'ERROR: property value `abc` is not supported for `transition-delay` (only number of seconds and milliseconds is valid)'} 35488c88e8eSopenharmony_ci ]) 35588c88e8eSopenharmony_ci done() 35688c88e8eSopenharmony_ci }) 35788c88e8eSopenharmony_ci }) 35888c88e8eSopenharmony_ci 35988c88e8eSopenharmony_ci it('parse transition-timing-function', function (done) { 36088c88e8eSopenharmony_ci var code = { 36188c88e8eSopenharmony_ci foo: { 36288c88e8eSopenharmony_ci transitionTimingFunction: 'ease-in-out' 36388c88e8eSopenharmony_ci }, 36488c88e8eSopenharmony_ci bar: { 36588c88e8eSopenharmony_ci transitionTimingFunction: 'cubic-bezier(.88, 1.0, -0.67, 1.37)' 36688c88e8eSopenharmony_ci }, 36788c88e8eSopenharmony_ci baz: { 36888c88e8eSopenharmony_ci transitionTimingFunction: 'abc' 36988c88e8eSopenharmony_ci } 37088c88e8eSopenharmony_ci } 37188c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 37288c88e8eSopenharmony_ci expect(err).is.undefined 37388c88e8eSopenharmony_ci expect(data).is.an.object 37488c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 37588c88e8eSopenharmony_ci foo: { 37688c88e8eSopenharmony_ci transitionTimingFunction: 'ease-in-out' 37788c88e8eSopenharmony_ci }, 37888c88e8eSopenharmony_ci bar: { 37988c88e8eSopenharmony_ci transitionTimingFunction: 'cubic-bezier(0.88,1,-0.67,1.37)' 38088c88e8eSopenharmony_ci }, 38188c88e8eSopenharmony_ci baz: {} 38288c88e8eSopenharmony_ci }) 38388c88e8eSopenharmony_ci expect(data.log).eql([ 38488c88e8eSopenharmony_ci {reason: 'ERROR: property value `abc` is not supported for `transition-timing-function` (supported values are: `linear`|`ease`|`ease-in`|`ease-out`|`ease-in-out`|`cubic-bezier(n,n,n,n)`)'} 38588c88e8eSopenharmony_ci ]) 38688c88e8eSopenharmony_ci done() 38788c88e8eSopenharmony_ci }) 38888c88e8eSopenharmony_ci }) 38988c88e8eSopenharmony_ci 39088c88e8eSopenharmony_ci it('parse unknown', function (done) { 39188c88e8eSopenharmony_ci var code = { 39288c88e8eSopenharmony_ci foo: { 39388c88e8eSopenharmony_ci background: '#ff0000', 39488c88e8eSopenharmony_ci abc: '123', 39588c88e8eSopenharmony_ci def: '456px', 39688c88e8eSopenharmony_ci ghi: '789pt', 39788c88e8eSopenharmony_ci AbcDef: '456', 39888c88e8eSopenharmony_ci abcDef: 'abc' 39988c88e8eSopenharmony_ci } 40088c88e8eSopenharmony_ci } 40188c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 40288c88e8eSopenharmony_ci expect(err).is.undefined 40388c88e8eSopenharmony_ci expect(data).is.an.object 40488c88e8eSopenharmony_ci expect(data.jsonStyle).eql({ 40588c88e8eSopenharmony_ci foo: { 40688c88e8eSopenharmony_ci background: '#ff0000', 40788c88e8eSopenharmony_ci abc: 123, 40888c88e8eSopenharmony_ci def: '456px', 40988c88e8eSopenharmony_ci ghi: '789pt', 41088c88e8eSopenharmony_ci AbcDef: 456, 41188c88e8eSopenharmony_ci abcDef: 'abc' 41288c88e8eSopenharmony_ci } 41388c88e8eSopenharmony_ci }) 41488c88e8eSopenharmony_ci expect(data.log).eql([ 41588c88e8eSopenharmony_ci {reason: 'WARNING: `background` is not a standard property name (may not be supported), suggest `background-color`'}, 41688c88e8eSopenharmony_ci {reason: 'WARNING: `abc` is not a standard property name (may not be supported)'}, 41788c88e8eSopenharmony_ci {reason: 'WARNING: `def` is not a standard property name (may not be supported)'}, 41888c88e8eSopenharmony_ci {reason: 'WARNING: `ghi` is not a standard property name (may not be supported)'}, 41988c88e8eSopenharmony_ci {reason: 'WARNING: `-abc-def` is not a standard property name (may not be supported)'}, 42088c88e8eSopenharmony_ci {reason: 'WARNING: `abc-def` is not a standard property name (may not be supported)'} 42188c88e8eSopenharmony_ci ]) 42288c88e8eSopenharmony_ci done() 42388c88e8eSopenharmony_ci }) 42488c88e8eSopenharmony_ci }) 42588c88e8eSopenharmony_ci 42688c88e8eSopenharmony_ci it('parse complex style code', function (done) { 42788c88e8eSopenharmony_ci var code = { 42888c88e8eSopenharmony_ci foo: { 42988c88e8eSopenharmony_ci color: 'red', 43088c88e8eSopenharmony_ci WebkitTransform: 'rotate(90deg)', 43188c88e8eSopenharmony_ci width: '200px' 43288c88e8eSopenharmony_ci } 43388c88e8eSopenharmony_ci } 43488c88e8eSopenharmony_ci styler.validate(code, function (err, data) { 43588c88e8eSopenharmony_ci expect(err).is.undefined 43688c88e8eSopenharmony_ci expect(data).is.an.object 43788c88e8eSopenharmony_ci expect(data.jsonStyle).eql({foo: {color: '#FF0000', WebkitTransform: 'rotate(90deg)', width: '200px'}}) 43888c88e8eSopenharmony_ci expect(data.log).eql([ 43988c88e8eSopenharmony_ci {reason: 'NOTE: property value `red` is autofixed to `#FF0000`'}, 44088c88e8eSopenharmony_ci {reason: 'WARNING: `-webkit-transform` is not a standard property name (may not be supported)'} 44188c88e8eSopenharmony_ci ]) 44288c88e8eSopenharmony_ci done() 44388c88e8eSopenharmony_ci }) 44488c88e8eSopenharmony_ci }) 44588c88e8eSopenharmony_ci}) 446