Make WordPress Core

Ticket #51147: 51147.4.diff

File 51147.4.diff, 2.8 KB (added by stormrockwell, 4 years ago)

Change the class name

  • src/wp-admin/includes/ms.php

    diff --git a/src/wp-admin/includes/ms.php b/src/wp-admin/includes/ms.php
    index ff7df62354..f50b85c2e8 100644
    a b function avoid_blog_page_permalink_collision( $data, $postarr ) { 
    736736        if ( ! is_main_site() ) {
    737737                return $data;
    738738        }
     739        if ( isset( $data['post_parent'] ) && $data['post_parent'] ) {
     740                return $data;
     741        }
    739742
    740743        $post_name = $data['post_name'];
    741744        $c         = 0;
  • new file tests/phpunit/tests/multisite/msPermalinkCollision.php

    diff --git a/tests/phpunit/tests/multisite/msPermalinkCollision.php b/tests/phpunit/tests/multisite/msPermalinkCollision.php
    new file mode 100644
    index 0000000000..9758ada08c
    - +  
     1<?php
     2
     3if ( is_multisite() ) :
     4
     5        /**
     6         * Tests specific to `avoid_blog_page_permalink_collision()` in multisite.
     7         *
     8         * @group multisite
     9         */
     10        class Tests_Multisite_MS_Permalink_Collision extends WP_UnitTestCase {
     11                protected $suppress = false;
     12                protected static $site_id;
     13                protected static $root_page;
     14                protected static $child_page;
     15                protected static $post_and_blog_path = 'permalink-collison';
     16
     17                /**
     18                 * Create a blog and the pages we need to test the collision.
     19                 */
     20                public static function wpSetUpBeforeClass( $factory ) {
     21                        self::$site_id = self::factory()->blog->create(
     22                                array(
     23                                        'path' => '/' . self::$post_and_blog_path,
     24                                )
     25                        );
     26
     27                        self::$root_page = self::factory()->post->create_and_get(
     28                                array(
     29                                        'post_type'   => 'page',
     30                                        'post_title'  => 'Bar',
     31                                        'post_name'   => self::$post_and_blog_path,
     32                                )
     33                        );
     34
     35                        self::$child_page = self::factory()->post->create_and_get(
     36                                array(
     37                                        'post_parent' => self::$root_page->ID,
     38                                        'post_type'   => 'page',
     39                                        'post_title'  => 'Bar',
     40                                        'post_name'   => self::$post_and_blog_path,
     41                                )
     42                        );
     43                }
     44
     45                public function setUp() {
     46                        global $wpdb;
     47                        parent::setUp();
     48                        $this->suppress = $wpdb->suppress_errors();
     49                }
     50
     51                public function tearDown() {
     52                        global $wpdb;
     53                        $wpdb->suppress_errors( $this->suppress );
     54                        parent::tearDown();
     55                }
     56
     57                /**
     58                 * Delete blog and pages we created.
     59                 */
     60                public static function wpTearDownAfterClass() {
     61                        wp_delete_site( self::$site_id );
     62
     63                        wp_delete_post( self::$root_page->ID );
     64                        wp_delete_post( self::$child_page->ID );
     65                }
     66
     67                public function test_avoid_blog_page_permalink_collision_renames_post_name() {
     68                        $this->assertNotEquals( self::$post_and_blog_path, self::$root_page->post_name );
     69                }
     70
     71                /**
     72                 * Ensure `avoid_blog_page_permalink_collision()` doesn't rename child pages post_name.
     73                 *
     74                 * @ticket 51147
     75                 */
     76                public function test_avoid_blog_page_permalink_collision_doesnt_rename_child_pages() {
     77                        $this->assertEquals( self::$post_and_blog_path, self::$child_page->post_name );
     78                }
     79        }
     80
     81endif;