wordpress-develop/tests/phpunit/tests/term/wpTaxonomy.php
John Blackbourn 029bea45b0 Build/Test Tools: Reduce the use of unnecessary randomness in tests.
This increases the overall reliability of the tests.

Props johnillo

Fixes #37371


git-svn-id: https://develop.svn.wordpress.org/trunk@52389 602fd350-edb4-49c9-b593-d223f7449a82
2021-12-19 13:42:37 +00:00

103 lines
2.4 KiB
PHP

<?php
/**
* @group taxonomy
*/
class Tests_WP_Taxonomy extends WP_UnitTestCase {
public function test_instances() {
global $wp_taxonomies;
foreach ( $wp_taxonomies as $taxonomy ) {
$this->assertInstanceOf( 'WP_Taxonomy', $taxonomy );
}
}
public function test_does_not_add_query_var_if_not_public() {
$this->set_permalink_structure( '/%postname%' );
/* @var WP $wp */
global $wp;
$taxonomy = 'taxonomy1';
$taxonomy_object = new WP_Taxonomy( $taxonomy, 'post' );
$taxonomy_object->add_rewrite_rules();
$this->assertNotContains( 'foobar', $wp->public_query_vars );
}
public function test_adds_query_var_if_public() {
$this->set_permalink_structure( '/%postname%' );
/* @var WP $wp */
global $wp;
$taxonomy = 'taxonomy2';
$taxonomy_object = new WP_Taxonomy(
$taxonomy,
'post',
array(
'public' => true,
'rewrite' => false,
'query_var' => 'foobar',
)
);
$taxonomy_object->add_rewrite_rules();
$in_array = in_array( 'foobar', $wp->public_query_vars, true );
$taxonomy_object->remove_rewrite_rules();
$in_array_after = in_array( 'foobar', $wp->public_query_vars, true );
$this->assertTrue( $in_array );
$this->assertFalse( $in_array_after );
}
public function test_adds_rewrite_rules() {
$this->set_permalink_structure( '/%postname%' );
/* @var WP_Rewrite $wp_rewrite */
global $wp_rewrite;
$taxonomy = 'taxonomy3';
$taxonomy_object = new WP_Taxonomy(
$taxonomy,
'post',
array(
'public' => true,
'rewrite' => true,
)
);
$taxonomy_object->add_rewrite_rules();
$rewrite_tags = $wp_rewrite->rewritecode;
$taxonomy_object->remove_rewrite_rules();
$rewrite_tags_after = $wp_rewrite->rewritecode;
$this->assertNotFalse( array_search( "%$taxonomy%", $rewrite_tags, true ) );
$this->assertFalse( array_search( "%$taxonomy%", $rewrite_tags_after, true ) );
}
public function test_adds_ajax_callback() {
$taxonomy = 'taxonomy4';
$taxonomy_object = new WP_Taxonomy(
$taxonomy,
'post',
array(
'public' => true,
'rewrite' => true,
)
);
$taxonomy_object->add_hooks();
$has_action = has_action( "wp_ajax_add-$taxonomy", '_wp_ajax_add_hierarchical_term' );
$taxonomy_object->remove_hooks();
$has_action_after = has_action( "wp_ajax_add-$taxonomy", '_wp_ajax_add_hierarchical_term' );
$this->assertSame( 10, $has_action );
$this->assertFalse( $has_action_after );
}
}