WordPress.org

Make WordPress Core

Ticket #18438: term_unittests_new-edit.patch

File term_unittests_new-edit.patch, 12.1 KB (added by markoheijnen, 4 years ago)

1 test will fail due not returning id as a string

  • wp-testcase/test-xmlrpc-api/test_wp_editTerm.php

     
     1<?php 
     2include_once(ABSPATH . 'wp-admin/includes/admin.php'); 
     3include_once(ABSPATH . WPINC . '/class-IXR.php'); 
     4include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php'); 
     5 
     6class TestXMLRPCServer_wp_editTerm extends WPTestCase { 
     7        var $user_ids = array(); 
     8        var $term_ids = array(); 
     9 
     10        var $parent_term; 
     11        var $child_term; 
     12        var $post_tag; 
     13 
     14        function setUp() { 
     15                parent::setUp(); 
     16                // keep track of users we create 
     17                $this->user_ids = array(); 
     18                $this->_flush_roles(); 
     19 
     20                $this->orig_users = get_users_of_blog(); 
     21                add_filter( 'pre_option_enable_xmlrpc', '__return_true' ); 
     22 
     23                $this->_make_user( 'subscriber', 'subscriber', 'subscriber' ); 
     24                $this->_make_user( 'contributor', 'contributor', 'contributor' ); 
     25                $this->_make_user( 'author', 'author', 'author' ); 
     26                $this->_make_user( 'editor', 'editor', 'editor' ); 
     27 
     28                $this->parent_term = wp_insert_term( 'parent' , 'category' ); 
     29                $this->child_term = wp_insert_term( 'child' , 'category' ); 
     30                $this->post_tag = wp_insert_term( 'test' , 'post_tag' ); 
     31 
     32                $this->myxmlrpcserver = new wp_xmlrpc_server(); 
     33        } 
     34 
     35        function tearDown() { 
     36                parent::tearDown(); 
     37                // delete any users that were created during tests 
     38                foreach ($this->user_ids as $id) 
     39                        wp_delete_user($id); 
     40 
     41                wp_delete_term( $this->parent_term['term_id'], 'category' ); 
     42                wp_delete_term( $this->child_term['term_id'], 'category' ); 
     43                wp_delete_term( $this->post_tag['term_id'], 'post_tag' ); 
     44 
     45                remove_filter( 'pre_option_enable_xmlrpc', '__return_true' ); 
     46        } 
     47 
     48        function _flush_roles() { 
     49                // we want to make sure we're testing against the db, not just in-memory data 
     50                // this will flush everything and reload it from the db 
     51                unset( $GLOBALS['wp_user_roles'] ); 
     52        } 
     53 
     54 
     55        function test_invalid_username_password() { 
     56                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'username', 'password' ) ); 
     57                $this->assertInstanceOf( 'IXR_Error', $result ); 
     58                $this->assertEquals( 403, $result->code ); 
     59        } 
     60 
     61        function test_empty_taxonomy() { 
     62                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'subscriber', 'subscriber' ) ); 
     63                $this->assertInstanceOf( 'IXR_Error', $result ); 
     64                $this->assertEquals( 403, $result->code ); 
     65                $this->assertEquals( __( 'Invalid taxonomy.' ), $result->message ); 
     66        } 
     67 
     68        function test_invalid_taxonomy() { 
     69                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'subscriber', 'subscriber', $this->parent_term['term_id'], array( 'taxonomy' => 'not_existing' ) ) ); 
     70                $this->assertInstanceOf( 'IXR_Error', $result ); 
     71                $this->assertEquals( 403, $result->code ); 
     72                $this->assertEquals( __( 'Invalid taxonomy.' ), $result->message ); 
     73        } 
     74 
     75        function test_incapable_user() { 
     76                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'subscriber', 'subscriber', $this->parent_term['term_id'], array( 'taxonomy' => 'category' ) ) ); 
     77                $this->assertInstanceOf( 'IXR_Error', $result ); 
     78                $this->assertEquals( 401, $result->code ); 
     79                $this->assertEquals( __( 'You are not allowed to edit terms in this taxonomy.' ), $result->message ); 
     80        } 
     81 
     82        function test_term_not_exists() { 
     83                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', 9999, array( 'taxonomy' => 'category' ) ) ); 
     84                $this->assertInstanceOf( 'IXR_Error', $result ); 
     85                $this->assertEquals( 404, $result->code ); 
     86                $this->assertEquals(  __( 'Invalid term ID.' ), $result->message ); 
     87        } 
     88 
     89        function test_empty_term() { 
     90                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', '', array( 'taxonomy' => 'category' ) ) ); 
     91                $this->assertInstanceOf( 'IXR_Error', $result ); 
     92                $this->assertEquals( 500, $result->code ); 
     93                $this->assertEquals( __('Empty Term'), $result->message ); 
     94        } 
     95 
     96        function test_empty_term_name() { 
     97                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->parent_term['term_id'], array( 'taxonomy' => 'category', 'name' => '' ) ) ); 
     98                $this->assertInstanceOf( 'IXR_Error', $result ); 
     99                $this->assertEquals( 403, $result->code ); 
     100                $this->assertEquals( __( 'The term name cannot be empty.' ), $result->message ); 
     101        } 
     102 
     103        function test_parent_for_nonhierarchical() { 
     104                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->post_tag['term_id'], array( 'taxonomy' => 'post_tag', 'parent' => $this->parent_term['term_id'] ) ) ); 
     105                $this->assertInstanceOf( 'IXR_Error', $result ); 
     106                $this->assertEquals( 403, $result->code ); 
     107                $this->assertEquals( __( 'This taxonomy is not hierarchical.' ), $result->message ); 
     108        } 
     109 
     110        function test_parent_empty() { 
     111                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->child_term['term_id'], array( 'taxonomy' => 'category', 'parent' => '', 'name' => 'test' ) ) ); 
     112                $this->assertInstanceOf( 'IXR_Error', $result ); 
     113                $this->assertEquals( 500, $result->code ); 
     114                $this->assertEquals( __('Empty Term'), $result->message ); 
     115        } 
     116 
     117        function test_parent_invalid() { 
     118                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->child_term['term_id'], array( 'taxonomy' => 'category', 'parent' => 'dasda', 'name' => 'test' ) ) ); 
     119                $this->assertInstanceOf( 'IXR_Error', $result ); 
     120                $this->assertEquals( 500, $result->code ); 
     121        } 
     122 
     123        function test_parent_not_existing() { 
     124                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->child_term['term_id'], array( 'taxonomy' => 'category', 'parent' => 9999, 'name' => 'test' ) ) ); 
     125                $this->assertInstanceOf( 'IXR_Error', $result ); 
     126                $this->assertEquals( 403, $result->code ); 
     127                $this->assertEquals( __( 'Invalid parent term ID.' ), $result->message ); 
     128        } 
     129 
     130        function test_parent_duplicate_slug() { 
     131                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->child_term['term_id'], array( 'taxonomy' => 'category', 'slug' => 'parent' ) ) ); 
     132                $this->assertInstanceOf( 'IXR_Error', $result ); 
     133                $this->assertEquals( 500, $result->code ); 
     134                $this->assertEquals( htmlspecialchars( sprintf( __('The slug &#8220;%s&#8221; is already in use by another term'), 'parent' ) ), $result->message ); 
     135        } 
     136 
     137        function test_edit_all_fields() { 
     138                $fields = array( 'taxonomy' => 'category', 'name' => 'Child 2', 'parent' => $this->parent_term['term_id'], 'description' => 'Child term', 'slug' => 'child_2' ); 
     139                $result = $this->myxmlrpcserver->wp_editTerm( array( 1, 'editor', 'editor', $this->child_term['term_id'], $fields ) ); 
     140                $this->assertNotInstanceOf( 'IXR_Error', $result ); 
     141        } 
     142} 
     143 No newline at end of file 
  • wp-testcase/test-xmlrpc-api/test_wp_newTerm.php

     
     1<?php 
     2include_once(ABSPATH . 'wp-admin/includes/admin.php'); 
     3include_once(ABSPATH . WPINC . '/class-IXR.php'); 
     4include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php'); 
     5 
     6class TestXMLRPCServer_wp_newTerm extends WPTestCase { 
     7        var $user_ids = array(); 
     8        var $term_ids = array(); 
     9        var $parent_term; 
     10 
     11        function setUp() { 
     12                parent::setUp(); 
     13                // keep track of users we create 
     14                $this->user_ids = array(); 
     15                $this->term_ids = array(); 
     16                $this->_flush_roles(); 
     17 
     18                $this->orig_users = get_users_of_blog(); 
     19                add_filter( 'pre_option_enable_xmlrpc', '__return_true' ); 
     20 
     21                $this->_make_user( 'subscriber', 'subscriber', 'subscriber' ); 
     22                $this->_make_user( 'contributor', 'contributor', 'contributor' ); 
     23                $this->_make_user( 'author', 'author', 'author' ); 
     24                $this->_make_user( 'editor', 'editor', 'editor' ); 
     25 
     26                $this->parent_term = wp_insert_term( 'parent' , 'category' ); 
     27 
     28                $this->myxmlrpcserver = new wp_xmlrpc_server(); 
     29        } 
     30 
     31        function tearDown() { 
     32                parent::tearDown(); 
     33                // delete any users that were created during tests 
     34                foreach ( $this->user_ids as $id ) 
     35                        wp_delete_user($id); 
     36 
     37                wp_delete_term( $this->parent_term, 'category' ); 
     38                foreach ( $this->term_ids as $term_id ) 
     39                        wp_delete_term( $term_id, 'category' ); 
     40 
     41                remove_filter( 'pre_option_enable_xmlrpc', '__return_true' ); 
     42        } 
     43 
     44        function _flush_roles() { 
     45                // we want to make sure we're testing against the db, not just in-memory data 
     46                // this will flush everything and reload it from the db 
     47                unset( $GLOBALS['wp_user_roles'] ); 
     48        } 
     49 
     50        function test_invalid_username_password() { 
     51                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'username', 'password' ) ); 
     52                $this->assertInstanceOf( 'IXR_Error', $result ); 
     53                $this->assertEquals( 403, $result->code ); 
     54        } 
     55 
     56        function test_empty_taxonomy() { 
     57                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'subscriber', 'subscriber' ) ); 
     58                $this->assertInstanceOf( 'IXR_Error', $result ); 
     59                $this->assertEquals( 403, $result->code ); 
     60                $this->assertEquals( __( 'Invalid taxonomy.' ), $result->message ); 
     61        } 
     62 
     63        function test_invalid_taxonomy() { 
     64                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'subscriber', 'subscriber', array( 'taxonomy' => 'not_existing' ) ) ); 
     65                $this->assertInstanceOf( 'IXR_Error', $result ); 
     66                $this->assertEquals( 403, $result->code ); 
     67                $this->assertEquals( __( 'Invalid taxonomy.' ), $result->message ); 
     68        } 
     69 
     70        function test_incapable_user() { 
     71                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'subscriber', 'subscriber', array( 'taxonomy' => 'category' ) ) ); 
     72                $this->assertInstanceOf( 'IXR_Error', $result ); 
     73                $this->assertEquals( 401, $result->code ); 
     74                $this->assertEquals( __( 'You are not allowed to create terms in this taxonomy.' ), $result->message ); 
     75        } 
     76 
     77        function test_empty_term() { 
     78                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'category', 'name' => '' ) ) ); 
     79                $this->assertInstanceOf( 'IXR_Error', $result ); 
     80                $this->assertEquals( 403, $result->code ); 
     81                $this->assertEquals( __( 'The term name cannot be empty.' ), $result->message ); 
     82        } 
     83 
     84        function test_parent_for_nonhierarchical() { 
     85                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'post_tag', 'parent' => $this->parent_term, 'name' => 'test' ) ) ); 
     86                $this->assertInstanceOf( 'IXR_Error', $result ); 
     87                $this->assertEquals( 403, $result->code ); 
     88                $this->assertEquals( __( 'This taxonomy is not hierarchical.' ), $result->message ); 
     89        } 
     90 
     91        function test_parent_invalid() { 
     92                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'category', 'parent' => 'dasda', 'name' => 'test' ) ) ); 
     93                $this->assertInstanceOf( 'IXR_Error', $result ); 
     94                $this->assertEquals( 500, $result->code ); 
     95        } 
     96 
     97        function test_parent_not_existing() { 
     98                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'category', 'parent' => 9999, 'name' => 'test' ) ) ); 
     99                $this->assertInstanceOf( 'IXR_Error', $result ); 
     100                $this->assertEquals( 500, $result->code ); 
     101                $this->assertEquals( __( 'Parent term does not exist.' ), $result->message ); 
     102        } 
     103 
     104 
     105        function test_add_term() { 
     106                $result = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'category', 'name' => 'test' ) ) ); 
     107                $this->assertNotInstanceOf( 'IXR_Error', $result ); 
     108                $this->assertStringMatchesFormat( '%d', $result ); 
     109 
     110                $term_ids[] = $result; 
     111        } 
     112 
     113        function test_add_term_with_parent() { 
     114                $result  = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', array( 'taxonomy' => 'category', 'parent' => $this->parent_term, 'name' => 'test' ) ) ); 
     115                $this->assertNotInstanceOf( 'IXR_Error', $result ); 
     116                $this->assertStringMatchesFormat( '%d', $result ); 
     117 
     118                $term_ids[] = $result; 
     119        } 
     120 
     121        function test_add_term_with_all() { 
     122                $taxonomy = array( 'taxonomy' => 'category', 'parent' => $this->parent_term, 'name' => 'test_all', 'description' => 'Test all', 'slug' => 'test_all' ); 
     123                $result  = $this->myxmlrpcserver->wp_newTerm( array( 1, 'editor', 'editor', $taxonomy ) ); 
     124                $this->assertNotInstanceOf( 'IXR_Error', $result ); 
     125                $this->assertStringMatchesFormat( '%d', $result ); 
     126 
     127                $term_ids[] = $result; 
     128        } 
     129} 
     130 No newline at end of file