@wordpress/components
Version:
UI components for WordPress.
125 lines (114 loc) • 4.08 kB
JavaScript
/**
* Internal dependencies
*/
import { convertLTRToRTL } from '../rtl';
describe( 'convertLTRToRTL', () => {
it( 'converts (*)Left <-> (*)Right', () => {
const style = {
// Left values.
borderLeft: '10px solid red',
borderLeftColor: 'red',
borderLeftStyle: 'solid',
borderLeftWidth: 10,
borderTopLeftRadius: 10,
marginLeft: 10,
scrollMarginLeft: 10,
scrollPaddingLeft: 10,
// Right values.
paddingLeft: 10,
borderRight: '20px solid blue',
borderRightColor: 'blue',
borderRightStyle: 'dashed',
borderRightWidth: 20,
borderTopRightRadius: 20,
marginRight: 20,
paddingRight: 20,
scrollMarginRight: 20,
scrollPaddingRight: 20,
// Edge cases.
textCombineUpright: 'none',
};
const nextStyle = convertLTRToRTL( style );
expect( Object.keys( style ).length ).toBe(
Object.keys( nextStyle ).length
);
// Left -> Right.
expect( nextStyle.borderRight ).toBe( '10px solid red' );
expect( nextStyle.borderRightColor ).toBe( 'red' );
expect( nextStyle.borderRightStyle ).toBe( 'solid' );
expect( nextStyle.borderRightWidth ).toBe( 10 );
expect( nextStyle.borderTopRightRadius ).toBe( 10 );
expect( nextStyle.marginRight ).toBe( 10 );
expect( nextStyle.paddingRight ).toBe( 10 );
expect( nextStyle.scrollMarginRight ).toBe( 10 );
expect( nextStyle.scrollPaddingRight ).toBe( 10 );
// Right -> Left.
expect( nextStyle.borderLeft ).toBe( '20px solid blue' );
expect( nextStyle.borderLeftColor ).toBe( 'blue' );
expect( nextStyle.borderLeftStyle ).toBe( 'dashed' );
expect( nextStyle.borderLeftWidth ).toBe( 20 );
expect( nextStyle.borderTopLeftRadius ).toBe( 20 );
expect( nextStyle.marginLeft ).toBe( 20 );
expect( nextStyle.paddingLeft ).toBe( 20 );
expect( nextStyle.scrollMarginLeft ).toBe( 20 );
expect( nextStyle.scrollPaddingLeft ).toBe( 20 );
// Edge cases.
expect( nextStyle.textCombineUpright ).toBe( 'none' );
} );
it( 'converts (*)left <-> (*)right', () => {
const style = {
// Left values.
'border-left': '10px solid red',
'border-left-color': 'red',
'border-left-style': 'solid',
'border-left-width': 10,
'border-top-left-radius': 10,
'margin-left': 10,
'padding-left': 10,
'scroll-margin-left': 10,
'scroll-padding-left': 10,
left: 10,
// Right values.
'border-right': '20px solid blue',
'border-right-color': 'blue',
'border-right-style': 'dashed',
'border-right-width': 20,
'border-top-right-radius': 20,
'margin-right': 20,
'padding-right': 20,
'scroll-margin-right': 20,
'scroll-padding-right': 20,
right: 20,
// Edge cases.
'text-combine-upright': 'none',
};
const nextStyle = convertLTRToRTL( style );
expect( Object.keys( style ).length ).toBe(
Object.keys( nextStyle ).length
);
// Left -> right.
expect( nextStyle[ 'border-right' ] ).toBe( '10px solid red' );
expect( nextStyle[ 'border-right-color' ] ).toBe( 'red' );
expect( nextStyle[ 'border-right-style' ] ).toBe( 'solid' );
expect( nextStyle[ 'border-right-width' ] ).toBe( 10 );
expect( nextStyle[ 'border-top-right-radius' ] ).toBe( 10 );
expect( nextStyle[ 'margin-right' ] ).toBe( 10 );
expect( nextStyle[ 'padding-right' ] ).toBe( 10 );
expect( nextStyle[ 'scroll-margin-right' ] ).toBe( 10 );
expect( nextStyle[ 'scroll-padding-right' ] ).toBe( 10 );
expect( nextStyle.right ).toBe( 10 );
// Right -> left.
expect( nextStyle[ 'border-left' ] ).toBe( '20px solid blue' );
expect( nextStyle[ 'border-left-color' ] ).toBe( 'blue' );
expect( nextStyle[ 'border-left-style' ] ).toBe( 'dashed' );
expect( nextStyle[ 'border-left-width' ] ).toBe( 20 );
expect( nextStyle[ 'border-top-left-radius' ] ).toBe( 20 );
expect( nextStyle[ 'margin-left' ] ).toBe( 20 );
expect( nextStyle[ 'padding-left' ] ).toBe( 20 );
expect( nextStyle[ 'scroll-margin-left' ] ).toBe( 20 );
expect( nextStyle[ 'scroll-padding-left' ] ).toBe( 20 );
expect( nextStyle.left ).toBe( 20 );
// Edge cases.
expect( nextStyle[ 'text-combine-upright' ] ).toBe( 'none' );
} );
} );