Make WordPress Core


Ignore:
Timestamp:
09/14/2022 03:50:01 PM (4 years ago)
Author:
hellofromTonya
Message:

Editor: Revert [54159].

Reverting changeset due to failing PHPUnit tests. Tests pass without changeset [54156], but fail with it. Reverting to explore why in the original PR after rebasing.

See #56467.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/theme/wpThemeJson.php

    r54159 r54160  
    424424                );
    425425
    426                 $expected = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }.wp-site-blocks > * + * { margin-block-start: 1em; }body { --wp--style--block-gap: 1em; }';
     426                $expected = 'body { margin: 0; }body{--wp--style--block-gap: 1em;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }.wp-site-blocks > * + * { margin-block-start: var( --wp--style--block-gap ); }';
    427427                $this->assertSame( $expected, $theme_json->get_stylesheet() );
    428428                $this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ) ) );
     
    545545                                                ),
    546546                                        ),
    547                                         'spacing'  => array(
    548                                                 'blockGap' => '24px',
    549                                         ),
    550547                                ),
    551548                                'misc'     => 'value',
     
    554551
    555552                $variables = 'body{--wp--preset--color--grey: grey;--wp--preset--font-family--small: 14px;--wp--preset--font-family--big: 41px;}.wp-block-group{--wp--custom--base-font: 16;--wp--custom--line-height--small: 1.2;--wp--custom--line-height--medium: 1.4;--wp--custom--line-height--large: 1.8;}';
    556                 $styles    = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}.wp-block-group{border-radius: 10px;padding: 24px;}.wp-block-group a:where(:not(.wp-element-button)){color: #111;}h1,h2,h3,h4,h5,h6{color: #123456;}h1 a:where(:not(.wp-element-button)),h2 a:where(:not(.wp-element-button)),h3 a:where(:not(.wp-element-button)),h4 a:where(:not(.wp-element-button)),h5 a:where(:not(.wp-element-button)),h6 a:where(:not(.wp-element-button)){background-color: #333;color: #111;font-size: 60px;}.wp-block-post-date{color: #123456;}.wp-block-post-date a:where(:not(.wp-element-button)){background-color: #777;color: #555;}.wp-block-image{border-top-left-radius: 10px;border-bottom-right-radius: 1em;margin-bottom: 30px;}';
     553                $styles    = 'body { margin: 0; }body{color: var(--wp--preset--color--grey);}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }a:where(:not(.wp-element-button)){background-color: #333;color: #111;}.wp-block-group{border-radius: 10px;padding: 24px;}.wp-block-group a:where(:not(.wp-element-button)){color: #111;}h1,h2,h3,h4,h5,h6{color: #123456;}h1 a:where(:not(.wp-element-button)),h2 a:where(:not(.wp-element-button)),h3 a:where(:not(.wp-element-button)),h4 a:where(:not(.wp-element-button)),h5 a:where(:not(.wp-element-button)),h6 a:where(:not(.wp-element-button)){background-color: #333;color: #111;font-size: 60px;}.wp-block-post-date{color: #123456;}.wp-block-post-date a:where(:not(.wp-element-button)){background-color: #777;color: #555;}.wp-block-image{border-top-left-radius: 10px;border-bottom-right-radius: 1em;margin-bottom: 30px;}';
    557554                $presets   = '.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-small-font-family{font-family: var(--wp--preset--font-family--small) !important;}.has-big-font-family{font-family: var(--wp--preset--font-family--big) !important;}';
    558555                $all       = $variables . $styles . $presets;
     
    26792676                                                'core/group' => array(
    26802677                                                        'spacing' => array(
    2681                                                                 'margin'  => 'valid value',
    2682                                                                 'display' => 'none',
     2678                                                                'margin'   => 'valid value',
     2679                                                                'blockGap' => 'invalid value',
    26832680                                                        ),
    26842681                                                ),
     
    29932990                );
    29942991
    2995                 $expected = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{background-color: #ffffff;color: #000000;}.wp-element-button, .wp-block-button__link{background-color: #000000;color: #ffffff;}';
     2992                $expected = 'body { margin: 0; }body{background-color: #ffffff;color: #000000;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-element-button, .wp-block-button__link{background-color: #000000;color: #ffffff;}';
    29962993                $this->assertSame( $expected, $theme_json->get_stylesheet() );
    29972994        }
     
    30253022                );
    30263023
    3027                 $expected = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{background-color: #ffffff;}.wp-element-button, .wp-block-button__link{color: #ffffff;}';
     3024                $expected = 'body { margin: 0; }body{background-color: #ffffff;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-element-button, .wp-block-button__link{color: #ffffff;}';
    30283025                $this->assertSame( $expected, $theme_json->get_stylesheet() );
    30293026        }
     
    30573054                );
    30583055
    3059                 $expected = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{background-color: #ffffff;color: #ffffff;}.wp-element-button, .wp-block-button__link{color: #ffffff;}';
     3056                $expected = 'body { margin: 0; }body{background-color: #ffffff;color: #ffffff;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-element-button, .wp-block-button__link{color: #ffffff;}';
    30603057                $this->assertSame( $expected, $theme_json->get_stylesheet() );
    30613058        }
     
    30813078                );
    30823079
    3083                 $expected = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{background-color: #ffffff;}';
     3080                $expected = 'body { margin: 0; }body{background-color: #ffffff;}.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';
    30843081                $this->assertSame( $expected, $theme_json->get_stylesheet() );
    30853082        }
    30863083
    3087         /**
    3088          * @dataProvider data_get_layout_definitions
    3089          *
    3090          * @ticket 56467
    3091          *
    3092          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3093          */
    3094         public function test_get_stylesheet_generates_layout_styles( $layout_definitions ) {
    3095                 $theme_json = new WP_Theme_JSON(
    3096                         array(
    3097                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3098                                 'settings' => array(
    3099                                         'layout'  => array(
    3100                                                 'definitions' => $layout_definitions,
    3101                                         ),
    3102                                         'spacing' => array(
    3103                                                 'blockGap' => true,
    3104                                         ),
    3105                                 ),
    3106                                 'styles'   => array(
    3107                                         'spacing' => array(
    3108                                                 'blockGap' => '1em',
    3109                                         ),
    3110                                 ),
    3111                         ),
    3112                         'default'
    3113                 );
    3114 
    3115                 // Results also include root site blocks styles.
    3116                 $this->assertSame(
    3117                         'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }.wp-site-blocks > * + * { margin-block-start: 1em; }body { --wp--style--block-gap: 1em; }body .is-layout-flow > *{margin-block-start: 0;margin-block-end: 0;}body .is-layout-flow > * + *{margin-block-start: 1em;margin-block-end: 0;}body .is-layout-flex{gap: 1em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}',
    3118                         $theme_json->get_stylesheet( array( 'styles' ) )
    3119                 );
    3120         }
    3121 
    3122         /**
    3123          * @dataProvider data_get_layout_definitions
    3124          *
    3125          * @ticket 56467
    3126          *
    3127          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3128          */
    3129         public function test_get_stylesheet_generates_layout_styles_with_spacing_presets( $layout_definitions ) {
    3130                 $theme_json = new WP_Theme_JSON(
    3131                         array(
    3132                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3133                                 'settings' => array(
    3134                                         'layout'  => array(
    3135                                                 'definitions' => $layout_definitions,
    3136                                         ),
    3137                                         'spacing' => array(
    3138                                                 'blockGap' => true,
    3139                                         ),
    3140                                 ),
    3141                                 'styles'   => array(
    3142                                         'spacing' => array(
    3143                                                 'blockGap' => 'var:preset|spacing|60',
    3144                                         ),
    3145                                 ),
    3146                         ),
    3147                         'default'
    3148                 );
    3149 
    3150                 // Results also include root site blocks styles.
    3151                 $this->assertSame(
    3152                         'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }.wp-site-blocks > * + * { margin-block-start: var(--wp--preset--spacing--60); }body { --wp--style--block-gap: var(--wp--preset--spacing--60); }body .is-layout-flow > *{margin-block-start: 0;margin-block-end: 0;}body .is-layout-flow > * + *{margin-block-start: var(--wp--preset--spacing--60);margin-block-end: 0;}body .is-layout-flex{gap: var(--wp--preset--spacing--60);}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}',
    3153                         $theme_json->get_stylesheet( array( 'styles' ) )
    3154                 );
    3155         }
    3156 
    3157         /**
    3158          * @dataProvider data_get_layout_definitions
    3159          *
    3160          * @ticket 56467
    3161          *
    3162          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3163          */
    3164         public function test_get_stylesheet_generates_fallback_gap_layout_styles( $layout_definitions ) {
    3165                 $theme_json = new WP_Theme_JSON(
    3166                         array(
    3167                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3168                                 'settings' => array(
    3169                                         'layout'  => array(
    3170                                                 'definitions' => $layout_definitions,
    3171                                         ),
    3172                                         'spacing' => array(
    3173                                                 'blockGap' => null,
    3174                                         ),
    3175                                 ),
    3176                                 'styles'   => array(
    3177                                         'spacing' => array(
    3178                                                 'blockGap' => '1em',
    3179                                         ),
    3180                                 ),
    3181                         ),
    3182                         'default'
    3183                 );
    3184                 $stylesheet = $theme_json->get_stylesheet( array( 'styles' ) );
    3185 
    3186                 // Results also include root site blocks styles.
    3187                 $this->assertSame(
    3188                         'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}',
    3189                         $stylesheet
    3190                 );
    3191         }
    3192 
    3193         /**
    3194          * @dataProvider data_get_layout_definitions
    3195          *
    3196          * @ticket 56467
    3197          *
    3198          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3199          */
    3200         public function test_get_stylesheet_generates_base_fallback_gap_layout_styles( $layout_definitions ) {
    3201                 $theme_json = new WP_Theme_JSON(
    3202                         array(
    3203                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3204                                 'settings' => array(
    3205                                         'layout'  => array(
    3206                                                 'definitions' => $layout_definitions,
    3207                                         ),
    3208                                         'spacing' => array(
    3209                                                 'blockGap' => null,
    3210                                         ),
    3211                                 ),
    3212                         ),
    3213                         'default'
    3214                 );
    3215                 $stylesheet = $theme_json->get_stylesheet( array( 'base-layout-styles' ) );
    3216 
    3217                 // Note the `base-layout-styles` includes a fallback gap for the Columns block for backwards compatibility.
    3218                 $this->assertSame(
    3219                         ':where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}',
    3220                         $stylesheet
    3221                 );
    3222         }
    3223 
    3224         /**
    3225          * @dataProvider data_get_layout_definitions
    3226          *
    3227          * @ticket 56467
    3228          *
    3229          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3230          */
    3231         public function test_get_stylesheet_skips_layout_styles( $layout_definitions ) {
    3232                 add_theme_support( 'disable-layout-styles' );
    3233                 $theme_json = new WP_Theme_JSON(
    3234                         array(
    3235                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3236                                 'settings' => array(
    3237                                         'layout'  => array(
    3238                                                 'definitions' => $layout_definitions,
    3239                                         ),
    3240                                         'spacing' => array(
    3241                                                 'blockGap' => null,
    3242                                         ),
    3243                                 ),
    3244                         ),
    3245                         'default'
    3246                 );
    3247                 $stylesheet = $theme_json->get_stylesheet( array( 'base-layout-styles' ) );
    3248                 remove_theme_support( 'disable-layout-styles' );
    3249 
    3250                 // All Layout styles should be skipped.
    3251                 $this->assertSame(
    3252                         '',
    3253                         $stylesheet
    3254                 );
    3255         }
    3256 
    3257         /**
    3258          * @dataProvider data_get_layout_definitions
    3259          *
    3260          * @ticket 56467
    3261          *
    3262          * @param array $layout_definitions Layout definitions as stored in core theme.json.
    3263          */
    3264         public function test_get_stylesheet_generates_valid_block_gap_values_and_skips_null_or_false_values( $layout_definitions ) {
    3265                 $theme_json = new WP_Theme_JSON(
    3266                         array(
    3267                                 'version'  => WP_Theme_JSON::LATEST_SCHEMA,
    3268                                 'settings' => array(
    3269                                         'layout'  => array(
    3270                                                 'definitions' => $layout_definitions,
    3271                                         ),
    3272                                         'spacing' => array(
    3273                                                 'blockGap' => true,
    3274                                         ),
    3275                                 ),
    3276                                 'styles'   => array(
    3277                                         'spacing' => array(
    3278                                                 'blockGap' => '1rem',
    3279                                         ),
    3280                                         'blocks'  => array(
    3281                                                 'core/post-content' => array(
    3282                                                         'color' => array(
    3283                                                                 'text' => 'gray', // This value should not render block layout styles.
    3284                                                         ),
    3285                                                 ),
    3286                                                 'core/social-links' => array(
    3287                                                         'spacing' => array(
    3288                                                                 'blockGap' => '0', // This value should render block layout gap as zero.
    3289                                                         ),
    3290                                                 ),
    3291                                                 'core/buttons'      => array(
    3292                                                         'spacing' => array(
    3293                                                                 'blockGap' => 0, // This value should render block layout gap as zero.
    3294                                                         ),
    3295                                                 ),
    3296                                                 'core/columns'      => array(
    3297                                                         'spacing' => array(
    3298                                                                 'blockGap' => false, // This value should be ignored. The block will use the global layout value.
    3299                                                         ),
    3300                                                 ),
    3301                                         ),
    3302                                 ),
    3303                         ),
    3304                         'default'
    3305                 );
    3306 
    3307                 $this->assertEquals(
    3308                         'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }.wp-site-blocks > * + * { margin-block-start: 1rem; }body { --wp--style--block-gap: 1rem; }body .is-layout-flow > *{margin-block-start: 0;margin-block-end: 0;}body .is-layout-flow > * + *{margin-block-start: 1rem;margin-block-end: 0;}body .is-layout-flex{gap: 1rem;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}.wp-block-post-content{color: gray;}.wp-block-social-links.is-layout-flow > *{margin-block-start: 0;margin-block-end: 0;}.wp-block-social-links.is-layout-flow > * + *{margin-block-start: 0;margin-block-end: 0;}.wp-block-social-links.is-layout-flex{gap: 0;}.wp-block-buttons.is-layout-flow > *{margin-block-start: 0;margin-block-end: 0;}.wp-block-buttons.is-layout-flow > * + *{margin-block-start: 0;margin-block-end: 0;}.wp-block-buttons.is-layout-flex{gap: 0;}',
    3309                         $theme_json->get_stylesheet()
    3310                 );
    3311         }
    3312 
    3313         /**
    3314          * Data provider for layout tests.
    3315          *
    3316          * @ticket 56467
    3317          *
    3318          * @return array
    3319          */
    3320         public function data_get_layout_definitions() {
    3321                 return array(
    3322                         'layout definitions' => array(
    3323                                 array(
    3324                                         'default' => array(
    3325                                                 'name'          => 'default',
    3326                                                 'slug'          => 'flow',
    3327                                                 'className'     => 'is-layout-flow',
    3328                                                 'baseStyles'    => array(
    3329                                                         array(
    3330                                                                 'selector' => ' > .alignleft',
    3331                                                                 'rules'    => array(
    3332                                                                         'float'               => 'left',
    3333                                                                         'margin-inline-start' => '0',
    3334                                                                         'margin-inline-end'   => '2em',
    3335                                                                 ),
    3336                                                         ),
    3337                                                         array(
    3338                                                                 'selector' => ' > .alignright',
    3339                                                                 'rules'    => array(
    3340                                                                         'float'               => 'right',
    3341                                                                         'margin-inline-start' => '2em',
    3342                                                                         'margin-inline-end'   => '0',
    3343                                                                 ),
    3344                                                         ),
    3345                                                         array(
    3346                                                                 'selector' => ' > .aligncenter',
    3347                                                                 'rules'    => array(
    3348                                                                         'margin-left'  => 'auto !important',
    3349                                                                         'margin-right' => 'auto !important',
    3350                                                                 ),
    3351                                                         ),
    3352                                                 ),
    3353                                                 'spacingStyles' => array(
    3354                                                         array(
    3355                                                                 'selector' => ' > *',
    3356                                                                 'rules'    => array(
    3357                                                                         'margin-block-start' => '0',
    3358                                                                         'margin-block-end'   => '0',
    3359                                                                 ),
    3360                                                         ),
    3361                                                         array(
    3362                                                                 'selector' => ' > * + *',
    3363                                                                 'rules'    => array(
    3364                                                                         'margin-block-start' => null,
    3365                                                                         'margin-block-end'   => '0',
    3366                                                                 ),
    3367                                                         ),
    3368                                                 ),
    3369                                         ),
    3370                                         'flex'    => array(
    3371                                                 'name'          => 'flex',
    3372                                                 'slug'          => 'flex',
    3373                                                 'className'     => 'is-layout-flex',
    3374                                                 'displayMode'   => 'flex',
    3375                                                 'baseStyles'    => array(
    3376                                                         array(
    3377                                                                 'selector' => '',
    3378                                                                 'rules'    => array(
    3379                                                                         'flex-wrap'   => 'wrap',
    3380                                                                         'align-items' => 'center',
    3381                                                                 ),
    3382                                                         ),
    3383                                                 ),
    3384                                                 'spacingStyles' => array(
    3385                                                         array(
    3386                                                                 'selector' => '',
    3387                                                                 'rules'    => array(
    3388                                                                         'gap' => null,
    3389                                                                 ),
    3390                                                         ),
    3391                                                 ),
    3392                                         ),
    3393                                 ),
    3394                         ),
    3395                 );
    3396         }
    3397 
    3398         /**
    3399          * @ticket 56467
    3400          */
    3401         function test_get_styles_for_block_with_padding_aware_alignments() {
    3402                 $theme_json = new WP_Theme_JSON(
    3403                         array(
    3404                                 'version'  => 2,
    3405                                 'styles'   => array(
    3406                                         'spacing' => array(
    3407                                                 'padding' => array(
    3408                                                         'top'    => '10px',
    3409                                                         'right'  => '12px',
    3410                                                         'bottom' => '10px',
    3411                                                         'left'   => '12px',
    3412                                                 ),
    3413                                         ),
    3414                                 ),
    3415                                 'settings' => array(
    3416                                         'useRootPaddingAwareAlignments' => true,
    3417                                 ),
    3418                         )
    3419                 );
    3420 
    3421                 $metadata = array(
    3422                         'path'     => array(
    3423                                 '0' => 'styles',
    3424                         ),
    3425                         'selector' => 'body',
    3426                 );
    3427 
    3428                 $expected    = 'body { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }.has-global-padding > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{--wp--style--root--padding-top: 10px;--wp--style--root--padding-right: 12px;--wp--style--root--padding-bottom: 10px;--wp--style--root--padding-left: 12px;}';
    3429                 $root_rules  = $theme_json->get_root_layout_rules( WP_Theme_JSON::ROOT_BLOCK_SELECTOR, $metadata );
    3430                 $style_rules = $theme_json->get_styles_for_block( $metadata );
    3431                 $this->assertSame( $expected, $root_rules . $style_rules );
    3432         }
    3433 
    3434         /**
    3435          * @ticket 56467
    3436          */
    3437         function test_get_styles_for_block_without_padding_aware_alignments() {
    3438                 $theme_json = new WP_Theme_JSON(
    3439                         array(
    3440                                 'version' => 2,
    3441                                 'styles'  => array(
    3442                                         'spacing' => array(
    3443                                                 'padding' => array(
    3444                                                         'top'    => '10px',
    3445                                                         'right'  => '12px',
    3446                                                         'bottom' => '10px',
    3447                                                         'left'   => '12px',
    3448                                                 ),
    3449                                         ),
    3450                                 ),
    3451                         )
    3452                 );
    3453 
    3454                 $metadata = array(
    3455                         'path'     => array(
    3456                                 '0' => 'styles',
    3457                         ),
    3458                         'selector' => 'body',
    3459                 );
    3460 
    3461                 $expected    = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }body{padding-top: 10px;padding-right: 12px;padding-bottom: 10px;padding-left: 12px;}';
    3462                 $root_rules  = $theme_json->get_root_layout_rules( WP_Theme_JSON::ROOT_BLOCK_SELECTOR, $metadata );
    3463                 $style_rules = $theme_json->get_styles_for_block( $metadata );
    3464                 $this->assertSame( $expected, $root_rules . $style_rules );
    3465         }
    3466 
    3467         /**
    3468          * @ticket 56467
    3469          */
    3470         function test_get_styles_for_block_with_content_width() {
    3471                 $theme_json = new WP_Theme_JSON(
    3472                         array(
    3473                                 'version'  => 2,
    3474                                 'settings' => array(
    3475                                         'layout' => array(
    3476                                                 'contentSize' => '800px',
    3477                                                 'wideSize'    => '1000px',
    3478                                         ),
    3479                                 ),
    3480                         )
    3481                 );
    3482 
    3483                 $metadata = array(
    3484                         'path'     => array(
    3485                                 '0' => 'settings',
    3486                         ),
    3487                         'selector' => 'body',
    3488                 );
    3489 
    3490                 $expected    = 'body { margin: 0;--wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1000px; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';
    3491                 $root_rules  = $theme_json->get_root_layout_rules( WP_Theme_JSON::ROOT_BLOCK_SELECTOR, $metadata );
    3492                 $style_rules = $theme_json->get_styles_for_block( $metadata );
    3493                 $this->assertSame( $expected, $root_rules . $style_rules );
    3494         }
    34953084}
Note: See TracChangeset for help on using the changeset viewer.