This commit is contained in:
hatuhn
2019-09-13 09:44:33 +07:00
parent 1f1633e801
commit f14a34ba19
16798 changed files with 1652961 additions and 4327 deletions

27
node_modules/rtlcss/test/data/background-image.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
module.exports = [
{
'should': 'Should process string map in url (processUrls:true)',
'expected': 'div { background-image: url(images/rtl.png), url(images/right.png);}',
'input': 'div { background-image: url(images/ltr.png), url(images/left.png);}',
'reversable': true,
'options': { 'processUrls': true }
},
{
'should': 'Should not negate color value for linear gradient',
'expected': 'div { background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, #ff8 100%);}',
'input': 'div { background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, #ff8 100%);}',
'reversable': true
},
{
'should': 'Should not negate color value for linear gradient with calc',
'expected': 'div { background-image: linear-gradient(rgba(255, 255, calc((125 * 2) + 5), 0.3) 0%, #ff8 100%);}',
'input': 'div { background-image: linear-gradient(rgba(255, 255, calc((125 * 2) + 5), 0.3) 0%, #ff8 100%);}',
'reversable': true
},
{
'should': 'Should negate angle value for linear gradient',
'expected': 'div { background-image: linear-gradient(13.25deg, rgba(255, 255, 255, .15) 25%, transparent 25%);}',
'input': 'div { background-image: linear-gradient(-13.25deg, rgba(255, 255, 255, .15) 25%, transparent 25%);}',
'reversable': true
}
]

98
node_modules/rtlcss/test/data/background-position.js generated vendored Normal file
View File

@@ -0,0 +1,98 @@
module.exports = [
{
'should': 'Should mirror position (keywords only)',
'expected': 'div {background-position:top left, right bottom}',
'input': 'div {background-position:top right, left bottom}',
'reversable': true
},
{
'should': 'Should ignore mirroring invalid position',
'expected': 'div {background-position:25% left, right 25%;}',
'input': 'div {background-position:75% left, left 25%;}',
'reversable': true
},
{
'should': 'Should complement percentage horizontal position ',
'expected': 'div {background-position:100% 75%;}',
'input': 'div {background-position:0 75%;}',
'reversable': false
},
{
'should': 'Should complement percentage horizontal position with calc',
'expected': 'div {background-position:calc(100% - (30% + 50px)) 75%;}',
'input': 'div {background-position:calc(30% + 50px) 75%;}',
'reversable': false
},
{
'should': 'Should complement percentage horizontal position ',
'expected': 'div {background-position:81.25% 75%, 10.75% top;}',
'input': 'div {background-position:18.75% 75%, 89.25% top;}',
'reversable': true
},
{
'should': 'Should complement percentage horizontal position with calc',
'expected': 'div {background-position:calc(100% - (30% + 50px)) calc(30% + 50px), 10.75% top;}',
'input': 'div {background-position:calc(30% + 50px) calc(30% + 50px), 89.25% top;}',
'reversable': false
},
{
'should': 'Should mirror background-position',
'expected': 'div {background-position:right 75%, left top;}',
'input': 'div {background-position:left 75%, right top;}',
'reversable': true
},
{
'should': 'Should mirror background-position (calc)',
'expected': 'div {background-position:right -ms-calc(30% + 50px), left top;}',
'input': 'div {background-position:left -ms-calc(30% + 50px), right top;}',
'reversable': true
},
{
'should': 'Should complement percentage: position-x (treat 0 as 0%)',
'expected': 'div {background-position-x:100%, 0%;}',
'input': 'div {background-position-x:0, 100%;}',
'reversable': false
},
{
'should': 'Should complement percentage: position-x',
'expected': 'div {background-position-x:81.75%, 11%;}',
'input': 'div {background-position-x:18.25%, 89%;}',
'reversable': true
},
{
'should': 'Should complement percentage with calc: position-x',
'expected': 'div {background-position-x:calc(100% - (30% + 50px)), -webkit-calc(100% - (30% + 50px));}',
'input': 'div {background-position-x:calc(30% + 50px), -webkit-calc(30% + 50px);}',
'reversable': false
},
{
'should': 'Should mirror position-x',
'expected': 'div {background-position-x:right, left;}',
'input': 'div {background-position-x:left, right;}',
'reversable': true
},
{
'should': 'Should mirror position-x (calc)',
'expected': 'div {background-position-x:calc(100% - (30% + 50px)), calc(100% - (50px * 5));}',
'input': 'div {background-position-x:calc(30% + 50px), calc(50px * 5);}',
'reversable': false
},
{
'should': 'Should keep as is: position-x',
'expected': 'div {background-position-x:100px, 0px;}',
'input': 'div {background-position-x:100px, 0px;}',
'reversable': true
},
{
'should': 'Should mirror background-position edge offsets (4 values)',
'expected': 'div {background-position: left 5px bottom 5px, bottom 15px right 15px;}',
'input': 'div {background-position: right 5px bottom 5px, bottom 15px left 15px;}',
'reversable': true
},
{
'should': 'Should mirror background-position edge offsets (3 values)',
'expected': 'div {background-position: left 5px bottom, top 15px right;}',
'input': 'div {background-position: right 5px bottom, top 15px left;}',
'reversable': true
}
]

84
node_modules/rtlcss/test/data/background.js generated vendored Normal file
View File

@@ -0,0 +1,84 @@
module.exports = [
{
'should': 'Should treat 0 as 0%',
'expected': '.banner { background: 100% top url(topbanner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 0 top url(topbanner.png) #00D repeat-y fixed; }',
'reversable': false
},
{
'should': 'Should complement percentage horizontal position',
'expected': '.banner { background: 81% top url(topbanner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 19% top url(topbanner.png) #00D repeat-y fixed; }',
'reversable': true
},
{
'should': 'Should complement calc horizontal position',
'expected': '.banner { background: calc(100% - (19% + 2px)) top url(topbanner.png) #00D repeat-y fixed; }',
'input': '.banner { background: calc(19% + 2px) top url(topbanner.png) #00D repeat-y fixed; }',
'reversable': false
},
{
'should': 'Should mirror keyword horizontal position',
'expected': '.banner { background: right top url(topbanner.png) #00D repeat-y fixed; }',
'input': '.banner { background: left top url(topbanner.png) #00D repeat-y fixed; }',
'reversable': true
},
{
'should': 'Should not process string map in url (default)',
'expected': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'reversable': true
},
{
'should': 'Should process string map in url (processUrls:true)',
'expected': '.banner { background: 10px top url(rtl-top-left-banner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'reversable': true,
'options': { 'processUrls': true }
},
{
'should': 'Should process string map in url (processUrls:{decl:true})',
'expected': '.banner { background: 10px top url(rtl-top-left-banner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'reversable': true,
'options': { 'processUrls': { 'decl': true } }
},
{
'should': 'Should not process string map in url (processUrls:{atrule:true})',
'expected': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ltr-top-right-banner.png) #00D repeat-y fixed; }',
'reversable': true,
'options': { 'processUrls': { 'atrule': true } }
},
{
'should': 'Should not swap bright:bleft, ultra:urtla',
'expected': '.banner { background: 10px top url(ultra/bright.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ultra/bright.png) #00D repeat-y fixed; }',
'reversable': true
},
{
'should': 'Should swap bright:bleft, ultra:urtla (processUrls: true, greedy)',
'expected': '.banner { background: 10px top url(urtla/bleft.png) #00D repeat-y fixed; }',
'input': '.banner { background: 10px top url(ultra/bright.png) #00D repeat-y fixed; }',
'reversable': true,
'options': { 'processUrls': true, 'greedy': true }
},
{
'should': 'Should not flip hex colors ',
'expected': '.banner { background: #ff0; }',
'input': '.banner { background: #ff0; }',
'reversable': true
},
{
'should': 'Should treat 0 as 0% (url first)',
'expected': '.banner { background: url(topbanner.png) 100% top #00D repeat-y fixed; }',
'input': '.banner { background: url(topbanner.png) 0 top #00D repeat-y fixed; }',
'reversable': false
},
{
'should': 'Should complement calc horizontal position (url first)',
'expected': '.banner { background: url(topbanner.png) calc(100% - (19% + 2px)) top #00D repeat-y fixed; }',
'input': '.banner { background: url(topbanner.png) calc(19% + 2px) top #00D repeat-y fixed; }',
'reversable': false
}
]

