Make WordPress Core

Ticket #44192: 44192.2.diff

File 44192.2.diff, 2.5 KB (added by desrosj, 6 years ago)
  • src/wp-includes/link-template.php

     
    43294329        $privacy_policy_url = get_privacy_policy_url();
    43304330
    43314331        if ( $privacy_policy_url ) {
    4332                 $link = sprintf(
    4333                         '<a class="privacy-policy-link" href="%s">%s</a>',
    4334                         esc_url( $privacy_policy_url ),
    4335                         __( 'Privacy Policy' )
    4336                 );
     4332                $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
     4333                $page_title     = get_the_title( $policy_page_id );
     4334
     4335                if ( ! empty( $page_title ) ) {
     4336                        $link = sprintf(
     4337                                '<a class="privacy-policy-link" href="%s">%s</a>',
     4338                                esc_url( $privacy_policy_url ),
     4339                                $page_title
     4340                        );
     4341                }
    43374342        }
    43384343
    43394344        /**
  • tests/phpunit/tests/link/getThePrivacyPolicyLink.php

     
    7171
    7272        /**
    7373         * The function should return a valid link if a privacy policy page has been
    74          * created and set as the `wp_page_for_privacy_policy`.
     74         * created and set as the `wp_page_for_privacy_policy`. The post title should
     75         * be used as the link text.
    7576         */
    7677        public function test_get_the_privacy_policy_link_should_return_valid_link_when_privacy_page_set() {
    7778                update_option( 'wp_page_for_privacy_policy', self::$privacy_policy_page_id );
     
    8081
    8182                $this->assertStringStartsWith( '<a', $actual_link );
    8283                $this->assertContains( self::$privacy_policy_url, $actual_link );
     84                $this->assertContains( '>' . WP_TESTS_DOMAIN . ' Privacy Policy</a>', $actual_link );
    8385                $this->assertStringEndsWith( '</a>', $actual_link );
    8486        }
    8587
     
    108110        }
    109111
    110112        /**
     113         * The function should return an empty string when there is no page title for the privacy policy.
     114         */
     115        public function test_get_the_privacy_policy_link_empty_page_title() {
     116                $nameless_page_id = $this->factory->post->create(
     117                        array(
     118                                'post_type'  => 'page',
     119                                'post_title' => '',
     120                        )
     121                );
     122
     123                update_option( 'wp_page_for_privacy_policy', $nameless_page_id );
     124
     125                $this->assertEmpty( get_the_privacy_policy_link( self::$before, self::$after ) );
     126        }
     127
     128        /**
    111129         * The function should return an empty string when `wp_page_for_privacy_policy` is _not_ configured.
    112130         */
    113131        public function test_get_the_privacy_policy_link_should_return_empty_string_when_privacy_page_not_set() {