Taxonomy: restore TagSearch unit tests and correct deprecated version string.

Reverts unit test removal, instead changing them to expect the function to be deprecated.
Correct the version the ajax callback was deprecated.

Amends [42614].

Props dlh, ocean90.
Fixes #38922.



git-svn-id: https://develop.svn.wordpress.org/trunk@42737 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Adam Silverstein
2018-02-25 16:27:57 +00:00
parent 83525467dc
commit 74ccb68c56
2 changed files with 169 additions and 2 deletions

View File

@@ -1519,10 +1519,10 @@ function options_permalink_add_js() {
* Ajax handler for tag search.
*
* @since 3.1.0
* @deprecated 4.9.0 Use the REST API tags endpoint instead.
* @deprecated 5.0.0 Use the REST API tags endpoint instead.
*/
function wp_ajax_ajax_tag_search() {
_deprecated_function( __FUNCTION__, '4.8', '/wp-json/wp/v2/tags' );
_deprecated_function( __FUNCTION__, '5.0.0', '/wp-json/wp/v2/tags' );
if ( ! isset( $_GET['tax'] ) ) {
wp_die( 0 );

View File

@@ -0,0 +1,167 @@
<?php
/**
* Admin ajax functions to be tested
*/
require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' );
/**
* Testing ajax tag search functionality
*
* @package WordPress
* @subpackage UnitTests
* @since 3.4.0
* @group ajax
*/
class Tests_Ajax_TagSearch extends WP_Ajax_UnitTestCase {
/**
* List of terms to insert on setup
*
* @var array
*/
private static $terms = array(
'chattels',
'depo',
'energumen',
'figuriste',
'habergeon',
'impropriation',
);
private static $term_ids = array();
public static function wpSetUpBeforeClass() {
foreach ( self::$terms as $t ) {
self::$term_ids[] = wp_insert_term( $t, 'post_tag' );
}
}
/**
* Test as an admin
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_post_tag() {
// Become an administrator
$this->_setRole( 'administrator' );
// Set up a default request
$_GET['tax'] = 'post_tag';
$_GET['q'] = 'chat';
// Make the request
try {
$this->_handleAjax( 'ajax-tag-search' );
} catch ( WPAjaxDieContinueException $e ) {
unset( $e );
}
// Ensure we found the right match
$this->assertEquals( $this->_last_response, 'chattels' );
}
/**
* Test with no results
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_no_results() {
// Become an administrator
$this->_setRole( 'administrator' );
// Set up a default request
$_GET['tax'] = 'post_tag';
$_GET['q'] = md5( uniqid() );
// Make the request
// No output, so we get a stop exception
$this->setExpectedException( 'WPAjaxDieStopException', '' );
$this->_handleAjax( 'ajax-tag-search' );
}
/**
* Test with commas
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_with_comma() {
// Become an administrator
$this->_setRole( 'administrator' );
// Set up a default request
$_GET['tax'] = 'post_tag';
$_GET['q'] = 'some,nonsense, terms,chat'; // Only the last term in the list is searched
// Make the request
try {
$this->_handleAjax( 'ajax-tag-search' );
} catch ( WPAjaxDieContinueException $e ) {
unset( $e );
}
// Ensure we found the right match
$this->assertEquals( $this->_last_response, 'chattels' );
}
/**
* Test as a logged out user
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_logged_out() {
// Log out
wp_logout();
// Set up a default request
$_GET['tax'] = 'post_tag';
$_GET['q'] = 'chat';
// Make the request
$this->setExpectedException( 'WPAjaxDieStopException', '-1' );
$this->_handleAjax( 'ajax-tag-search' );
}
/**
* Test with an invalid taxonomy type
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_invalid_tax() {
// Become an administrator
$this->_setRole( 'administrator' );
// Set up a default request
$_GET['tax'] = 'invalid-taxonomy';
$_GET['q'] = 'chat';
// Make the request
$this->setExpectedException( 'WPAjaxDieStopException', '0' );
$this->_handleAjax( 'ajax-tag-search' );
}
/**
* Test as an unprivileged user
*
* @expectedDeprecated wp_ajax_ajax_tag_search
*/
public function test_unprivileged_user() {
// Become an administrator
$this->_setRole( 'subscriber' );
// Set up a default request
$_GET['tax'] = 'post_tag';
$_GET['q'] = 'chat';
// Make the request
$this->setExpectedException( 'WPAjaxDieStopException', '-1' );
$this->_handleAjax( 'ajax-tag-search' );
}
}