Make WordPress Core

Ticket #30438: 30438.2.diff

File 30438.2.diff, 2.9 KB (added by akirk, 10 years ago)

Improve according to Coding Standards

  • src/wp-includes/class-wp.php

     
    157157                        list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
    158158                        $self = $_SERVER['PHP_SELF'];
    159159                        $home_path = trim( parse_url( home_url(), PHP_URL_PATH ), '/' );
     160                        $home_path_escaped = preg_quote( $home_path, '|' );
    160161
    161162                        // Trim path info from the end and the leading home path from the
    162163                        // front. For path info requests, this leaves us with the requesting
     
    164165                        // requested permalink.
    165166                        $req_uri = str_replace($pathinfo, '', $req_uri);
    166167                        $req_uri = trim($req_uri, '/');
    167                         $req_uri = preg_replace("|^$home_path|i", '', $req_uri);
     168                        $req_uri = preg_replace( "|^$home_path_escaped|i", '', $req_uri );
    168169                        $req_uri = trim($req_uri, '/');
    169170                        $pathinfo = trim($pathinfo, '/');
    170                         $pathinfo = preg_replace("|^$home_path|i", '', $pathinfo);
     171                        $pathinfo = preg_replace( "|^$home_path_escaped|i", '', $pathinfo );
    171172                        $pathinfo = trim($pathinfo, '/');
    172173                        $self = trim($self, '/');
    173                         $self = preg_replace("|^$home_path|i", '', $self);
     174                        $self = preg_replace( "|^$home_path_escaped|i", '', $self );
    174175                        $self = trim($self, '/');
    175176
    176177                        // The requested permalink is in $pathinfo for path info requests and
  • tests/phpunit/tests/rewrite.php

     
    66 * @group rewrite
    77 */
    88class Tests_Rewrite extends WP_UnitTestCase {
     9        private $home_url;
    910
    1011        function setUp() {
    1112                global $wp_rewrite;
     
    1819                create_initial_taxonomies();
    1920
    2021                $wp_rewrite->flush_rules();
     22
     23                $this->home_url = get_option( 'home' );
    2124        }
    2225
    2326        function tearDown() {
     
    2427                global $wp_rewrite;
    2528                $wp_rewrite->init();
    2629
     30                update_option( 'home', $this->home_url );
    2731                parent::tearDown();
    2832        }
    2933
     
    7478                $this->assertEquals( 0, url_to_postid( '/example-page/ex/' ) );
    7579        }
    7680
     81        function test_parse_request_home_path() {
     82                $home_url = home_url( '/path/' );
     83                update_option( 'home', $home_url );
     84
     85                $this->go_to( $home_url );
     86                $this->assertEquals( array(), $GLOBALS['wp']->query_vars );
     87
     88                $this->go_to( $home_url . 'page');
     89                $this->assertEquals( array('page' => '', 'pagename' => 'page'), $GLOBALS['wp']->query_vars );
     90        }
     91
     92        function test_parse_request_home_path_with_regexchar() {
     93                $home_url = home_url( '/pa+th/' );
     94                update_option( 'home', $home_url );
     95
     96                $this->go_to( $home_url );
     97                $this->assertEquals( array(), $GLOBALS['wp']->query_vars );
     98
     99                $this->go_to( $home_url . 'page');
     100                $this->assertEquals( array('page' => '', 'pagename' => 'page'), $GLOBALS['wp']->query_vars );
     101        }
     102
    77103        function test_url_to_postid_dupe_path() {
    78104                update_option( 'home', home_url('/example/') );
    79105