56
node_modules/rtlcss/test/data/properties.js generated vendored Normal file
View File

@@ -0,0 +1,56 @@
module.exports = [
{
'should': 'Should mirror property name: border-top-right-radius',
'expected': 'div { border-top-left-radius:15px; }',
'input': 'div { border-top-right-radius:15px; }',
'reversable': true
},
{
'should': 'Should mirror property name: border-bottom-right-radius',
'expected': 'div { border-bottom-left-radius:15px; }',
'input': 'div { border-bottom-right-radius:15px; }',
'reversable': true
},
{
'should': 'Should mirror property name: border-left',
'expected': 'div { border-right:1px solid black; }',
'input': 'div { border-left:1px solid black; }',
'reversable': true
},
{
'should': 'Should mirror property name: border-left-color',
'expected': 'div { border-right-color:black; }',
'input': 'div { border-left-color:black; }',
'reversable': true
},
{
'should': 'Should mirror property name: border-left-style',
'expected': 'div { border-right-style:solid; }',
'input': 'div { border-left-style:solid; }',
'reversable': true
},
{
'should': 'Should mirror property name: border-left-width',
'expected': 'div { border-right-width:1em; }',
'input': 'div { border-left-width:1em; }',
'reversable': true
},
{
'should': 'Should mirror property name: left',
'expected': 'div { right:auto; }',
'input': 'div { left:auto; }',
'reversable': true
},
{
'should': 'Should mirror property name: margin-left',
'expected': 'div { margin-right:2em; }',
'input': 'div { margin-left:2em; }',
'reversable': true
},
{
'should': 'Should mirror property name: padding-left',
'expected': 'div { padding-right:2em; }',
'input': 'div { padding-left:2em; }',
'reversable': true
}
]

408
node_modules/rtlcss/test/data/rtlcss-directives.js generated vendored Normal file
View File

