}
}
- if (splitAt == -1)
- return fourValues(property, compactable);
-
var target = _wrapDefault(property.name, property, compactable);
- target.value = values.slice(0, splitAt);
+ target.value = splitAt > -1 ?
+ values.slice(0, splitAt) :
+ values.slice(0);
target.components = fourValues(target, compactable);
var remainder = _wrapDefault(property.name, property, compactable);
- remainder.value = values.slice(splitAt + 1);
+ remainder.value = splitAt > -1 ?
+ values.slice(splitAt + 1) :
+ values.slice(0);
remainder.components = fourValues(remainder, compactable);
for (var j = 0; j < 4; j++) {
target.components[j].multiplex = true;
- target.components[j].value = target.components[j].value.concat([['/']]).concat(remainder.components[j].value);
+ target.components[j].value = target.components[j].value.concat(remainder.components[j].value);
}
return target.components;
},
'has border-top-left-radius': function (components) {
assert.equal(components[0].name, 'border-top-left-radius');
- assert.deepEqual(components[0].value, [['0px']]);
+ assert.deepEqual(components[0].value, [['0px'], ['0px']]);
},
'has border-top-right-radius': function (components) {
assert.equal(components[1].name, 'border-top-right-radius');
- assert.deepEqual(components[1].value, [['1px']]);
+ assert.deepEqual(components[1].value, [['1px'], ['1px']]);
},
'has border-bottom-right-radius': function (components) {
assert.equal(components[2].name, 'border-bottom-right-radius');
- assert.deepEqual(components[2].value, [['2px']]);
+ assert.deepEqual(components[2].value, [['2px'], ['2px']]);
},
'has border-bottom-left': function (components) {
assert.equal(components[3].name, 'border-bottom-left-radius');
- assert.deepEqual(components[3].value, [['3px']]);
+ assert.deepEqual(components[3].value, [['3px'], ['3px']]);
}
},
'horizontal vertical split': {
},
'has border-top-left-radius': function (components) {
assert.equal(components[0].name, 'border-top-left-radius');
- assert.deepEqual(components[0].value, [['0px'], ['/'], ['1px']]);
+ assert.deepEqual(components[0].value, [['0px'], ['1px']]);
},
'has border-top-right-radius': function (components) {
assert.equal(components[1].name, 'border-top-right-radius');
- assert.deepEqual(components[1].value, [['1px'], ['/'], ['2px']]);
+ assert.deepEqual(components[1].value, [['1px'], ['2px']]);
},
'has border-bottom-right-radius': function (components) {
assert.equal(components[2].name, 'border-bottom-right-radius');
- assert.deepEqual(components[2].value, [['2px'], ['/'], ['3px']]);
+ assert.deepEqual(components[2].value, [['2px'], ['3px']]);
},
'has border-bottom-left': function (components) {
assert.equal(components[3].name, 'border-bottom-left-radius');
- assert.deepEqual(components[3].value, [['3px'], ['/'], ['4px']]);
+ assert.deepEqual(components[3].value, [['3px'], ['4px']]);
}
},
- 'vendor prefix asymetrical horizontal vertical split': {
+ 'vendor prefix asymmetrical horizontal vertical split': {
'topic': function () {
return _breakUp([[['-webkit-border-radius'], ['0px'], ['1px'], ['2px'], ['/'], ['1px'], ['4px']]]);
},
},
'has border-top-left-radius': function (components) {
assert.equal(components[0].name, '-webkit-border-top-left-radius');
- assert.deepEqual(components[0].value, [['0px'], ['/'], ['1px']]);
+ assert.deepEqual(components[0].value, [['0px'], ['1px']]);
},
'has border-top-right-radius': function (components) {
assert.equal(components[1].name, '-webkit-border-top-right-radius');
- assert.deepEqual(components[1].value, [['1px'], ['/'], ['4px']]);
+ assert.deepEqual(components[1].value, [['1px'], ['4px']]);
},
'has border-bottom-right-radius': function (components) {
assert.equal(components[2].name, '-webkit-border-bottom-right-radius');
- assert.deepEqual(components[2].value, [['2px'], ['/'], ['1px']]);
+ assert.deepEqual(components[2].value, [['2px'], ['1px']]);
},
'has border-bottom-left': function (components) {
assert.equal(components[3].name, '-webkit-border-bottom-left-radius');
- assert.deepEqual(components[3].value, [['1px'], ['/'], ['4px']]);
+ assert.deepEqual(components[3].value, [['1px'], ['4px']]);
}
}
},
]);
}
},
+ 'shorthand multiplexed border-radius': {
+ 'topic': 'p{border-radius:7px/3px}',
+ 'into': function (topic) {
+ assert.deepEqual(_optimize(topic), [
+ [['border-radius'], ['7px'], ['/'], ['3px']]
+ ]);
+ }
+ },
+ 'shorthand asymmetric border-radius with same values': {
+ 'topic': 'p{border-top-left-radius:7px 3px;border-top-right-radius:7px 3px;border-bottom-right-radius:7px 3px;border-bottom-left-radius:7px 3px}',
+ 'into': function (topic) {
+ assert.deepEqual(_optimize(topic), [
+ [['border-radius'], ['7px'], ['/'], ['3px']]
+ ]);
+ }
+ },
+ 'shorthand asymmetric border-radius': {
+ 'topic': 'p{border-top-left-radius:7px 3px;border-top-right-radius:6px 2px;border-bottom-right-radius:5px 1px;border-bottom-left-radius:4px 0}',
+ 'into': function (topic) {
+ assert.deepEqual(_optimize(topic), [
+ [['border-radius'], ['7px'], ['6px'], ['5px'], ['4px'], ['/'], ['3px'], ['2px'], ['1px'], ['0']]
+ ]);
+ }
+ },
'shorthand multiple !important': {
'topic': 'a{border-color:#123 !important;border-top-color: #456 !important}',
'into': function (topic) {
.addBatch(
propertyContext('@border-*-radius', {
'spaces around /': [
- 'a{border-top-left-radius:2em / 1em}',
- [['border-top-left-radius', '2em', '/', '1em']]
+ 'a{border-radius:2em / 1em}',
+ [['border-radius', '2em', '/', '1em']]
],
'symmetric expanded to shorthand': [
- 'a{border-top-left-radius:1em 2em 3em 4em / 1em 2em 3em 4em}',
- [['border-top-left-radius', '1em', '2em', '3em', '4em']]
+ 'a{border-radius:1em 2em 3em 4em / 1em 2em 3em 4em}',
+ [['border-radius', '1em', '2em', '3em', '4em']]
+ ],
+ 'asymmetric kept as is': [
+ 'a{border-top-left-radius:1em 2em}',
+ [['border-top-left-radius', '1em', '2em']]
]
})
)