123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?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 = rand_str();
- $taxonomy_object = new WP_Taxonomy( $taxonomy, 'post' );
- $taxonomy_object->add_rewrite_rules();
- $this->assertFalse( in_array( 'foobar', $wp->public_query_vars, true ) );
- }
- public function test_adds_query_var_if_public() {
- $this->set_permalink_structure( '/%postname%' );
- /* @var WP $wp */
- global $wp;
- $taxonomy = rand_str();
- $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 = rand_str();
- $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 = rand_str();
- $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 );
- }
- }
|