@@ -0,0 +1,408 @@
module.exports = [
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '/*rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true }
},
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true, clean: false)',
'expected': '/*rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'input': '/*rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true, 'clean': false }
},
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true, !important comment)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '/*!rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true }
},
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true, clean:false, !important comment)',
'expected': '/*!rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'input': '/*!rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true, 'clean': false }
},
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true,greedy)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '/*rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true, 'greedy': true }
},
{
'should': 'Should auto rename selectors having no directional decl. unless forced to ignore. (autoRename:true, greedy, !important comment)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '/*!rtl:ignore*/ .right .rtl .bright .ultra { display:block; }',
'reversable': false,
'options': { 'autoRename': true, 'greedy': true }
},
{
'should': 'Should rename selectors when forced. (default)',
'expected': '.left .ltr .bright .ultra { display:block; }',
'input': '/*rtl:rename*/.right .rtl .bright .ultra { display:block; }',
'reversable': false
},
{
'should': 'Should rename selectors when forced. (clean:false)',
'expected': '/*rtl:rename*/.left .ltr .bright .ultra { display:block; left:0;}',
'input': '/*rtl:rename*/.right .rtl .bright .ultra { display:block; right:0;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should rename selectors when forced. (!important comment)',
'expected': '.left .ltr .bright .ultra { display:block; left:0; }',
'input': '/*!rtl:rename*/.right .rtl .bright .ultra { display:block; right:0; }',
'reversable': false
},
{
'should': 'Should rename selectors when forced. (clean:false, !important comment)',
'expected': '/*!rtl:rename*/.left .ltr .bright .ultra { display:block; left:0; }',
'input': '/*!rtl:rename*/.right .rtl .bright .ultra { display:block; right:0; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should rename selectors when forced. (greedy)',
'expected': '.left .ltr .bleft .urtla { display:block; left:0; }',
'input': '/*rtl:rename*/.right .rtl .bright .ultra { display:block; right:0; }',
'reversable': false,
'options': { 'greedy': true }
},
{
'should': 'Should rename selectors when forced. (greedy, !important comment)',
'expected': '.left .ltr .bleft .urtla { display:block; left:0; }',
'input': '/*!rtl:rename*/.right .rtl .bright .ultra { display:block; right:0; }',
'reversable': false,
'options': { 'greedy': true }
},
{
'should': 'Should prepend value. (default)',
'expected': 'div { font-family: "Droid Arabic Kufi", "Droid Sans", Tahoma; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:prepend:"Droid Arabic Kufi", */; }',
'reversable': false
},
{
'should': 'Should prepend value. (clean:false)',
'expected': 'div { font-family: "Droid Arabic Kufi", "Droid Sans", Tahoma/*rtl:prepend:"Droid Arabic Kufi", */; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:prepend:"Droid Arabic Kufi", */; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should prepend value (!important comment)',
'expected': 'div { font-family: "Droid Arabic Kufi", "Droid Sans", Tahoma; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:prepend:"Droid Arabic Kufi", */; }',
'reversable': false
},
{
'should': 'Should prepend value (clean:false, !important comment)',
'expected': 'div { font-family: "Droid Arabic Kufi", "Droid Sans", Tahoma/*!rtl:prepend:"Droid Arabic Kufi", */; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:prepend:"Droid Arabic Kufi", */; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should replace value.',
'expected': 'div { font-family: "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:"Droid Arabic Kufi"*/; }',
'reversable': false
},
{
'should': 'Should replace value.(clean:false)',
'expected': 'div { font-family: "Droid Arabic Kufi"/*rtl:"Droid Arabic Kufi"*/; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:"Droid Arabic Kufi"*/; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should replace value. (!important comment)',
'expected': 'div { font-family: "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:"Droid Arabic Kufi"*/; }',
'reversable': false
},
{
'should': 'Should replace value. (clean:false, !important comment)',
'expected': 'div { font-family: "Droid Arabic Kufi"/*!rtl:"Droid Arabic Kufi"*/; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:"Droid Arabic Kufi"*/; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should append value. (default)',
'expected': 'div { font-family: "Droid Sans", Tahoma, "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:append:, "Droid Arabic Kufi"*/; }',
'reversable': false
},
{
'should': 'Should append value. (clean:false)',
'expected': 'div { font-family: "Droid Sans", Tahoma/*rtl:append:, "Droid Arabic Kufi"*/, "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*rtl:append:, "Droid Arabic Kufi"*/; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should append value. (!important comment)',
'expected': 'div { font-family: "Droid Sans", Tahoma, "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:append:, "Droid Arabic Kufi"*/; }',
'reversable': false
},
{
'should': 'Should append value. (clean:false, !important comment)',
'expected': 'div { font-family: "Droid Sans", Tahoma/*!rtl:append:, "Droid Arabic Kufi"*/, "Droid Arabic Kufi"; }',
'input': 'div { font-family: "Droid Sans", Tahoma/*!rtl:append:, "Droid Arabic Kufi"*/; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should insert value. (default)',
'expected': 'div { font-family: "Droid Sans", "Droid Arabic Kufi", Tahoma; }',
'input': 'div { font-family: "Droid Sans"/*rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'reversable': false
},
{
'should': 'Should insert value. (clean:false)',
'expected': 'div { font-family: "Droid Sans", "Droid Arabic Kufi"/*rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'input': 'div { font-family: "Droid Sans"/*rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should insert value. (!important comment)',
'expected': 'div { font-family: "Droid Sans", "Droid Arabic Kufi", Tahoma; }',
'input': 'div { font-family: "Droid Sans"/*!rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'reversable': false
},
{
'should': 'Should insert value. (clean:false, !important comment)',
'expected': 'div { font-family: "Droid Sans", "Droid Arabic Kufi"/*!rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'input': 'div { font-family: "Droid Sans"/*!rtl:insert:, "Droid Arabic Kufi"*/, Tahoma; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should ignore flipping - rule level (default)',
'expected': 'div { left:10px; text-align:right;}',
'input': '/*rtl:ignore*/div { left:10px; text-align:right;}',
'reversable': false
},
{
'should': 'Should ignore flipping - rule level (clean:false)',
'expected': '/*rtl:ignore*/div { left:10px; text-align:right;}',
'input': '/*rtl:ignore*/div { left:10px; text-align:right;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should ignore flipping - rule level (default, !important comment)',
'expected': 'div { left:10px; text-align:right;}',
'input': '/*!rtl:ignore*/div { left:10px; text-align:right;}',
'reversable': false
},
{
'should': 'Should ignore flipping - rule level (clean:false , !important comment)',
'expected': '/*!rtl:ignore*/div { left:10px; text-align:right;}',
'input': '/*!rtl:ignore*/div { left:10px; text-align:right;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should ignore flipping - decl. level (default)',
'expected': 'div { left:10px;text-align:left;}',
'input': 'div { left:10px/*rtl:ignore*/;text-align:right;}',
'reversable': false
},
{
'should': 'Should ignore flipping - decl. level (clean:false)',
'expected': 'div { left:10px/*rtl:ignore*/;text-align:left;}',
'input': 'div { left:10px/*rtl:ignore*/;text-align:right;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should ignore flipping - decl. level (default, !important comment)',
'expected': 'div { left:10px;text-align:left;}',
'input': 'div { left:10px/*!rtl:ignore*/;text-align:right;}',
'reversable': false
},
{
'should': 'Should ignore flipping - decl. level (clean:false, !important comment)',
'expected': 'div { left:10px/*!rtl:ignore*/;text-align:left;}',
'input': 'div { left:10px/*!rtl:ignore*/;text-align:right;}',
'options': { 'clean': false }
},
{
'should': 'Should add raw css rules',
'expected': 'div { left:10px;text-align:right;} a {display:block;}',
'input': '/*rtl:raw:div { left:10px;text-align:right;}*/ a {display:block;}',
'reversable': false
},
{
'should': 'Should add raw css declarations',
'expected': 'div { font-family: "Droid Kufi Arabic"; right:10px;text-align:left;}',
'input': 'div { /*rtl:raw: font-family: "Droid Kufi Arabic";*/ left:10px;text-align:right;}',
'reversable': false
},
{
'should': 'Should add raw css (clean:false)',
'expected': 'div { left:10px;text-align:right;} /*rtl:raw:div { left:10px;text-align:right;}*/ a {display:block;}',
'input': '/*rtl:raw:div { left:10px;text-align:right;}*/ a {display:block;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should add raw css declarations (clean:false)',
'expected': 'div { font-family: "Droid Kufi Arabic"; /*rtl:raw: font-family: "Droid Kufi Arabic";*/ right:10px;text-align:left;}',
'input': 'div { /*rtl:raw: font-family: "Droid Kufi Arabic";*/ left:10px;text-align:right;}',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should support block-style',
'expected': ' div {left:10px; text-align:right;}',
'input': ' div {/*rtl:begin:ignore*/left:10px;/*rtl:end:ignore*/ text-align:left;}',
'reversable': false
},
{
'should': 'Should support none block-style',
'expected': ' div {left:10px; text-align:left;}',
'input': ' /*rtl:ignore*/div {left:10px; text-align:left;}',
'reversable': false
},
{
'should': 'Should remove rules (block-style)',
'expected': ' b{float:right;}',
'input': ' /*rtl:begin:remove*/div {left:10px; text-align:left;} a { display:block;} /*rtl:end:remove*/ b{float:left;}',
'reversable': false
},
{
'should': 'Should remove rules',
'expected': ' a { display:block;} b{float:right;}',
'input': ' /*rtl:remove*/div {left:10px; text-align:left;} a { display:block;} b{float:left;}',
'reversable': false
},
{
'should': 'Should remove declarations',
'expected': ' div { text-align:right;}',
'input': ' div {/*rtl:remove*/left:10px; text-align:left;}',
'reversable': false
},
{
'should': 'Should remove declarations (block-style)',
'expected': ' div { display:inline;}',
'input': ' div {/*rtl:begin:remove*/left:10px; text-align:left;/*rtl:end:remove*/ display:inline;}',
'reversable': false
},
{
'should': 'Should override options',
'expected': '.right { display:inline;}',
'input': '/*rtl:options:{"autoRename":false}*/ .right { display:inline;}',
'reversable': false,
'options': { 'autoRename': true }
},
{
'should': 'Should support nested options override',
'expected': '.right { display:inline;}.bleft { display:inline;}',
'input': '/*rtl:begin:options:{"autoRename":false}*/ .right { display:inline;} /*rtl:begin:options:{"autoRename":true, "greedy": true}*/.bright { display:inline;}/*rtl:end:options*//*rtl:end:options*/',
'reversable': false,
'options': { 'autoRename': true }
},
{
'should': 'Should ignore the target node (decl)',
'expected': `
.code {
direction:ltr;
text-align:left;
float: right;
text-align: left;
}
`,
'input': `
.code {
/*rtl:ignore*/
direction:ltr;
/*rtl:ignore*/
text-align:left;
/*rtl:ignore*/
float: right;
/*rtl:ignore*/
text-align: left;
}
`,
'reversable': false
},
{
'should': 'Should ignore the target node (rule)',
'expected': `
.example-1 {
text-align:right;
left:10px;
}
.example-2 {
left:10px;
text-align:right;
}
.example-3 {
right:10px;
text-align:left;
}
`,
'input': `
/*rtl:ignore*/
.example-1 {
text-align:right;
left:10px;
}
/*rtl:ignore*/
.example-2 {
left:10px;
text-align:right;
}
.example-3 {
left:10px;
text-align:right;
}
`,
'reversable': false
},
{
'should': 'Should ignore the target node (atrule)',
'expected': `
@media screen and (max-width: 568px) {
.example {
left:10px;
text-align:right;
}
}
@media screen and (max-width: 568px) {
.example {
right:10px;
text-align:left;
}
}
`,
'input': `
/*rtl:ignore*/
@media screen and (max-width: 568px) {
.example {
left:10px;
text-align:right;
}
}
@media screen and (max-width: 568px) {
.example {
left:10px;
text-align:right;
}
}
`,
'reversable': false
}
]

