Formatting: `wp_make_link_relative()` should return an empty string if no path is present in the link.
Props bcworkz, MikeHansenMe, chriscct7, SergeyBiryukov. Fixes #26819. git-svn-id: https://develop.svn.wordpress.org/trunk@35497 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
b077aecd6a
commit
88c274fad8
|
@ -3621,7 +3621,7 @@ function tag_escape( $tag_name ) {
|
||||||
* @return string Absolute path.
|
* @return string Absolute path.
|
||||||
*/
|
*/
|
||||||
function wp_make_link_relative( $link ) {
|
function wp_make_link_relative( $link ) {
|
||||||
return preg_replace( '|^(https?:)?//[^/]+(/.*)|i', '$2', $link );
|
return preg_replace( '|^(https?:)?//[^/]+(/?.*)|i', '$2', $link );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group formatting
|
||||||
|
*/
|
||||||
|
class Tests_Formatting_WPMakeLinkRelative extends WP_UnitTestCase {
|
||||||
|
|
||||||
|
public function test_wp_make_link_relative_with_http_scheme() {
|
||||||
|
$link = 'http://example.com/this-is-a-test-http-url/';
|
||||||
|
$relative_link = wp_make_link_relative( $link );
|
||||||
|
$this->assertEquals( '/this-is-a-test-http-url/', $relative_link );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_wp_make_link_relative_with_https_scheme() {
|
||||||
|
$link = 'https://example.com/this-is-a-test-https-url/';
|
||||||
|
$relative_link = wp_make_link_relative( $link );
|
||||||
|
$this->assertEquals( '/this-is-a-test-https-url/', $relative_link );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 30373
|
||||||
|
*/
|
||||||
|
public function test_wp_make_link_relative_with_no_scheme() {
|
||||||
|
$link = '//example.com/this-is-a-test-schemeless-url/';
|
||||||
|
$relative_link = wp_make_link_relative( $link );
|
||||||
|
$this->assertEquals( '/this-is-a-test-schemeless-url/', $relative_link );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 30373
|
||||||
|
*/
|
||||||
|
public function test_wp_make_link_relative_should_retain_URL_param_that_is_also_a_URL() {
|
||||||
|
$link = 'https://example.com/this-is-a-test/?redirect=https://example.org/a-different-test-post/';
|
||||||
|
$relative_link = wp_make_link_relative( $link );
|
||||||
|
$this->assertEquals( '/this-is-a-test/?redirect=https://example.org/a-different-test-post/', $relative_link );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 26819
|
||||||
|
*/
|
||||||
|
function test_wp_make_link_relative_with_no_path() {
|
||||||
|
$link = 'http://example.com';
|
||||||
|
$relative_link = wp_make_link_relative( $link );
|
||||||
|
$this->assertEquals( '', $relative_link );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -304,36 +304,6 @@ class Tests_Link extends WP_UnitTestCase {
|
||||||
$this->assertEquals( $p3, $found->ID );
|
$this->assertEquals( $p3, $found->ID );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_wp_make_link_relative_with_http_scheme() {
|
|
||||||
$link = 'http://example.com/this-is-a-test-http-url/';
|
|
||||||
$relative_link = wp_make_link_relative( $link );
|
|
||||||
$this->assertEquals( '/this-is-a-test-http-url/', $relative_link );
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_wp_make_link_relative_with_https_scheme() {
|
|
||||||
$link = 'https://example.com/this-is-a-test-https-url/';
|
|
||||||
$relative_link = wp_make_link_relative( $link );
|
|
||||||
$this->assertEquals( '/this-is-a-test-https-url/', $relative_link );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ticket 30373
|
|
||||||
*/
|
|
||||||
public function test_wp_make_link_relative_with_no_scheme() {
|
|
||||||
$link = '//example.com/this-is-a-test-schemeless-url/';
|
|
||||||
$relative_link = wp_make_link_relative( $link );
|
|
||||||
$this->assertEquals( '/this-is-a-test-schemeless-url/', $relative_link );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ticket 30373
|
|
||||||
*/
|
|
||||||
public function test_wp_make_link_relative_should_retain_URL_param_that_is_also_a_URL() {
|
|
||||||
$link = 'https://example.com/this-is-a-test/?redirect=https://example.org/a-different-test-post/';
|
|
||||||
$relative_link = wp_make_link_relative( $link );
|
|
||||||
$this->assertEquals( '/this-is-a-test/?redirect=https://example.org/a-different-test-post/', $relative_link );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ticket 30910
|
* @ticket 30910
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue