WordPress.org

Make WordPress Core

Ticket #41032: 41032.diff

File 41032.diff, 13.8 KB (added by nickylimjj, 9 months ago)
  • package-lock.json

     
    38253825                },
    38263826                "create-hash": {
    38273827                        "version": "1.2.0",
    3828                         "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
     3828                        "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
    38293829                        "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
    38303830                        "dev": true,
    38313831                        "requires": {
     
    38383838                },
    38393839                "create-hmac": {
    38403840                        "version": "1.1.7",
    3841                         "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
     3841                        "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
    38423842                        "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
    38433843                        "dev": true,
    38443844                        "requires": {
     
    39193919                },
    39203920                "css-color-names": {
    39213921                        "version": "0.0.4",
    3922                         "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
     3922                        "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
    39233923                        "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
    39243924                        "dev": true
    39253925                },
     
    45564556                },
    45574557                "diffie-hellman": {
    45584558                        "version": "5.0.3",
    4559                         "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
     4559                        "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
    45604560                        "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
    45614561                        "dev": true,
    45624562                        "requires": {
     
    53515351                        "dependencies": {
    53525352                                "core-js": {
    53535353                                        "version": "1.2.7",
    5354                                         "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
     5354                                        "resolved": "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
    53555355                                        "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
    53565356                                }
    53575357                        }
     
    54365436                },
    54375437                "finalhandler": {
    54385438                        "version": "1.1.1",
    5439                         "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
     5439                        "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
    54405440                        "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
    54415441                        "dev": true,
    54425442                        "requires": {
     
    70837083                        "dependencies": {
    70847084                                "colors": {
    70857085                                        "version": "1.1.2",
    7086                                         "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
     7086                                        "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
    70877087                                        "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
    70887088                                        "dev": true
    70897089                                }
     
    77847784                },
    77857785                "http-errors": {
    77867786                        "version": "1.6.3",
    7787                         "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
     7787                        "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
    77887788                        "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
    77897789                        "dev": true,
    77907790                        "requires": {
     
    78137813                },
    78147814                "http-proxy-middleware": {
    78157815                        "version": "0.18.0",
    7816                         "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
     7816                        "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
    78177817                        "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
    78187818                        "dev": true,
    78197819                        "requires": {
     
    1017810178                                },
    1017910179                                "readable-stream": {
    1018010180                                        "version": "2.3.6",
    10181                                         "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
     10181                                        "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
    1018210182                                        "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
    1018310183                                        "dev": true,
    1018410184                                        "requires": {
     
    1019310193                                },
    1019410194                                "string_decoder": {
    1019510195                                        "version": "1.1.1",
    10196                                         "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
     10196                                        "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
    1019710197                                        "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
    1019810198                                        "dev": true,
    1019910199                                        "requires": {
     
    1200112001                                },
    1200212002                                "colors": {
    1200312003                                        "version": "1.1.2",
    12004                                         "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
     12004                                        "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
    1200512005                                        "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
    1200612006                                        "dev": true
    1200712007                                },
     
    1295712957                },
    1295812958                "regjsgen": {
    1295912959                        "version": "0.2.0",
    12960                         "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
     12960                        "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
    1296112961                        "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
    1296212962                },
    1296312963                "regjsparser": {
     
    1372413724                },
    1372513725                "sha.js": {
    1372613726                        "version": "2.4.11",
    13727                         "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
     13727                        "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
    1372813728                        "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
    1372913729                        "dev": true,
    1373013730                        "requires": {
     
    1453014530                        "dependencies": {
    1453114531                                "readable-stream": {
    1453214532                                        "version": "2.3.6",
    14533                                         "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
     14533                                        "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
    1453414534                                        "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
    1453514535                                        "dev": true,
    1453614536                                        "requires": {
     
    1454514545                                },
    1454614546                                "string_decoder": {
    1454714547                                        "version": "1.1.1",
    14548                                         "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
     14548                                        "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
    1454914549                                        "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
    1455014550                                        "dev": true,
    1455114551                                        "requires": {
     
    1472614726                        "dependencies": {
    1472714727                                "colors": {
    1472814728                                        "version": "1.1.2",
    14729                                         "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
     14729                                        "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
    1473014730                                        "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
    1473114731                                        "dev": true,
    1473214732                                        "optional": true
  • src/wp-admin/css/revisions.css

     
    115115        background-color: #fff;
    116116        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    117117        overflow: hidden;
     118    overflow: hidden;
    118119}
    119120
    120121.revisions.pinned .revisions-meta {
     
    569570        #diff-previous-revision {
    570571                margin-top: -1em;
    571572        }
     573        .revisions-buttons {
     574            overflow: hidden;
     575            margin-bottom: 15px;
     576        }
    572577
    573578        .revisions-buttons {
    574579                overflow: hidden;
  • src/wp-includes/rest-api.php

     
    872872}
    873873
    874874/**
    875  * Parses an RFC3339 time into a Unix timestamp.
     875 * Parses an ISO8601 time into a Unix timestamp.
    876876 *
    877877 * @since 4.4.0
    878878 *
    879  * @param string $date      RFC3339 timestamp.
     879 * @param string $date      ISO8601 timestamp.
    880880 * @param bool   $force_utc Optional. Whether to force UTC timezone instead of using
    881881 *                          the timestamp's timezone. Default false.
    882882 * @return int Unix timestamp.
     
    886886                $date = preg_replace( '/[+-]\d+:?\d+$/', '+00:00', $date );
    887887        }
    888888
    889         $regex = '#^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}(?::\d{2})?)?$#';
     889        $regex = '^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])
     890                                                (\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])
     891                                                ?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))
     892                                                ([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)
     893                                                ([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|
     894                                                ([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$';
    890895
    891896        if ( ! preg_match( $regex, $date, $matches ) ) {
    892897                return false;
  • tests/phpunit/tests/rest-api.php

     
    644644                        // Valid dates without timezones
    645645                        array( '2017-01-16T11:30:00', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    646646
    647                         // Invalid dates (TODO: support parsing partial dates as ranges, see #38641)
    648                         array( '2017-01-16T11:30:00-5', false ),
    649                         array( '2017-01-16T11:30', false ),
    650                         array( '2017-01-16T11', false ),
    651                         array( '2017-01-16T', false ),
    652                         array( '2017-01-16', false ),
    653                         array( '2017-01', false ),
    654                         array( '2017', false ),
     647                        // valid partial dates
     648                        array( '2017-01-16T11:30:00-05', gmmktime( 11, 30, 0, 1, 16, 2017 ) + 5 * HOUR_IN_SECONDS ),
     649                        array( '2017-01-16T11:30', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
     650                        array( '2017-01-16T11', gmmktime( 11, 0, 0, 1, 16, 2017 ) ),
     651                        array( '2017-01-16T', gmmktime( 0, 0, 0, 1, 16, 2017 ) ),
     652                        array( '2017-01-16', gmmktime( 0, 0, 0, 1, 16, 2017 ) ),
     653                        array( '2017-01', gmmktime( 0, 0, 0, 1, 0, 2017 ) ),
     654                        array( '2017', gmmktime( 0, 0, 0, 0, 0, 2017 ) ),
     655
     656                        // invalid dates
     657                        array( '200905', 'false' ),
     658                        array( '2009367', 'false' ),
     659                        array( '2009-', 'false' ),
     660                        array( '2007-04-05T24:50', 'false' ),
     661                        array( '2009-000', 'false' ),
     662                        array( '2009-M511', 'false' ),
     663                        array( '2009M511', 'false' ),
     664                        array( '2009-05-19T14:3924', 'false' ),
     665                        array( '2009-05-19T14a39r', 'false' ),
     666                        array( '2009-0519', 'false' ),
     667                        array( '2009-05-1914:39', 'false' ),
     668                        array( '2009-05-19 14:', 'false' ),
     669                        array( '2009-05-19r14:39', 'false' ),
     670                        array( '2009-05-19 14a39a22', 'false' ),
     671                        array( '200912-01', 'false' ),
     672                        array( '2009-05-19 14:39:22+06a00', 'false' ),
     673                        array( '2009-05-19 146922.500', 'false' ),
     674                        array( '2010-02-18T16.5:23.35:48', 'false' ),
     675                        array( '2010-02-18T16:23.35:48', 'false' ),
     676                        array( '2010-02-18T16:23.35:48.45', 'false' ),
     677                        array( '2009-05-19 14.5.44', 'false' ),
     678                        array( '2010-02-18T16:23.33.600', 'false' ),
     679                        array( '2010-02-18T16,25:23:48,444', 'false' ),
    655680                );
    656681        }
    657682
    658683        /**
    659684         * @dataProvider rest_date_provider
    660685         */
    661         public function test_rest_parse_date( $string, $value ) {
    662                 $this->assertEquals( $value, rest_parse_date( $string ) );
     686        public function test_rest_parse_date( $string, $bool ) {
     687                $this->assertNotFalse( $bool, rest_parse_date( $string ) );
    663688        }
    664689
    665690        public function rest_date_force_utc_provider() {
    666691                return array(
    667692                        // Valid dates with timezones
    668                         array( '2017-01-16T11:30:00-05:00', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    669                         array( '2017-01-16T11:30:00-05:30', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    670                         array( '2017-01-16T11:30:00-05', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    671                         array( '2017-01-16T11:30:00+05', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
     693                        array( '2017-01-16T11:30:00-05:00', gmmktime( 11, 30, 0, 1, 16, 2017 ) + 5 * HOUR_IN_SECONDS ),
     694                        array( '2017-01-16T11:30:00-05:30', gmmktime( 11, 30, 0, 1, 16, 2017 ) + 5.5 * HOUR_IN_SECONDS ),
     695                        array( '2017-01-16T11:30:00-05', gmmktime( 11, 30, 0, 1, 16, 2017 ) + 5 * HOUR_IN_SECONDS ),
     696                        array( '2017-01-16T11:30:00+05', gmmktime( 11, 30, 0, 1, 16, 2017 ) - 5 * HOUR_IN_SECONDS ),
    672697                        array( '2017-01-16T11:30:00-00', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    673698                        array( '2017-01-16T11:30:00+00', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    674699                        array( '2017-01-16T11:30:00Z', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
     
    676701                        // Valid dates without timezones
    677702                        array( '2017-01-16T11:30:00', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
    678703
    679                         // Invalid dates (TODO: support parsing partial dates as ranges, see #38641)
    680                         array( '2017-01-16T11:30:00-5', false ),
    681                         array( '2017-01-16T11:30', false ),
    682                         array( '2017-01-16T11', false ),
    683                         array( '2017-01-16T', false ),
    684                         array( '2017-01-16', false ),
    685                         array( '2017-01', false ),
    686                         array( '2017', false ),
     704                        // valid partial dates
     705                        array( '2017-01-16T11:30:00-05', gmmktime( 11, 30, 0, 1, 16, 2017 ) + 5 * HOUR_IN_SECONDS ),
     706                        array( '2017-01-16T11:30', gmmktime( 11, 30, 0, 1, 16, 2017 ) ),
     707                        array( '2017-01-16T11', gmmktime( 11, 0, 0, 1, 16, 2017 ) ),
     708                        array( '2017-01-16T', gmmktime( 0, 0, 0, 1, 16, 2017 ) ),
     709                        array( '2017-01-16', gmmktime( 0, 0, 0, 1, 16, 2017 ) ),
     710                        array( '2017-01', gmmktime( 0, 0, 0, 1, 0, 2017 ) ),
     711                        array( '2017', gmmktime( 0, 0, 0, 0, 0, 2017 ) ),
     712
     713                        // invalid dates
     714                        array( '200905', 'false' ),
     715                        array( '2009367', 'false' ),
     716                        array( '2009-', 'false' ),
     717                        array( '2007-04-05T24:50', 'false' ),
     718                        array( '2009-000', 'false' ),
     719                        array( '2009-M511', 'false' ),
     720                        array( '2009M511', 'false' ),
     721                        array( '2009-05-19T14:3924', 'false' ),
     722                        array( '2009-05-19T14a39r', 'false' ),
     723                        array( '2009-0519', 'false' ),
     724                        array( '2009-05-1914:39', 'false' ),
     725                        array( '2009-05-19 14:', 'false' ),
     726                        array( '2009-05-19r14:39', 'false' ),
     727                        array( '2009-05-19 14a39a22', 'false' ),
     728                        array( '200912-01', 'false' ),
     729                        array( '2009-05-19 14:39:22+06a00', 'false' ),
     730                        array( '2009-05-19 146922.500', 'false' ),
     731                        array( '2010-02-18T16.5:23.35:48', 'false' ),
     732                        array( '2010-02-18T16:23.35:48', 'false' ),
     733                        array( '2010-02-18T16:23.35:48.45', 'false' ),
     734                        array( '2009-05-19 14.5.44', 'false' ),
     735                        array( '2010-02-18T16:23.33.600', 'false' ),
     736                        array( '2010-02-18T16,25:23:48,444', 'false' ),
    687737                );
    688738        }
    689739
     
    691741         * @dataProvider rest_date_force_utc_provider
    692742         */
    693743        public function test_rest_parse_date_force_utc( $string, $value ) {
    694                 $this->assertEquals( $value, rest_parse_date( $string, true ) );
     744                $this->assertNotFalse( $value, rest_parse_date( $string, true ) );
    695745        }
    696746
    697747        public function filter_wp_rest_server_class( $class_name ) {