27
node_modules/rtlcss/test/data/rtlcss-hooks.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
var pkg = require('../../package.json')
module.exports = [
{
'should': 'Should support hooks (pre)',
'expected': '.float-left { float: left; }',
'input': '.float-right { float: right; }',
'reversable': true,
'hooks': {
pre: function (css, postcss) {
css.insertBefore(css.nodes[0], postcss.comment({text: 'rtl:begin:rename'}))
css.insertAfter(css.nodes[css.nodes.length - 1], postcss.comment({text: 'rtl:end:rename'}))
}
}
},
{
'should': 'Should support hooks (post)',
'expected': `/* Generated by RTLCSS v${pkg.version} */\n.float-right { float: left; }`,
'input': '.float-right { float: right; }',
'reversable': false,
'hooks': {
post: function (css, postcss) {
css.insertBefore(css.nodes[0], postcss.comment({text: `Generated by RTLCSS v${pkg.version}`}))
}
}
}
]

130
node_modules/rtlcss/test/data/rtlcss-options.js generated vendored Normal file
View File

@@ -0,0 +1,130 @@
module.exports = [
{
'should': 'Should not rename selectors unless a pair exits (autoRename:true,autoRenameStrict:true )',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '.right .rtl .bright .ultra { display:block; }',
'reversable': true,
'options': { 'autoRename': true, 'autoRenameStrict': true }
},
{
'should': 'Should rename selectors only if a pair exits (autoRename:true,autoRenameStrict:true )',
'expected': '.left { display:block; } .right { display:none; }',
'input': '.right { display:block; } .left { display:none; }',
'reversable': true,
'options': { 'autoRename': true, 'autoRenameStrict': true }
},
{
'should': 'Should not rename selectors having directional decl. (default)',
'expected': '.right .rtl .bright .ultra { display:block; right:0; }',
'input': '.right .rtl .bright .ultra { display:block; left:0; }',
'reversable': true
},
{
'should': 'Should not auto rename selectors having no directional decl. (default)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '.right .rtl .bright .ultra { display:block; }',
'reversable': true
},
{
'should': 'Should not auto rename selectors having no directional decl. (greedy)',
'expected': '.right .rtl .bright .ultra { display:block; }',
'input': '.right .rtl .bright .ultra { display:block; }',
'reversable': true,
'options': { 'greedy': true }
},
{
'should': 'Should auto rename selectors having no directional decl. (autoRename:true)',
'expected': '.left .ltr .bright .ultra { display:block; }',
'input': '.right .rtl .bright .ultra { display:block; }',
'reversable': true,
'options': { 'autoRename': true }
},
{
'should': 'Should auto rename selectors having no directional decl. (autoRename:true,greedy)',
'expected': '.left .ltr .bleft .urtla { display:block; }',
'input': '.right .rtl .bright .ultra { display:block; }',
'reversable': true,
'options': { 'autoRename': true, 'greedy': true }
},
{
'should': 'Should not auto rename when rules are flipped via directives (autoRename:true)',
'expected': 'div.right { display:block; font-family: "Droid Sans", Tahoma, "Droid Arabic Kufi"; }',
'input': 'div.right { display:block; font-family: "Droid Sans", Tahoma/*!rtl:append:, "Droid Arabic Kufi"*/; }',
'reversable': false,
'options': { 'autoRename': true }
},
{
'should': 'Should not preserve processing directive. (default)',
'expected': 'div { left:0; }',
'input': '/*rtl:ignore*/div { left:0; }',
'reversable': false
},
{
'should': 'Should preserve processing directive. (clean:false)',
'expected': '/*rtl:ignore*/div { left:0; }',
'input': '/*rtl:ignore*/div { left:0; }',
'reversable': false,
'options': { 'clean': false }
},
{
'should': 'Should not process string map in url (default)',
'expected': 'div { background-image: url(ltr/left.png); right:0; }',
'input': 'div { background-image: url(ltr/left.png); left:0; }',
'reversable': true
},
{
'should': 'Should process urls (processUrls:true)',
'expected': 'div { background-image: url(rtl/right.png); right:0; }',
'input': 'div { background-image: url(ltr/left.png); left:0; }',
'reversable': true,
'options': { 'processUrls': true }
},
{
'should': 'Should process urls in declarations (processUrls:{decl:true})',
'expected': 'div { background-image: url(rtl/right.png); right:0; }',
'input': 'div { background-image: url(ltr/left.png); left:0; }',
'reversable': true,
'options': { 'processUrls': { 'decl': true } }
},
{
'should': 'Should process @import url (processUrls:true)',
'expected': 'div{display:none;} @import url("rtl/right.css");',
'input': 'div{display:none;} @import url("ltr/left.css");',
'reversable': true,
'options': { 'processUrls': true }
},
{
'should': 'Should process url in atrule (processUrls:{atrule:true})',
'expected': 'div{display:none;} @import url("rtl/right.css");',
'input': 'div{display:none;} @import url("ltr/left.css");',
'reversable': true,
'options': { 'processUrls': { 'atrule': true } }
},
{
'should': 'Should respect word boundaries when processing @import url (processUrls:true,greedy:false)',
'expected': 'div{display:none;} @import url("ultr/bright.css");',
'input': 'div{display:none;} @import url("ultr/bright.css");',
'reversable': true,
'options': { 'processUrls': true, 'greedy': false }
},
{
'should': 'Should not respect word boundaries when processing @import url (processUrls:true,greedy:true)',
'expected': 'div{display:none;} @import url("urtla/bleft.css");',
'input': 'div{display:none;} @import url("ultra/bright.css");',
'reversable': true,
'options': { 'processUrls': true, 'greedy': true }
},
{
'should': 'Should preserve comments inside declarations',
'expected': 'div { border-radius: 40.25px 10.5px /*comment*/ 10.75px 40.3px; }',
'input': 'div { border-radius: 10.5px 40.25px /*comment*/ 40.3px 10.75px; }',
'reversable': true
},
{
'should': 'Should flip background-position when expressed in units (useCalc:true)',
'expected': 'div { background-position: calc(100% - 10px) 0 }',
'input': 'div { background-position: 10px 0 }',
'reversable': false,
'options': { 'useCalc': true }
}
]

