diff --git a/.editorconfig b/.editorconfig index 900dbe4db..3f08c1a48 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,9 +9,6 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[tests/**/**.{disabled,expected}.css] -insert_final_newline = false - [*.{json,yml}] indent_size = 2 diff --git a/src/__tests__/api.js b/src/__tests__/api.js index 54f5db2e1..284421954 100644 --- a/src/__tests__/api.js +++ b/src/__tests__/api.js @@ -1,4 +1,3 @@ -import {readFileSync as read} from 'fs'; import postcss from 'postcss'; import ava from 'ava'; import nano from '..'; @@ -20,8 +19,11 @@ ava('can be used as a postcss plugin (2)', pluginMacro, postcss([nano()])); ava('can be used as a postcss plugin (3)', pluginMacro, postcss(nano)); ava('can be used as a postcss plugin, with options', t => { - const css = read(__dirname + '/fixtures/reduceCalc.fixture.css', 'utf-8'); - const exp = read(__dirname + '/fixtures/reduceCalc.disabled.css', 'utf-8'); + const css = ` + h1 { + width: calc(3px * 2 - 1px); + }`; + const exp = `h1{width:calc(3px * 2 - 1px)}`; return postcss(nano({calc: false})).process(css).then(result => { t.deepEqual(result.css, exp, specName('notTransformCalcProperty')); diff --git a/src/__tests__/fixtures.js b/src/__tests__/fixtures.js index 1a34496de..897f88caa 100644 --- a/src/__tests__/fixtures.js +++ b/src/__tests__/fixtures.js @@ -1,21 +1,389 @@ -import {readdirSync as directory, readFileSync as file} from 'fs'; -import {join} from 'path'; -import ava from 'ava'; +import test from 'ava'; import processCss from './_processCss'; -import specName from './util/specName'; -const base = join(__dirname, 'fixtures'); +test( + 'should keep spaces in background repeat', + processCss, + `h1 { + background: url(image.png) no-repeat + }`, + `h1{background:url(image.png) no-repeat}` +); -const specs = directory(base).reduce((tests, cssFile) => { - const parts = cssFile.split('.'); - if (!tests[parts[0]]) { - tests[parts[0]] = {}; +test( + 'should handle css mixins', + processCss, + `paper-card { + --paper-card-content: { + padding-top: 0; + }; + margin: 0 auto 16px; + width: 768px; + max-width: calc(100% - 32px); + }`, + `paper-card{--paper-card-content:{padding-top:0};margin:0 auto 16px;width:768px;max-width:calc(100% - 32px)}` +); + +test( + 'should handle css mixins (2)', + processCss, + `paper-card { + --paper-card-header: { + height: 128px; + padding: 0 48px; + background: var(--primary-color); + + @apply(--layout-vertical); + @apply(--layout-end-justified); + }; + --paper-card-header-color: #FFF; + --paper-card-content: { + padding: 64px; + }; + --paper-card-actions: { + @apply(--layout-horizontal); + @apply(--layout-end-justified); + }; + width: 384px; + }`, + `paper-card{--paper-card-header:{height:128px;padding:0 48px;background:var(--primary-color);@apply(--layout-vertical);@apply(--layout-end-justified)};--paper-card-header-color:#fff;--paper-card-content:{padding:64px};--paper-card-actions:{@apply(--layout-horizontal);@apply(--layout-end-justified)};width:384px}` +); + +test( + 'should dedupe charset definitions', + processCss, + `@charset 'utf-8'; + + a { + display: block; + } + + @charset 'utf-8'; + + div { + font-family: €42; + }`, + `@charset 'utf-8';a{display:block}div{font-family:€42}` +); + +test( + 'should dedupe selectors', + processCss, + `h1, h2 { + color: red; + } + + h2, h1 { + font-weight: 400; + }`, + `h1,h2{color:red;font-weight:400}` +); + +test( + 'should dedupe semicolons', + processCss, + `div { + font-weight: 900;;;; + color: red;; + }`, + `div{font-weight:900;color:red}` +); + +test( + 'should discard duplicate keyframes', + processCss, + `@keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } + } + + @keyframes fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } + } + + .fadeOut { + animation-name: fadeOut; + }`, + `@keyframes a{0%{opacity:1}to{opacity:0}}.fadeOut{animation-name:a}` +); + +test( + 'should handle css variables', + processCss, + `.Button--action:hover:not(.is-disabled) { + background-color: var(--wc-variant-background-light); + }`, + `.Button--action:hover:not(.is-disabled){background-color:var(--wc-variant-background-light)}` +); + +test( + 'should handle padding shorthand', + processCss, + `h1 { + padding: 10px 20px 30px 40px; + } + + h2 { + padding: 10px 20px 30px; + } + + h3 { + padding: 10px 20px; + } + + h4 { + padding: 10px; + }`, + `h1{padding:10px 20px 30px 40px}h2{padding:10px 20px 30px}h3{padding:10px 20px}h4{padding:10px}` +); + +test( + 'should normalize urls', + processCss, + `body { + background: url("http://somewebsite.com/assets/css/../images/test.jpg"); + }`, + `body{background:url(http://somewebsite.com/assets/images/test.jpg)}` +); + +test( + 'should optimise gradient colour stops', + processCss, + `div { + background-image: -webkit-linear-gradient(black, green, yellow); + }`, + `div{background-image:-webkit-linear-gradient(#000,green,#ff0)}` +); + +test( + 'should not mangle multiple gradients', + processCss, + `.two-gradients { + background: linear-gradient(#fff, #999) no-repeat border-box, linear-gradient(#eee, #777) no-repeat border-box; + background-size: 98px 50px, 18px 50px; + background-position: 0 0, 98px 0; + background-origin: padding-box, padding-box; + }`, + `.two-gradients{background:linear-gradient(#fff,#999) no-repeat border-box,linear-gradient(#eee,#777) no-repeat border-box;background-size:98px 50px,18px 50px;background-position:0 0,98px 0;background-origin:padding-box,padding-box}` +); + +test( + 'should optimise border longhand', + processCss, + `h1 { + border-width: 1px 1px 1px 1px; + border-color: red #f00 red #f00; + border-style: solid solid solid solid; + }`, + `h1{border:1px solid red}` +); + +test( + 'should trim whitespace in border radius', + processCss, + `div { + border-radius: 100% / 10%; + }`, + `div{border-radius:100%/10%}` +); + +test( + 'should trim whitespace in selector combinators', + processCss, + `p + p { + font-style: italic; + } + + h1 ~ p { + font-size: 2em; + } + + p > a { + font-weight: 700; + }`, + `p+p{font-style:italic}h1~p{font-size:2em}p>a{font-weight:700}` +); + +test( + 'should trim whitespace in border radius', + processCss, + `div { + border-radius: 100% / 10%; + }`, + `div{border-radius:100%/10%}` +); + +test( + 'should optimise duration', + processCss, + `.short { + animation-duration: 200ms; + } + + .long { + animation-duration: 2s; + } + + .negative { + animation-duration: -569ms; + }`, + `.short{animation-duration:.2s}.long{animation-duration:2s}.negative{animation-duration:-569ms}` +); + +test( + 'should optimise font face', + processCss, + `@font-face { + font-family: Glyphicons Halflings; + src: url(../fonts/bootstrap/glyphicons-halflings-regular.eot); + src: url(../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"), + url(../fonts/bootstrap/glyphicons-halflings-regular.woff2) format("woff2"), + url(../fonts/bootstrap/glyphicons-halflings-regular.woff) format("woff"), + url(../fonts/bootstrap/glyphicons-halflings-regular.ttf) format("truetype"), + url(../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg") + } + + .icon { + font-family: Glyphicons Halflings; + }`, + `@font-face{font-family:Glyphicons Halflings;src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot);src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/bootstrap/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.icon{font-family:Glyphicons Halflings}` +); + +test( + 'should optimise ie9 hack', + processCss, + `h1 { + margin-top: 10px \\9; + }`, + `h1{margin-top:10px\\9}` +); + +test( + 'should optimise !important', + processCss, + `p { + margin: 100px !important; + }`, + `p{margin:100px!important}` +); + +test( + 'should optimise margin longhand', + processCss, + `h1 { + margin-top: 9px; + margin-right: 10px; + margin-bottom: 11px; + margin-left: 12px; + }`, + `h1{margin:9px 10px 11px 12px}` +); + +test( + 'should optimise margin longhand (2)', + processCss, + `h1 { + margin-top: 9px; + margin-right: 10px; + margin-bottom: 9px; + margin-left: 10px; + }`, + `h1{margin:9px 10px}` +); + +test( + 'should optimise margin longhand (3)', + processCss, + `h1 { + margin-top: 8px; + margin-right: 12px !important; + margin-bottom: 14px; + margin-left: 10px !important; + }`, + `h1{margin-top:8px;margin-right:12px!important;margin-bottom:14px;margin-left:10px!important}` +); + +test( + 'should optimise margin shorthand', + processCss, + `h1 { + /* No expected optimisation */ + margin: 10px 20px 30px 40px; + } + + h2 { + /* Expected to transform to 3 values */ + margin: 10px 20px 30px 20px; + } + + h3 { + /* Expected to transform to 2 values */ + margin: 10px 20px 10px 20px; + } + + h4 { + /* Expected to transform to 1 value */ + margin: 10px 10px 10px 10px; + }`, + `h1{margin:10px 20px 30px 40px}h2{margin:10px 20px 30px}h3{margin:10px 20px}h4{margin:10px}` +); + +test( + 'should optimise padding longhand', + processCss, + `div { + padding-left: 1px; + padding-bottom: 2px; + padding-top: 3px; + padding-right: 4px; + }`, + `div{padding:3px 4px 2px 1px}` +); + +test( + 'should preserve calc spaces', + processCss, + `div { + width: calc(100vw / 2 - 6px + 0); + }`, + `div{width:calc(100vw / 2 - 6px + 0)}` +); + +test( + 'should reduce calc', + processCss, + `h1 { + width: calc(3px * 2 - 1px); + }`, + `h1{width:5px}` +); + +test( + 'should not reduce calc when disabled', + processCss, + `h1 { + width: calc(3px * 2 - 1px); + }`, + `h1{width:calc(3px * 2 - 1px)}`, + { + calc: false, } - tests[parts[0]][parts[1]] = file(join(base, cssFile), 'utf-8'); - return tests; -}, {}); +); -Object.keys(specs).forEach(name => { - const {fixture, expected} = specs[name]; - ava(specName(name), processCss, fixture, expected); -}); +test( + 'should optimise svg', + processCss, + `.box { + background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%201%201%22%20preserveAspectRatio%3D%22none%22%3E%3ClinearGradient%20id%3D%22gradient%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23414042%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23gradient)%22%20%2F%3E%3C%2Fsvg%3E'); + }`, + `.box{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1' preserveAspectRatio='none'%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0%25' y1='0%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%23414042'/%3E%3Cstop offset='100%25' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cpath fill='url(%23a)' d='M0 0h1v1H0z'/%3E%3C/svg%3E")}` +); diff --git a/src/__tests__/fixtures/backgroundRepeatKeepSpaces.expected.css b/src/__tests__/fixtures/backgroundRepeatKeepSpaces.expected.css deleted file mode 100644 index bb1afc0c3..000000000 --- a/src/__tests__/fixtures/backgroundRepeatKeepSpaces.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{background:url(image.png) no-repeat} \ No newline at end of file diff --git a/src/__tests__/fixtures/backgroundRepeatKeepSpaces.fixture.css b/src/__tests__/fixtures/backgroundRepeatKeepSpaces.fixture.css deleted file mode 100644 index ddf3b3f67..000000000 --- a/src/__tests__/fixtures/backgroundRepeatKeepSpaces.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -h1 { - background: url(image.png) no-repeat -} diff --git a/src/__tests__/fixtures/cssMixins.expected.css b/src/__tests__/fixtures/cssMixins.expected.css deleted file mode 100644 index 1df8e7bbc..000000000 --- a/src/__tests__/fixtures/cssMixins.expected.css +++ /dev/null @@ -1 +0,0 @@ -paper-card{--paper-card-content:{padding-top:0};margin:0 auto 16px;width:768px;max-width:calc(100% - 32px)} \ No newline at end of file diff --git a/src/__tests__/fixtures/cssMixins.fixture.css b/src/__tests__/fixtures/cssMixins.fixture.css deleted file mode 100644 index fec11e512..000000000 --- a/src/__tests__/fixtures/cssMixins.fixture.css +++ /dev/null @@ -1,8 +0,0 @@ -paper-card { - --paper-card-content: { - padding-top: 0; - }; - margin: 0 auto 16px; - width: 768px; - max-width: calc(100% - 32px); -} diff --git a/src/__tests__/fixtures/cssMixins2.expected.css b/src/__tests__/fixtures/cssMixins2.expected.css deleted file mode 100644 index 58fa5f3db..000000000 --- a/src/__tests__/fixtures/cssMixins2.expected.css +++ /dev/null @@ -1 +0,0 @@ -paper-card{--paper-card-header:{height:128px;padding:0 48px;background:var(--primary-color);@apply(--layout-vertical);@apply(--layout-end-justified)};--paper-card-header-color:#fff;--paper-card-content:{padding:64px};--paper-card-actions:{@apply(--layout-horizontal);@apply(--layout-end-justified)};width:384px} \ No newline at end of file diff --git a/src/__tests__/fixtures/cssMixins2.fixture.css b/src/__tests__/fixtures/cssMixins2.fixture.css deleted file mode 100644 index 64227c9b0..000000000 --- a/src/__tests__/fixtures/cssMixins2.fixture.css +++ /dev/null @@ -1,19 +0,0 @@ -paper-card { - --paper-card-header: { - height: 128px; - padding: 0 48px; - background: var(--primary-color); - - @apply(--layout-vertical); - @apply(--layout-end-justified); - }; - --paper-card-header-color: #FFF; - --paper-card-content: { - padding: 64px; - }; - --paper-card-actions: { - @apply(--layout-horizontal); - @apply(--layout-end-justified); - }; - width: 384px; -} diff --git a/src/__tests__/fixtures/dedupeCharset.expected.css b/src/__tests__/fixtures/dedupeCharset.expected.css deleted file mode 100644 index fee43bbcc..000000000 --- a/src/__tests__/fixtures/dedupeCharset.expected.css +++ /dev/null @@ -1 +0,0 @@ -@charset 'utf-8';a{display:block}div{font-family:€42} \ No newline at end of file diff --git a/src/__tests__/fixtures/dedupeCharset.fixture.css b/src/__tests__/fixtures/dedupeCharset.fixture.css deleted file mode 100644 index 02da33832..000000000 --- a/src/__tests__/fixtures/dedupeCharset.fixture.css +++ /dev/null @@ -1,11 +0,0 @@ -@charset 'utf-8'; - -a { - display: block; -} - -@charset 'utf-8'; - -div { - font-family: €42; -} diff --git a/src/__tests__/fixtures/dedupeSelectors.expected.css b/src/__tests__/fixtures/dedupeSelectors.expected.css deleted file mode 100644 index d71c63463..000000000 --- a/src/__tests__/fixtures/dedupeSelectors.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1,h2{color:red;font-weight:400} \ No newline at end of file diff --git a/src/__tests__/fixtures/dedupeSelectors.fixture.css b/src/__tests__/fixtures/dedupeSelectors.fixture.css deleted file mode 100644 index 5092451d8..000000000 --- a/src/__tests__/fixtures/dedupeSelectors.fixture.css +++ /dev/null @@ -1,7 +0,0 @@ -h1, h2 { - color: red; -} - -h2, h1 { - font-weight: 400; -} diff --git a/src/__tests__/fixtures/dedupeSemicolons.expected.css b/src/__tests__/fixtures/dedupeSemicolons.expected.css deleted file mode 100644 index 60ed870a5..000000000 --- a/src/__tests__/fixtures/dedupeSemicolons.expected.css +++ /dev/null @@ -1 +0,0 @@ -div{font-weight:900;color:red} \ No newline at end of file diff --git a/src/__tests__/fixtures/dedupeSemicolons.fixture.css b/src/__tests__/fixtures/dedupeSemicolons.fixture.css deleted file mode 100644 index 32c57ce04..000000000 --- a/src/__tests__/fixtures/dedupeSemicolons.fixture.css +++ /dev/null @@ -1,4 +0,0 @@ -div { - font-weight: 900;;;; - color: red;; -} diff --git a/src/__tests__/fixtures/discardDuplicateKeyframes.expected.css b/src/__tests__/fixtures/discardDuplicateKeyframes.expected.css deleted file mode 100644 index 28fd5aac0..000000000 --- a/src/__tests__/fixtures/discardDuplicateKeyframes.expected.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes a{0%{opacity:1}to{opacity:0}}.fadeOut{animation-name:a} \ No newline at end of file diff --git a/src/__tests__/fixtures/discardDuplicateKeyframes.fixture.css b/src/__tests__/fixtures/discardDuplicateKeyframes.fixture.css deleted file mode 100644 index b6994006f..000000000 --- a/src/__tests__/fixtures/discardDuplicateKeyframes.fixture.css +++ /dev/null @@ -1,21 +0,0 @@ -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -.fadeOut { - animation-name: fadeOut; -} diff --git a/src/__tests__/fixtures/handleVars.expected.css b/src/__tests__/fixtures/handleVars.expected.css deleted file mode 100644 index 5d8106c2b..000000000 --- a/src/__tests__/fixtures/handleVars.expected.css +++ /dev/null @@ -1 +0,0 @@ -.Button--action:hover:not(.is-disabled){background-color:var(--wc-variant-background-light)} \ No newline at end of file diff --git a/src/__tests__/fixtures/handleVars.fixture.css b/src/__tests__/fixtures/handleVars.fixture.css deleted file mode 100644 index f2837325f..000000000 --- a/src/__tests__/fixtures/handleVars.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -.Button--action:hover:not(.is-disabled) { - background-color: var(--wc-variant-background-light); -} diff --git a/src/__tests__/fixtures/keepPaddingShorthand.expected.css b/src/__tests__/fixtures/keepPaddingShorthand.expected.css deleted file mode 100644 index 1be02de83..000000000 --- a/src/__tests__/fixtures/keepPaddingShorthand.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{padding:10px 20px 30px 40px}h2{padding:10px 20px 30px}h3{padding:10px 20px}h4{padding:10px} \ No newline at end of file diff --git a/src/__tests__/fixtures/keepPaddingShorthand.fixture.css b/src/__tests__/fixtures/keepPaddingShorthand.fixture.css deleted file mode 100644 index 758f354cb..000000000 --- a/src/__tests__/fixtures/keepPaddingShorthand.fixture.css +++ /dev/null @@ -1,18 +0,0 @@ -/* Padding values are also run through the shorthand optimiser; - this test just ensures that they are not mangled */ - -h1 { - padding: 10px 20px 30px 40px; -} - -h2 { - padding: 10px 20px 30px; -} - -h3 { - padding: 10px 20px; -} - -h4 { - padding: 10px; -} diff --git a/src/__tests__/fixtures/normalizeUrl.expected.css b/src/__tests__/fixtures/normalizeUrl.expected.css deleted file mode 100644 index 0621de12b..000000000 --- a/src/__tests__/fixtures/normalizeUrl.expected.css +++ /dev/null @@ -1 +0,0 @@ -body{background:url(http://somewebsite.com/assets/images/test.jpg)} \ No newline at end of file diff --git a/src/__tests__/fixtures/normalizeUrl.fixture.css b/src/__tests__/fixtures/normalizeUrl.fixture.css deleted file mode 100644 index 06d8a89e6..000000000 --- a/src/__tests__/fixtures/normalizeUrl.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - background: url("http://somewebsite.com/assets/css/../images/test.jpg"); -} diff --git a/src/__tests__/fixtures/optimiseBackgroundGradients.expected.css b/src/__tests__/fixtures/optimiseBackgroundGradients.expected.css deleted file mode 100644 index 178b23696..000000000 --- a/src/__tests__/fixtures/optimiseBackgroundGradients.expected.css +++ /dev/null @@ -1 +0,0 @@ -div{background-image:-webkit-linear-gradient(#000,green,#ff0)} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseBackgroundGradients.fixture.css b/src/__tests__/fixtures/optimiseBackgroundGradients.fixture.css deleted file mode 100644 index 8c851f573..000000000 --- a/src/__tests__/fixtures/optimiseBackgroundGradients.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -div { - background-image: -webkit-linear-gradient(black, green, yellow); -} diff --git a/src/__tests__/fixtures/optimiseBackgroundGradients2.expected.css b/src/__tests__/fixtures/optimiseBackgroundGradients2.expected.css deleted file mode 100644 index 1bd441a7f..000000000 --- a/src/__tests__/fixtures/optimiseBackgroundGradients2.expected.css +++ /dev/null @@ -1 +0,0 @@ -.two-gradients{background:linear-gradient(#fff,#999) no-repeat border-box,linear-gradient(#eee,#777) no-repeat border-box;background-size:98px 50px,18px 50px;background-position:0 0,98px 0;background-origin:padding-box,padding-box} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseBackgroundGradients2.fixture.css b/src/__tests__/fixtures/optimiseBackgroundGradients2.fixture.css deleted file mode 100644 index f05bc0930..000000000 --- a/src/__tests__/fixtures/optimiseBackgroundGradients2.fixture.css +++ /dev/null @@ -1,6 +0,0 @@ -.two-gradients { - background: linear-gradient(#fff, #999) no-repeat border-box, linear-gradient(#eee, #777) no-repeat border-box; - background-size: 98px 50px, 18px 50px; - background-position: 0 0, 98px 0; - background-origin: padding-box, padding-box; -} diff --git a/src/__tests__/fixtures/optimiseBorderLonghand.expected.css b/src/__tests__/fixtures/optimiseBorderLonghand.expected.css deleted file mode 100644 index fec84bb40..000000000 --- a/src/__tests__/fixtures/optimiseBorderLonghand.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{border:1px solid red} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseBorderLonghand.fixture.css b/src/__tests__/fixtures/optimiseBorderLonghand.fixture.css deleted file mode 100644 index 9c3e29d45..000000000 --- a/src/__tests__/fixtures/optimiseBorderLonghand.fixture.css +++ /dev/null @@ -1,5 +0,0 @@ -h1 { - border-width: 1px 1px 1px 1px; - border-color: red #f00 red #f00; - border-style: solid solid solid solid; -} diff --git a/src/__tests__/fixtures/optimiseBorderRadius.expected.css b/src/__tests__/fixtures/optimiseBorderRadius.expected.css deleted file mode 100644 index 6525b7f21..000000000 --- a/src/__tests__/fixtures/optimiseBorderRadius.expected.css +++ /dev/null @@ -1 +0,0 @@ -div{border-radius:100%/10%} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseBorderRadius.fixture.css b/src/__tests__/fixtures/optimiseBorderRadius.fixture.css deleted file mode 100644 index 3ca89b8af..000000000 --- a/src/__tests__/fixtures/optimiseBorderRadius.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -div { - border-radius: 100% / 10%; -} diff --git a/src/__tests__/fixtures/optimiseCombinators.expected.css b/src/__tests__/fixtures/optimiseCombinators.expected.css deleted file mode 100644 index 6c4316d57..000000000 --- a/src/__tests__/fixtures/optimiseCombinators.expected.css +++ /dev/null @@ -1 +0,0 @@ -p+p{font-style:italic}h1~p{font-size:2em}p>a{font-weight:700} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseCombinators.fixture.css b/src/__tests__/fixtures/optimiseCombinators.fixture.css deleted file mode 100644 index 6072260a5..000000000 --- a/src/__tests__/fixtures/optimiseCombinators.fixture.css +++ /dev/null @@ -1,11 +0,0 @@ -p + p { - font-style: italic; -} - -h1 ~ p { - font-size: 2em; -} - -p > a { - font-weight: 700; -} diff --git a/src/__tests__/fixtures/optimiseDuration.expected.css b/src/__tests__/fixtures/optimiseDuration.expected.css deleted file mode 100644 index ed9c440f6..000000000 --- a/src/__tests__/fixtures/optimiseDuration.expected.css +++ /dev/null @@ -1 +0,0 @@ -.short{animation-duration:.2s}.long{animation-duration:2s}.negative{animation-duration:-569ms} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseDuration.fixture.css b/src/__tests__/fixtures/optimiseDuration.fixture.css deleted file mode 100644 index bbc40418c..000000000 --- a/src/__tests__/fixtures/optimiseDuration.fixture.css +++ /dev/null @@ -1,11 +0,0 @@ -.short { - animation-duration: 200ms; -} - -.long { - animation-duration: 2s; -} - -.negative { - animation-duration: -569ms; -} diff --git a/src/__tests__/fixtures/optimiseFontFace.expected.css b/src/__tests__/fixtures/optimiseFontFace.expected.css deleted file mode 100644 index 004e556c0..000000000 --- a/src/__tests__/fixtures/optimiseFontFace.expected.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Glyphicons Halflings;src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot);src:url(../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/bootstrap/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/bootstrap/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.icon{font-family:Glyphicons Halflings} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseFontFace.fixture.css b/src/__tests__/fixtures/optimiseFontFace.fixture.css deleted file mode 100644 index 867f73b2f..000000000 --- a/src/__tests__/fixtures/optimiseFontFace.fixture.css +++ /dev/null @@ -1,13 +0,0 @@ -@font-face { - font-family: Glyphicons Halflings; - src: url(../fonts/bootstrap/glyphicons-halflings-regular.eot); - src: url(../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"), - url(../fonts/bootstrap/glyphicons-halflings-regular.woff2) format("woff2"), - url(../fonts/bootstrap/glyphicons-halflings-regular.woff) format("woff"), - url(../fonts/bootstrap/glyphicons-halflings-regular.ttf) format("truetype"), - url(../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg") -} - -.icon { - font-family: Glyphicons Halflings; -} diff --git a/src/__tests__/fixtures/optimiseIe9Hack.expected.css b/src/__tests__/fixtures/optimiseIe9Hack.expected.css deleted file mode 100644 index f757a5a63..000000000 --- a/src/__tests__/fixtures/optimiseIe9Hack.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{margin-top:10px\9} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseIe9Hack.fixture.css b/src/__tests__/fixtures/optimiseIe9Hack.fixture.css deleted file mode 100644 index cfb2abdc4..000000000 --- a/src/__tests__/fixtures/optimiseIe9Hack.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -h1 { - margin-top: 10px \9; -} diff --git a/src/__tests__/fixtures/optimiseImportant.expected.css b/src/__tests__/fixtures/optimiseImportant.expected.css deleted file mode 100644 index cbf3ce009..000000000 --- a/src/__tests__/fixtures/optimiseImportant.expected.css +++ /dev/null @@ -1 +0,0 @@ -p{margin:100px!important} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseImportant.fixture.css b/src/__tests__/fixtures/optimiseImportant.fixture.css deleted file mode 100644 index 9cdf66510..000000000 --- a/src/__tests__/fixtures/optimiseImportant.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -p { - margin: 100px !important; -} diff --git a/src/__tests__/fixtures/optimiseMarginLonghand.expected.css b/src/__tests__/fixtures/optimiseMarginLonghand.expected.css deleted file mode 100644 index 49bbdd99e..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{margin:9px 10px 11px 12px} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseMarginLonghand.fixture.css b/src/__tests__/fixtures/optimiseMarginLonghand.fixture.css deleted file mode 100644 index cb4ed8250..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand.fixture.css +++ /dev/null @@ -1,6 +0,0 @@ -h1 { - margin-top: 9px; - margin-right: 10px; - margin-bottom: 11px; - margin-left: 12px; -} diff --git a/src/__tests__/fixtures/optimiseMarginLonghand2.expected.css b/src/__tests__/fixtures/optimiseMarginLonghand2.expected.css deleted file mode 100644 index 60f66324a..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand2.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{margin:9px 10px} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseMarginLonghand2.fixture.css b/src/__tests__/fixtures/optimiseMarginLonghand2.fixture.css deleted file mode 100644 index d34970f34..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand2.fixture.css +++ /dev/null @@ -1,6 +0,0 @@ -h1 { - margin-top: 9px; - margin-right: 10px; - margin-bottom: 9px; - margin-left: 10px; -} diff --git a/src/__tests__/fixtures/optimiseMarginLonghand3.expected.css b/src/__tests__/fixtures/optimiseMarginLonghand3.expected.css deleted file mode 100644 index e893949b6..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand3.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{margin-top:8px;margin-right:12px!important;margin-bottom:14px;margin-left:10px!important} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseMarginLonghand3.fixture.css b/src/__tests__/fixtures/optimiseMarginLonghand3.fixture.css deleted file mode 100644 index c80d2906a..000000000 --- a/src/__tests__/fixtures/optimiseMarginLonghand3.fixture.css +++ /dev/null @@ -1,6 +0,0 @@ -h1 { - margin-top: 8px; - margin-right: 12px !important; - margin-bottom: 14px; - margin-left: 10px !important; -} diff --git a/src/__tests__/fixtures/optimiseMarginShorthand.expected.css b/src/__tests__/fixtures/optimiseMarginShorthand.expected.css deleted file mode 100644 index 6379b4aa4..000000000 --- a/src/__tests__/fixtures/optimiseMarginShorthand.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{margin:10px 20px 30px 40px}h2{margin:10px 20px 30px}h3{margin:10px 20px}h4{margin:10px} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimiseMarginShorthand.fixture.css b/src/__tests__/fixtures/optimiseMarginShorthand.fixture.css deleted file mode 100644 index c29b0ec86..000000000 --- a/src/__tests__/fixtures/optimiseMarginShorthand.fixture.css +++ /dev/null @@ -1,19 +0,0 @@ -h1 { - /* No expected optimisation */ - margin: 10px 20px 30px 40px; -} - -h2 { - /* Expected to transform to 3 values */ - margin: 10px 20px 30px 20px; -} - -h3 { - /* Expected to transform to 2 values */ - margin: 10px 20px 10px 20px; -} - -h4 { - /* Expected to transform to 1 value */ - margin: 10px 10px 10px 10px; -} diff --git a/src/__tests__/fixtures/optimisePaddingLonghand.expected.css b/src/__tests__/fixtures/optimisePaddingLonghand.expected.css deleted file mode 100644 index ed6e51100..000000000 --- a/src/__tests__/fixtures/optimisePaddingLonghand.expected.css +++ /dev/null @@ -1 +0,0 @@ -div{padding:3px 4px 2px 1px} \ No newline at end of file diff --git a/src/__tests__/fixtures/optimisePaddingLonghand.fixture.css b/src/__tests__/fixtures/optimisePaddingLonghand.fixture.css deleted file mode 100644 index 4087977d2..000000000 --- a/src/__tests__/fixtures/optimisePaddingLonghand.fixture.css +++ /dev/null @@ -1,6 +0,0 @@ -div { - padding-left: 1px; - padding-bottom: 2px; - padding-top: 3px; - padding-right: 4px; -} diff --git a/src/__tests__/fixtures/preserveCalcSpaces.expected.css b/src/__tests__/fixtures/preserveCalcSpaces.expected.css deleted file mode 100644 index 5980e1f6d..000000000 --- a/src/__tests__/fixtures/preserveCalcSpaces.expected.css +++ /dev/null @@ -1 +0,0 @@ -div{width:calc(100vw / 2 - 6px + 0)} \ No newline at end of file diff --git a/src/__tests__/fixtures/preserveCalcSpaces.fixture.css b/src/__tests__/fixtures/preserveCalcSpaces.fixture.css deleted file mode 100644 index 78a6cd5eb..000000000 --- a/src/__tests__/fixtures/preserveCalcSpaces.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -div { - width: calc(100vw / 2 - 6px + 0); -} diff --git a/src/__tests__/fixtures/reduceCalc.disabled.css b/src/__tests__/fixtures/reduceCalc.disabled.css deleted file mode 100644 index 82521376d..000000000 --- a/src/__tests__/fixtures/reduceCalc.disabled.css +++ /dev/null @@ -1 +0,0 @@ -h1{width:calc(3px * 2 - 1px)} \ No newline at end of file diff --git a/src/__tests__/fixtures/reduceCalc.expected.css b/src/__tests__/fixtures/reduceCalc.expected.css deleted file mode 100644 index a033eb34d..000000000 --- a/src/__tests__/fixtures/reduceCalc.expected.css +++ /dev/null @@ -1 +0,0 @@ -h1{width:5px} \ No newline at end of file diff --git a/src/__tests__/fixtures/reduceCalc.fixture.css b/src/__tests__/fixtures/reduceCalc.fixture.css deleted file mode 100644 index 4c205efab..000000000 --- a/src/__tests__/fixtures/reduceCalc.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -h1 { - width: calc(3px * 2 - 1px); -} diff --git a/src/__tests__/fixtures/urlInsideString.expected.css b/src/__tests__/fixtures/urlInsideString.expected.css deleted file mode 100644 index e0ae50f28..000000000 --- a/src/__tests__/fixtures/urlInsideString.expected.css +++ /dev/null @@ -1 +0,0 @@ -.box{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1' preserveAspectRatio='none'%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0%25' y1='0%25' y2='0%25'%3E%3Cstop offset='0%25' stop-color='%23414042'/%3E%3Cstop offset='100%25' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cpath fill='url(%23a)' d='M0 0h1v1H0z'/%3E%3C/svg%3E")} \ No newline at end of file diff --git a/src/__tests__/fixtures/urlInsideString.fixture.css b/src/__tests__/fixtures/urlInsideString.fixture.css deleted file mode 100644 index 93ed4abeb..000000000 --- a/src/__tests__/fixtures/urlInsideString.fixture.css +++ /dev/null @@ -1,3 +0,0 @@ -.box { - background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%201%201%22%20preserveAspectRatio%3D%22none%22%3E%3ClinearGradient%20id%3D%22gradient%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23414042%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23gradient)%22%20%2F%3E%3C%2Fsvg%3E'); -}