WordPress.org

Make WordPress Core

Ticket #28441: 28441.2.patch

File 28441.2.patch, 2.3 KB (added by ocean90, 5 years ago)
  • src/wp-includes/plugin.php

     
    677677        // $wp_plugin_paths contains normalized paths.
    678678        $file = wp_normalize_path( $file );
    679679
     680        arsort( $wp_plugin_paths );
    680681        foreach ( $wp_plugin_paths as $dir => $realdir ) {
    681682                if ( strpos( $file, $realdir ) === 0 ) {
    682683                        $file = $dir . substr( $file, strlen( $realdir ) );
  • tests/phpunit/tests/functions/pluginBasename.php

     
    99class Tests_Plugin_Basename extends WP_UnitTestCase {
    1010
    1111        /**
     12         * @var array
     13         */
     14        protected $wp_plugin_paths_backup;
     15
     16        public function setUp() {
     17                parent::setUp();
     18
     19                $this->wp_plugin_paths_backup = $GLOBALS['wp_plugin_paths'];
     20        }
     21
     22        public function tearDown() {
     23                $GLOBALS['wp_plugin_paths'] = $this->wp_plugin_paths_backup;
     24
     25                parent::tearDown();
     26        }
     27
     28        /**
    1229         * @ticket 29154
    1330         */
    14         function test_should_return_correct_basename_for_symlinked_plugins() {
     31        function test_return_correct_basename_for_symlinked_plugins() {
    1532                global $wp_plugin_paths;
    1633
    17                 $old_wp_plugin_paths = $wp_plugin_paths;
     34                $wp_plugin_paths = array(
     35                        WP_PLUGIN_DIR . '/a-symlinked-plugin' => 'C:/www/path/plugins/a-plugin',
     36                );
    1837
    19                 $wp_plugin_paths[ WP_PLUGIN_DIR . '/a-symlinked-plugin' ] = 'C:/www/path/plugins/a-plugin';
    20 
    2138                $basename = plugin_basename( 'c:\www\path\plugins\a-plugin\plugin.php' );
     39                $this->assertSame( 'a-symlinked-plugin/plugin.php', $basename );
     40        }
    2241
    23                 $wp_plugin_paths = $old_wp_plugin_paths;
     42        /**
     43         * @ticket 28441
     44         */
     45        function test_return_correct_basename_for_symlinked_plugins_with_path_conflicts() {
     46                global $wp_plugin_paths;
    2447
    25                 $this->assertSame( 'a-symlinked-plugin/plugin.php', $basename );
     48                $wp_plugin_paths = array(
     49                        WP_PLUGIN_DIR . '/plugin' => '/Users/me/Dropbox/Development/Repositories/plugin',
     50                        WP_PLUGIN_DIR . '/trunk' => '/Users/me/Dropbox/Development/Repositories/plugin/trunk',
     51                );
     52
     53                $basename = plugin_basename( '/Users/me/Dropbox/Development/Repositories/plugin/trunk/plugin.php' );
     54                $this->assertSame( 'trunk/plugin.php', $basename );
    2655        }
    2756}