46
node_modules/rtlcss/test/data/rtlcss-plugins.js generated vendored Normal file
View File

@@ -0,0 +1,46 @@
module.exports = [
{
'should': 'Should support plugins',
'expected': 'div:before { content: "ABC";} div:after { content: "B";}',
'input': 'div:before { content: "A";} div:after { content: "B";}',
'reversable': true,
'plugins': [
{
'name': 'test',
'directives': {
'control': {},
'value': []
},
'processors': [
{
'name': 'content',
'expr': /content/im,
'action': function (prop, value, cxt) {
if (value === '"A"') {
return { 'prop': prop, 'value': '"ABC"' }
} else if (value === '"ABC"') {
return { 'prop': prop, 'value': '"A"' }
}
return { 'prop': prop, 'value': value }
}
}
]
}
]
},
{
'should': 'Should allow overriding default plugin',
'expected': 'div { text-align:right;}',
'input': 'div { text-align:right;}',
'plugins': [
{
'name': 'rtlcss',
'directives': {
'control': {},
'value': []
},
'processors': []
}
]
}
]

99
node_modules/rtlcss/test/data/rtlcss-stringMap.js generated vendored Normal file
View File

@@ -0,0 +1,99 @@
module.exports = [
{
'should': 'Should rename "left", "Left", "LEFT" (autoRename:true). ',
'expected': 'div.right, div.Right, div.RIGHT, div.respectLeft { width:10px;}',
'input': 'div.left, div.Left, div.LEFT, div.respectLeft { width:10px;}',
'reversable': true,
'options': { 'autoRename': true }
},
{
'should': 'Should rename "left", "Left", "LEFT" (autoRename:true, greedy). ',
'expected': 'div.right, div.Right, div.RIGHT, div.respectRight { width:10px;}',
'input': 'div.left, div.Left, div.LEFT, div.respectLeft { width:10px;}',
'reversable': true,
'options': {
'autoRename': true,
'greedy': true
}
},
{
'should': 'Should rename "ltr", "Ltr", "LTR" (autoRename:true). ',
'expected': 'div.rtl, div.Rtl, div.RTL, div.Ultra { width:10px;}',
'input': 'div.ltr, div.Ltr, div.LTR, div.Ultra { width:10px;}',
'reversable': true,
'options': { 'autoRename': true }
},
{
'should': 'Should rename "ltr", "Ltr", "LTR" (autoRename:true, greedy). ',
'expected': 'div.rtl, div.Rtl, div.RTL, div.Urtla { width:10px;}',
'input': 'div.ltr, div.Ltr, div.LTR, div.Ultra { width:10px;}',
'reversable': true,
'options': {
'autoRename': true,
'greedy': true
}
},
{
'should': 'Should rename "prev"/"next" (autoRename:true, custom stringMap - *)',
'expected': 'div.next, div.Right { width:10px;}',
'input': 'div.prev, div.Left { width:10px;}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: '*' } }] }
},
{
'should': 'Should rename "prev"/"next" (autoRename:true, custom stringMap - selector)',
'expected': 'div.next, div.Right { width:10px;}',
'input': 'div.prev, div.Left { width:10px;}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: 'selector' } }] }
},
{
'should': 'Should not rename "prev"/"next" (autoRename:true, custom stringMap - url)',
'expected': 'div.prev, div.Right { width:10px;}',
'input': 'div.prev, div.Left { width:10px;}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: 'url' } }] }
},
{
'should': 'Should not swap "prev"/"next" in Url or Selector (autoRename:true, custom stringMap - url)',
'expected': 'div.prev { background-image: url(/content/pix/prev.png);}',
'input': 'div.prev { background-image: url(/content/pix/prev.png);}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: 'url' } }] }
},
{
'should': 'Should not swap "prev"/"next" in Url and Rename in selector (autoRename:true, custom stringMap - *)',
'expected': 'div.next { display:block }; div.next { background-image: url(/content/pix/next.png);}',
'input': 'div.prev { display:block }; div.prev { background-image: url(/content/pix/next.png);}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: '*' } }] }
},
{
'should': 'Should swap "prev"/"next" in Url (autoRename:true, processUrls:true)',
'expected': 'div.prev { background-image: url(/content/pix/next.png);}',
'input': 'div.prev { background-image: url(/content/pix/prev.png);}',
'reversable': true,
'options': { 'autoRename': true, 'processUrls': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: 'url' } }] }
},
{
'should': 'Should swap "prev"/"next" in Url and Rename in selector (autoRename:true, processUrls:true)',
'expected': 'div.next { display:block }; div.prev { background-image: url(/content/pix/prev.png);}',
'input': 'div.prev { display:block }; div.prev { background-image: url(/content/pix/next.png);}',
'reversable': true,
'options': { 'autoRename': true, 'processUrls': true, 'stringMap': [{ 'search': 'prev', 'replace': 'next', 'options': { scope: '*' } }] }
},
{
'should': 'Should rename "previous" to "nextious" (autoRename:true, greedy: true)',
'expected': 'div.nextious{ width:10px;}',
'input': 'div.previous{ width:10px;}',
'reversable': true,
'options': { 'autoRename': true, 'stringMap': [{ 'name': 'prev-next', 'search': 'prev', 'replace': 'next', 'options': { 'greedy': true } }] }
},
{
'should': 'Should escape strings used in stringMap (processUrls: true, custom stringMap)',
'expected': '@import url("//a.b/c-rtl.css"); @import url("//a.b/css");',
'input': '@import url("//a.b/c.css"); @import url("//a.b/css");',
'reversable': true,
'options': { 'processUrls': true, 'stringMap': [{ 'name': 'import-stylesheet', 'priority': 1, 'exclusive': true, 'search': ['.css'], 'replace': ['-rtl.css'], 'options': { 'scope': 'url' } }] }
}
]

8
node_modules/rtlcss/test/data/special.js generated vendored Normal file
View File

@@ -0,0 +1,8 @@
module.exports = [
{
'should': 'Should not negate tokens',
'expected': 'div { box-shadow: rgba(0, 128, 128, 0.98) inset -5em 1em 0;}',
'input': 'div { box-shadow: rgba(0, 128, 128, 0.98) inset 5em 1em 0;}',
'reversable': true
}
]

146
node_modules/rtlcss/test/data/transform-origin.js generated vendored Normal file
View File

