Make WordPress Core

Ticket #39778: unit-tests.39778.diff

File unit-tests.39778.diff, 2.8 KB (added by jonathanbardo, 8 years ago)
  • src/wp-includes/class-wp-customize-manager.php

    diff --git src/wp-includes/class-wp-customize-manager.php src/wp-includes/class-wp-customize-manager.php
    index 1b2d29dc3b..d6645c6e0f 100644
    final class WP_Customize_Manager { 
    480480                        return;
    481481                }
    482482
    483                 if ( ! preg_match( '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/', $this->_changeset_uuid ) ) {
     483                if ( ! wp_is_valid_uuid4( $this->_changeset_uuid ) ) {
    484484                        $this->wp_die( -1, __( 'Invalid changeset UUID' ) );
    485485                }
    486486
  • src/wp-includes/functions.php

    diff --git src/wp-includes/functions.php src/wp-includes/functions.php
    index 3923ca92ec..a1342244b6 100644
    function wp_generate_uuid4() { 
    56105610}
    56115611
    56125612/**
     5613 * Generate a random UUID (version 4).
     5614 *
     5615 * @param string $uuid
     5616 *
     5617 * @return bool The string is a valid UUID V4 or false on failure.
     5618 */
     5619function wp_is_valid_uuid4( $uuid ) {
     5620        return (bool) preg_match( '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/', $uuid );
     5621}
     5622
     5623/**
    56135624 * Get last changed date for the specified cache group.
    56145625 *
    56155626 * @since 4.7.0
  • tests/phpunit/tests/functions.php

    diff --git tests/phpunit/tests/functions.php tests/phpunit/tests/functions.php
    index 8932bc63f7..b794d65284 100644
    class Tests_Functions extends WP_UnitTestCase { 
    891891                $uuids = array();
    892892                for ( $i = 0; $i < 20; $i += 1 ) {
    893893                        $uuid = wp_generate_uuid4();
    894                         $this->assertRegExp( '/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/', $uuid );
     894                        $this->assertTrue( wp_is_valid_uuid4( $uuid ) );
    895895                        $uuids[] = $uuid;
    896896                }
    897897
    898898                $unique_uuids = array_unique( $uuids );
    899899                $this->assertEquals( $uuids, $unique_uuids );
    900900        }
     901
     902        /**
     903         * Tests wp_is_valid_uuid4().
     904         *
     905         * @covers ::wp_is_valid_uuid4
     906         * @ticket 39778
     907         */
     908        function test_wp_is_valid_uuid4() {
     909                $uuids = array(
     910                        '27fe2421-780c-44c5-b39b-fff753092b55',
     911                        'b7c7713a-4ee9-45a1-87ed-944a90390fc7',
     912                        'fbedbe35-7bf5-49cc-a5ac-0343bd94360a',
     913                        '4c58e67e-123b-4290-a41c-5eeb6970fa3e',
     914                        'f54f5b78-e414-4637-84a9-a6cdc94a1beb',
     915                        'd1c533ac-abcf-44b6-9b0e-6477d2c91b09',
     916                        '7fcd683f-e5fd-454a-a8b9-ed15068830da',
     917                        '7962c750-e58c-470a-af0d-ec1eae453ff2',
     918                        'a59878ce-9a67-4493-8ca0-a756b52804b3',
     919                        '6faa519d-1e13-4415-bd6f-905ae3689d1d',
     920                );
     921
     922                foreach ( $uuids as $uuid ) {
     923                        $this->assertTrue( wp_is_valid_uuid4( $uuid ) );
     924                }
     925
     926                $invalid_uuids = array(
     927                        'a19d5192-ea41-11e6-b006-92361f002671',
     928                        'a19d5192-ea41-21e6-b006-92361f002671',
     929                        'a19d5192-ea41-31e6-b006-92361f002671',
     930                        'a19d5192-ea41-41e6-b006',
     931                        'this-is-not-valid',
     932                        1234,
     933                );
     934
     935                foreach ( $invalid_uuids as $invalid_uuid ) {
     936                        $this->assertFalse( wp_is_valid_uuid4( $invalid_uuid ) );
     937                }
     938        }
    901939}