Multisite: Introduce a self_admin_url filter to adjust the URL to an administration panel.

Props j.hoffmann.
Fixes #37446.


git-svn-id: https://develop.svn.wordpress.org/trunk@41060 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Felix Arntz
2017-07-14 23:00:55 +00:00
parent c8e811cc7e
commit 55bb567e0f
2 changed files with 74 additions and 6 deletions

View File

@@ -0,0 +1,56 @@
<?php
/**
* @group link
*/
class Tests_Link_Admin extends WP_UnitTestCase {
/**
* @ticket 37446
*/
public function test_self_admin_url() {
$this->assertSame( admin_url(), self_admin_url() );
}
/**
* @ticket 37446
*/
public function test_self_admin_url_with_path() {
$path = 'options-general.php';
$this->assertSame( admin_url( $path ), self_admin_url( $path ) );
}
/**
* @ticket 37446
*/
public function test_self_admin_url_with_path_and_scheme() {
$path = 'options-general.php';
$scheme = 'https';
$this->assertSame( admin_url( $path, $scheme ), self_admin_url( $path, $scheme ) );
}
/**
* @ticket 37446
*/
public function test_self_admin_url_filtered() {
$path = 'options-general.php';
$scheme = 'https';
add_filter( 'self_admin_url', array( $this, 'filter_self_admin_url' ), 10, 3 );
$result = self_admin_url( $path, $scheme );
remove_filter( 'self_admin_url', array( $this, 'filter_self_admin_url' ), 10 );
$expected = home_url( '/global-admin/' . $path, $scheme );
$this->assertSame( $expected, $result );
}
/**
* @ticket 37446
*/
public function filter_self_admin_url( $url, $path, $scheme ) {
return home_url( path_join( '/global-admin/', $path ), $scheme );
}
}