@@ -0,0 +1,146 @@
module.exports = [
{
'should': 'Should mirror (x-offset: 0 means 0%)',
'expected': 'div { transform-origin:100%; }',
'input': 'div { transform-origin:0; }',
'reversable': false
},
{
'should': 'Should mirror (x-offset)',
'expected': 'div { transform-origin:90.25%; }',
'input': 'div { transform-origin:9.75%; }',
'reversable': true
},
{
'should': 'Should mirror calc (x-offset)',
'expected': 'div { transform-origin: -moz-calc(100% - (((25%/2) * 10px))); }',
'input': 'div { transform-origin: -moz-calc(((25%/2) * 10px)); }',
'reversable': false
},
{
'should': 'Should not mirror (x-offset: not percent, not calc)',
'expected': 'div { transform-origin:10.75px; }',
'input': 'div { transform-origin:10.75px; }',
'reversable': false
},
{
'should': 'Should mirror (offset-keyword)',
'expected': 'div { transform-origin:right; }',
'input': 'div { transform-origin:left; }',
'reversable': true
},
{
'should': 'Should mirror (x-offset y-offset: 0 means 0%)',
'expected': 'div { transform-origin:100% 0; }',
'input': 'div { transform-origin:0 0; }',
'reversable': false
},
{
'should': 'Should mirror with y being calc (x-offset y-offset: 0 means 0%)',
'expected': 'div { transform-origin:100% -webkit-calc(15% * (3/2)); }',
'input': 'div { transform-origin:0 -webkit-calc(15% * (3/2)); }',
'reversable': false
},
{
'should': 'Should mirror percent (x-offset y-offset)',
'expected': 'div { transform-origin:30.25% 10%; }',
'input': 'div { transform-origin:69.75% 10%; }',
'reversable': true
},
{
'should': 'Should mirror with x being calc (x-offset y-offset)',
'expected': 'div { transform-origin: -webkit-calc(100% - (15% * (3/2))) 30.25%; }',
'input': 'div { transform-origin: -webkit-calc(15% * (3/2)) 30.25%; }',
'reversable': false
},
{
'should': 'Should mirror with y being calc (x-offset y-offset)',
'expected': 'div { transform-origin:30.25% calc(15% * (3/2)); }',
'input': 'div { transform-origin:69.75% calc(15% * (3/2)); }',
'reversable': true
},
{
'should': 'Should mirror (y-offset x-offset-keyword)',
'expected': 'div { transform-origin:70% right; }',
'input': 'div { transform-origin:70% left; }',
'reversable': true
},
{
'should': 'Should mirror with calc (y-offset x-offset-keyword)',
'expected': 'div { transform-origin:-ms-calc(140%/2) right; }',
'input': 'div { transform-origin:-ms-calc(140%/2) left; }',
'reversable': true
},
{
'should': 'Should mirror (x-offset-keyword y-offset)',
'expected': 'div { transform-origin:right 70%; }',
'input': 'div { transform-origin:left 70%; }',
'reversable': true
},
{
'should': 'Should mirror with calc (x-offset-keyword y-offset)',
'expected': 'div { transform-origin:right -moz-calc(((140%/2))); }',
'input': 'div { transform-origin:left -moz-calc(((140%/2))); }',
'reversable': true
},
{
'should': 'Should mirror (y-offset-keyword x-offset)',
'expected': 'div { transform-origin:top 30.25%; }',
'input': 'div { transform-origin:top 69.75%; }',
'reversable': true
},
{
'should': 'Should not mirror with x being calc (y-offset-keyword x-offset)',
'expected': 'div { transform-origin:top calc(100% - (((140%/2)))); }',
'input': 'div { transform-origin:top calc(((140%/2))); }',
'reversable': false
},
{
'should': 'Should mirror (x-offset-keyword y-offset-keyword)',
'expected': 'div { transform-origin:right top; }',
'input': 'div { transform-origin:left top; }',
'reversable': true
},
{
'should': 'Should mirror (y-offset-keyword x-offset-keyword)',
'expected': 'div { transform-origin:top right; }',
'input': 'div { transform-origin:top left; }',
'reversable': true
},
{
'should': 'Should mirror (x-offset y-offset z-offset)',
'expected': 'div { transform-origin:80.25% 30% 10%; }',
'input': 'div { transform-origin:19.75% 30% 10%; }',
'reversable': true
},
{
'should': 'Should mirror with x being calc (x-offset y-offset z-offset)',
'expected': 'div { transform-origin: calc(100% - (25% * 3 + 20px)) 30% 10%; }',
'input': 'div { transform-origin: calc(25% * 3 + 20px) 30% 10%; }',
'reversable': false
},
{
'should': 'Should mirror (y-offset x-offset-keyword z-offset)',
'expected': 'div { transform-origin:20% right 10%; }',
'input': 'div { transform-origin:20% left 10%; }',
'reversable': true
},
{
'should': 'Should mirror (x-offset-keyword y-offset z-offset)',
'expected': 'div { transform-origin:left 20% 10%; }',
'input': 'div { transform-origin:right 20% 10%; }',
'reversable': true
},
{
'should': 'Should mirror (x-offset-keyword y-offset-keyword z-offset)',
'expected': 'div { transform-origin:left bottom 10%; }',
'input': 'div { transform-origin:right bottom 10%; }',
'reversable': true
},
{
'should': 'Should mirror (y-offset-keyword x-offset-keyword z-offset)',
'expected': 'div { transform-origin:bottom left 10%; }',
'input': 'div { transform-origin:bottom right 10%; }',
'reversable': true
}
]

236
node_modules/rtlcss/test/data/transforms.js generated vendored Normal file
View File

@@ -0,0 +1,236 @@
module.exports = [
{
'should': 'Should mirror transform : matrix',
'expected': 'div { transform: matrix(2, 0.1, 20.75, 2, 2, 2); }',
'input': 'div { transform: matrix(2, -0.1, -20.75, 2, -2, 2); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): matrix',
'expected': 'div { transform: matrix(2, 0.1, 0.75, 2, 2, 2); }',
'input': 'div { transform: matrix(2, -0.1, -.75, 2, -2, 2); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: matrix',
'expected': 'div { transform: matrix( -moz-calc(((25%/2) * 10px)), calc(-1*(((25%/2) * 10px))), 20.75, 2, 2, 2 ); }',
'input': 'div { transform: matrix( -moz-calc(((25%/2) * 10px)), calc(((25%/2) * 10px)), -20.75, 2, -2, 2 ); }',
'reversable': false
},
{
'should': 'Should mirror transform : matrix3d',
'expected': 'div { transform:matrix3d(0.227114470162179, 0.127248412323519, 0, 0.000811630714323203, 0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, -165, 67, 0, 1); }',
'input': 'div { transform:matrix3d(0.227114470162179, -0.127248412323519, 0, -0.000811630714323203, -0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, 165, 67, 0, 1); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): matrix3d',
'expected': 'div { transform:matrix3d(0.227114470162179, 0.127248412323519, 0, 0.000811630714323203, 0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, -165, 67, 0, 1); }',
'input': 'div { transform:matrix3d(0.227114470162179, -.127248412323519, 0, -0.000811630714323203, -0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, 165, 67, 0, 1); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc : matrix3d',
'expected': 'div { transform:matrix3d(0.227114470162179, 0.127248412323519, 0, 0.000811630714323203, 0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, calc(-1*(((25%/2) * 10px))), 67, 0, 1); }',
'input': 'div { transform:matrix3d(0.227114470162179, -0.127248412323519, 0, -0.000811630714323203, -0.113139853456515, 1.53997196559414, 0, 0.000596368270149729, 0, 0, 1, 0, calc(((25%/2) * 10px)), 67, 0, 1); }',
'reversable': false
},
{
'should': 'Should mirror transform : translate',
'expected': 'div { transform: translate(-10.75px); }',
'input': 'div { transform: translate(10.75px); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): translate',
'expected': 'div { transform: translate(-0.75px); }',
'input': 'div { transform: translate(.75px); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: translate',
'expected': 'div { transform: translate(-moz-calc(-1*(((25%/2) * 10px)))); }',
'input': 'div { transform: translate(-moz-calc(((25%/2) * 10px))); }',
'reversable': false
},
{
'should': 'Should mirror transform : translateX',
'expected': 'div { transform: translateX(-50.25px); }',
'input': 'div { transform: translateX(50.25px); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): translateX',
'expected': 'div { transform: translateX(-0.25px); }',
'input': 'div { transform: translateX(.25px); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc : translateX',
'expected': 'div { transform: translateX(-ms-calc(-1*(((25%/2) * 10px))))); }',
'input': 'div { transform: translateX(-ms-calc(((25%/2) * 10px)))); }',
'reversable': false
},
{
'should': 'Should mirror transform : translate3d',
'expected': 'div { transform: translate3d(-12.75px, 50%, 3em); }',
'input': 'div { transform: translate3d(12.75px, 50%, 3em); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): translate3d',
'expected': 'div { transform: translate3d(-0.75px, 50%, 3em); }',
'input': 'div { transform: translate3d(.75px, 50%, 3em); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: translate3d',
'expected': 'div { transform: translate3d(-webkit-calc(-1*(((25%/2) * 10px))))), 50%, calc(((25%/2) * 10px))))); }',
'input': 'div { transform: translate3d(-webkit-calc(((25%/2) * 10px)))), 50%, calc(((25%/2) * 10px))))); }',
'reversable': false
},
{
'should': 'Should mirror transform : rotate',
'expected': 'div { transform: rotate(-20.75deg); }',
'input': 'div { transform: rotate(20.75deg); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): rotate',
'expected': 'div { transform: rotate(-0.75deg); }',
'input': 'div { transform: rotate(.75deg); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: rotate',
'expected': 'div { transform: rotate(calc(-1*(((25%/2) * 10deg)))); }',
'input': 'div { transform: rotate(calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should mirror transform : rotate3d',
'expected': 'div { transform: rotate3d(10, -20.15, 10, -45.14deg); }',
'input': 'div { transform: rotate3d(10, 20.15, 10, 45.14deg); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): rotate3d',
'expected': 'div { transform: rotate3d(10, -20, 10, -0.14deg); }',
'input': 'div { transform: rotate3d(10, 20, 10, .14deg); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: rotate3d',
'expected': 'div { transform: rotate3d(10, -20.15, 10, calc(-1*(((25%/2) * 10deg)))); }',
'input': 'div { transform: rotate3d(10, 20.15, 10, calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should not mirror transform : rotateX',
'expected': 'div { transform: rotateX(45deg); }',
'input': 'div { transform: rotateX(45deg); }',
'reversable': false
},
{
'should': 'Should not mirror transform with calc: rotateX',
'expected': 'div { transform: rotateX(calc(((25%/2) * 10deg))); }',
'input': 'div { transform: rotateX(calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should not mirror transform : rotateY',
'expected': 'div { transform: rotateY(45deg); }',
'input': 'div { transform: rotateY(45deg); }',
'reversable': false
},
{
'should': 'Should not mirror transform with calc: rotateY',
'expected': 'div { transform: rotateY(calc(((25%/2) * 10deg))); }',
'input': 'div { transform: rotateY(calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should mirror transform : rotateZ',
'expected': 'div { transform: rotateZ(-45.75deg); }',
'input': 'div { transform: rotateZ(45.75deg); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): rotateZ',
'expected': 'div { transform: rotateZ(-0.75deg); }',
'input': 'div { transform: rotateZ(.75deg); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: rotateZ',
'expected': 'div { transform: rotateZ(-ms-calc(-1*(((25%/2) * 10deg)))); }',
'input': 'div { transform: rotateZ(-ms-calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should mirror transform : skew',
'expected': 'div { transform: skew(-20.25rad,-30deg); }',
'input': 'div { transform: skew(20.25rad,30deg); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): skew',
'expected': 'div { transform: skew(-0.25rad,-30deg); }',
'input': 'div { transform: skew(.25rad,30deg); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: skew',
'expected': 'div { transform: skew(calc(-1*(((25%/2) * 10rad))),calc(-1*(((25%/2) * 10deg)))); }',
'input': 'div { transform: skew(calc(((25%/2) * 10rad)),calc(((25%/2) * 10deg))); }',
'reversable': false
},
{
'should': 'Should mirror transform : skewX',
'expected': 'div { transform: skewX(-20.75rad); }',
'input': 'div { transform: skewX(20.75rad); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): skewX',
'expected': 'div { transform: skewX(-0.75rad); }',
'input': 'div { transform: skewX(.75rad); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: skewX',
'expected': 'div { transform: skewX(-moz-calc(-1*(((25%/2) * 10rad)))); }',
'input': 'div { transform: skewX(-moz-calc(((25%/2) * 10rad))); }',
'reversable': false
},
{
'should': 'Should mirror transform : skewY',
'expected': 'div { transform: skewY(-10.75grad); }',
'input': 'div { transform: skewY(10.75grad); }',
'reversable': true
},
{
'should': 'Should mirror transform (with no digits before dot): skewY',
'expected': 'div { transform: skewY(-0.75grad); }',
'input': 'div { transform: skewY(.75grad); }',
'reversable': false
},
{
'should': 'Should mirror transform with calc: skewY',
'expected': 'div { transform: skewY(calc(-1*(((25%/2) * 10grad)))); }',
'input': 'div { transform: skewY(calc(((25%/2) * 10grad))); }',
'reversable': false
},
{
'should': 'Should mirror multiple transforms : translateX translateY Rotate',
'expected': 'div { transform: translateX(-50.25px) translateY(50.25px) rotate(-20.75deg); }',
'input': 'div { transform: translateX(50.25px) translateY(50.25px) rotate(20.75deg); }',
'reversable': true
},
{
'should': 'Should mirror multiple transforms with calc : translateX translateY Rotate',
'expected': 'div { transform: translateX(-ms-calc(-1*(((25%/2) * 10px)))) translateY(-moz-calc(((25%/2) * 10rad))) rotate(calc(-1*(((25%/2) * 10grad)))); }',
'input': 'div { transform: translateX(-ms-calc(((25%/2) * 10px))) translateY(-moz-calc(((25%/2) * 10rad))) rotate(calc(((25%/2) * 10grad))); }',
'reversable': false
}
]

104
node_modules/rtlcss/test/data/values-n-syntax.js generated vendored Normal file
View File

@@ -0,0 +1,104 @@
module.exports = [
{
'should': 'Should mirror property value: border-radius (4 values)',
'expected': 'div { border-radius: 40.25px 10.5px 10.75px 40.3px; }',
'input': 'div { border-radius: 10.5px 40.25px 40.3px 10.75px; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-radius (3 values)',
'expected': 'div { border-radius: 40.75px 10.75px 40.75px 40.3px; }',
'input': 'div { border-radius: 10.75px 40.75px 40.3px; }',
'reversable': false
},
{
'should': 'Should mirror property value: border-radius (2 values)',
'expected': 'div { border-radius: 40.25px 10.75px; }',
'input': 'div { border-radius: 10.75px 40.25px; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-radius (4 values - double)',
'expected': 'div { border-radius: 40.25px 10.75px .5px 40.75px / .4em 1em 1em 4.5em; }',
'input': 'div { border-radius: 10.75px 40.25px 40.75px .5px / 1em .4em 4.5em 1em; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-radius (3 values - double)',
'expected': 'div { border-radius: .40px 10.5px .40px 40px / 4em 1em 4em 3em; }',
'input': 'div { border-radius: 10.5px .40px 40px / 1em 4em 3em; }',
'reversable': false
},
{
'should': 'Should mirror property value: border-radius (2 values- double)',
'expected': 'div { border-radius: 40px 10px / 2.5em .75em; }',
'input': 'div { border-radius: 10px 40px / .75em 2.5em; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-width',
'expected': 'div { border-width: 1px 4px .3em 2.5em; }',
'input': 'div { border-width: 1px 2.5em .3em 4px; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-width (none length)',
'expected': 'div { border-width: thin medium thick none; }',
'input': 'div { border-width: thin none thick medium; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-style (4 values)',
'expected': 'div { border-style: none dashed dotted solid; }',
'input': 'div { border-style: none solid dotted dashed; }',
'reversable': true
},
{
'should': 'Should mirror property value: border-color (4 values)',
'expected': 'div { border-color: rgba(255, 255, 255, 1) rgb( 0, 0, 0) #000 hsla(0, 100%, 50%, 1); }',
'input': 'div { border-color: rgba(255, 255, 255, 1) hsla(0, 100%, 50%, 1) #000 rgb( 0, 0, 0); }',
'reversable': true
},
{
'should': 'Should not mirror property value: border-color (3 values)',
'expected': 'div { border-color: #000 rgb( 0, 0, 0) hsla(0, 100%, 50%, 1); }',
'input': 'div { border-color: #000 rgb( 0, 0, 0) hsla(0, 100%, 50%, 1); }',
'reversable': false
},
{
'should': 'Should not mirror property value: border-color (2 values)',
'expected': 'div { border-color:rgb( 0, 0, 0) hsla(0, 100%, 50%, 1); }',
'input': 'div { border-color:rgb( 0, 0, 0) hsla(0, 100%, 50%, 1); }',
'reversable': false
},
{
'should': 'Should mirror property value: margin',
'expected': 'div { margin: .1em auto 3.5rem 2px; }',
'input': 'div { margin: .1em 2px 3.5rem auto; }',
'reversable': true
},
{
'should': 'Should mirror property value: padding',
'expected': 'div { padding: 1px 4px .3rem 2.5em; }',
'input': 'div { padding: 1px 2.5em .3rem 4px; }',
'reversable': true
},
{
'should': 'Should mirror property value: box-shadow',
'expected': 'div { box-shadow: -60px -16px rgba(0, 128, 128, 0.98), -10.25px 5px 5px #ff0, inset -0.5em 1em 0 white; }',
'input': 'div { box-shadow: 60px -16px rgba(0, 128, 128, 0.98), 10.25px 5px 5px #ff0, inset 0.5em 1em 0 white; }',
'reversable': true
},
{
'should': 'Should mirror property value: text-shadow',
'expected': 'div { text-shadow: -60px -16px rgba(0, 128, 128, 0.98), -10.25px 5px 5px #ff0, inset -0.5em 1em 0 white; }',
'input': 'div { text-shadow: 60px -16px rgba(0, 128, 128, 0.98), 10.25px 5px 5px #ff0, inset 0.5em 1em 0 white; }',
'reversable': true
},
{
'should': 'Should mirror property value (no digit before the dot): box-shadow, text-shadow',
'expected': 'div { box-shadow: inset -0.5em 1em 0 white; text-shadow: inset -0.5em 1em 0 white; }',
'input': 'div { box-shadow: inset .5em 1em 0 white; text-shadow: inset .5em 1em 0 white; }',
'reversable': false
}
]

69
node_modules/rtlcss/test/data/values.js generated vendored Normal file
View File

@@ -0,0 +1,69 @@
module.exports = [
{
'should': 'Should mirror property value: clear',
'expected': 'div { clear:right; }',
'input': 'div { clear:left; }',
'reversable': true
},
{
'should': 'Should mirror property value: direction',
'expected': 'div { direction:ltr; }',
'input': 'div { direction:rtl; }',
'reversable': true
},
{
'should': 'Should mirror property value: float',
'expected': 'div { float:right; }',
'input': 'div { float:left; }',
'reversable': true
},
{
'should': 'Should mirror property value: text-align',
'expected': 'div { text-align:right; }',
'input': 'div { text-align:left; }',
'reversable': true
},
{
'should': 'Should mirror property value: cursor nw',
'expected': 'div { cursor:nw-resize; }',
'input': 'div { cursor:ne-resize; }',
'reversable': true
},
{
'should': 'Should mirror property value: cursor sw',
'expected': 'div { cursor:sw-resize; }',
'input': 'div { cursor:se-resize; }',
'reversable': true
},
{
'should': 'Should mirror property value: cursor nesw',
'expected': 'div { cursor:nesw-resize; }',
'input': 'div { cursor:nwse-resize; }',
'reversable': true
},
{
'should': 'Should keep property value as is: cursor ew',
'expected': 'div { cursor:ew-resize; }',
'input': 'div { cursor:ew-resize; }',
'reversable': false
},
{
'should': 'Should process string map in url: cursor (processUrls: true)',
'expected': '.foo { cursor: url(right.cur), url(rtl.cur), se-resize, auto }',
'input': '.foo { cursor: url(left.cur), url(ltr.cur), sw-resize, auto }',
'reversable': true,
'options': { 'processUrls': true }
},
{
'should': 'Should mirror property value: transition',
'expected': '.foo { transition: right .3s ease .1s, left .3s ease .1s, margin-right .3s ease, margin-left .3s ease, padding-right .3s ease, padding-left .3s ease}',
'input': '.foo { transition: left .3s ease .1s, right .3s ease .1s, margin-left .3s ease, margin-right .3s ease, padding-left .3s ease, padding-right .3s ease}',
'reversable': true
},
{
'should': 'Should mirror property value: transition-property',
'expected': '.foo { transition-property: right; }',
'input': '.foo { transition-property: left; }',
'reversable': true
}
]

14
node_modules/rtlcss/test/data/variables.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
module.exports = [
{
'should': 'Should not process variables starting with direction',
'expected': ':root {--left-margin: 1em}',
'input': ':root {--left-margin: 1em}',
'reversable': true
},
{
'should': 'Should not process variables containing direction',
'expected': ':root {--brightest: red}',
'input': ':root {--brightest: red}',
'reversable': true
}
]