Ticket #37096: xmlrpc_getpost.patch
File xmlrpc_getpost.patch, 9.1 KB (added by , 9 years ago) |
---|
-
src/wp-includes/functions.php
-
tests/phpunit/tests/functions/xmlrpc-getpostcatergory.php
@@ -458,7 +473,7 @@ function xmlrpc_getposttitle( $content ) { global $post_default_title; if ( preg_match( '/<title>(.+?)<\/title>/is', $content, $matchtitle ) ) { - $post_title = $matchtitle[1]; + $post_title = trim( $matchtitle[1] ); } else { $post_title = $post_default_title; } @@ -483,7 +498,7 @@ global $post_default_category; if ( preg_match( '/<category>(.+?)<\/category>/is', $content, $matchcat ) ) { $post_category = trim( $matchcat[1], ',' ); - $post_category = explode( ',', $post_category ); + $post_category = array_unique( array_map('trim', explode( ',', $post_category ) ) ); } else { $post_category = $post_default_category; }
1 <?php 2 3 /** 4 * Class Tests_Xmlrpc_Getpostcategory 5 * test the xmlrpc_getpostcategory function 6 */ 7 class Tests_Xmlrpc_GetPostCategory extends WP_UnitTestCase { 8 9 /** 10 * setup 11 * declare the default category needed in function 12 */ 13 function setup() { 14 global $post_default_category; 15 $post_default_category = 'post_default_category'; 16 } 17 18 /** 19 * remove global 20 */ 21 function tearDown() { 22 global $post_default_category; 23 $post_default_category = null; 24 } 25 26 27 /** 28 * pass null 29 */ 30 function test_xmlrpc_getpostcategory_null() { 31 $this->assertEquals( 'post_default_category' , xmlrpc_getpostcategory( null ) ); 32 } 33 34 /** 35 * pass good category in test 36 */ 37 function test_xmlrpc_getpostcategory_good() { 38 39 $this->assertEquals( array( 'good_category' ) , xmlrpc_getpostcategory( '<category>good_category</category>' ) ); 40 } 41 42 43 /** 44 * pass good category in test 45 */ 46 function test_xmlrpc_getpostcategorys_good() { 47 48 $this->assertEquals( array( 'good_category1', 'good_category2', 'good_category3' ), xmlrpc_getpostcategory( '<category>good_category1, good_category2, good_category3</category>' ) ); 49 } 50 51 /** 52 * pass good category in test 53 */ 54 function test_xmlrpc_getpostcategorys_dupicate_cat() { 55 56 $this->assertEquals( array( 0 => 'good_category1', 2 => 'good_category3' ), xmlrpc_getpostcategory( '<category>good_category1, good_category1, good_category3,</category>' ) ); 57 } 58 59 /** 60 * pass good category in lot of content 61 */ 62 function test_xmlrpc_getpostcategory_good_in_post_tag() { 63 64 $this->assertEquals( array( 'good_category' ) , xmlrpc_getpostcategory( '<post><category>good_category</category><cat>fsdfsfsf</cat></post>' ) ); 65 } 66 /** 67 * missing close 68 */ 69 function test_xmlrpc_getpostcategory_bad() { 70 71 $this->assertEquals( 'post_default_category', xmlrpc_getpostcategory( '<category>good_category<category>ssssss' ) ); 72 } 73 74 /** 75 * category has to be something or default is returned 76 */ 77 function test_xmlrpc_getpostcategory_missing() { 78 79 $this->assertEquals( 'post_default_category' , xmlrpc_getpostcategory( '<category></category>' ) ); 80 } 81 82 /** 83 * return space 84 */ 85 function test_xmlrpc_getpostcategory_space() { 86 87 $this->assertEquals( array( '' ) , xmlrpc_getpostcategory( '<category> </category>' ) ); 88 } 89 90 /** 91 * nest categorys tern bad string 92 */ 93 function test_xmlrpc_getpostcategory_category() { 94 95 $this->assertEquals( array( '<category>category' ), xmlrpc_getpostcategory( '<category> <category>category</category> </category>' ) ); 96 97 } 98 99 /** 100 * inluded any tag in the category 101 */ 102 function test_xmlrpc_getpostcategory_span() { 103 104 $this->assertEquals( array( '<span>category</span>' ), xmlrpc_getpostcategory( '<category> <span>category</span> </category>' ) ); 105 } 106 107 108 /** 109 * bad opening tag 110 */ 111 function test_xmlrpc_getpostcategory_bad_open_tag() { 112 113 $this->assertEquals( 'post_default_category' , xmlrpc_getpostcategory( '<category <span>category</span> </category>' ) ); 114 } 115 116 /** 117 * bad closing tag 118 */ 119 function test_xmlrpc_getpostcategory_bad_close_tag() { 120 121 $this->assertEquals( 'post_default_category' , xmlrpc_getpostcategory( '<category>category</category dddddd>' ) ); 122 } 123 124 /** 125 * dosen't find category if attribute set 126 */ 127 function test_xmlrpc_getpostcategory_attribute_in_tag() { 128 129 $this->assertEquals( 'post_default_category' , xmlrpc_getpostcategory( '<category id="id">category</category>' ) ); 130 } 131 132 /** 133 * find just the frist category 134 */ 135 function test_xmlrpc_getpostcategory_2_categorys() { 136 137 $this->assertEquals( array( 'category1' ) , xmlrpc_getpostcategory( '<category>category1</category><category>category2</category>' ) ); 138 } 139 140 /** 141 * pass cdata 142 */ 143 function test_xmlrpc_getpostcategory_cdata() { 144 145 $this->assertEquals( array( '<![CDATA["category"]]>' ), xmlrpc_getpostcategory( '<category><![CDATA["category"]]></category>' ) ); 146 } 147 148 /** 149 * pass cdata with tag category 150 */ 151 function test_xmlrpc_getpostcategory_bad_cdate() { 152 153 $this->assertEquals( array( '<![CDATA["<category>category' ) , xmlrpc_getpostcategory( '<category><![CDATA["<category>category</category>"]]></category>' ) ); 154 } 155 } -
tests/phpunit/tests/functions/xmlrpc-getposttitle.php
1 <?php 2 3 /** 4 * Class Tests_Xmlrpc_Getposttitle 5 * test the xmlrpc_getposttitle function 6 */ 7 class Tests_Xmlrpc_Getposttitle extends WP_UnitTestCase { 8 9 /** 10 * setup 11 * declare the default title needed in function 12 */ 13 function setup() { 14 global $post_default_title; 15 $post_default_title = 'post_default_title'; 16 } 17 18 /** 19 * remove global 20 */ 21 function tearDown() { 22 global $post_default_title; 23 $post_default_title = null; 24 } 25 26 27 /** 28 * pass null 29 */ 30 function test_xmlrpc_getposttitle_null() { 31 $this->assertEquals( 'post_default_title' , xmlrpc_getposttitle( null ) ); 32 } 33 34 /** 35 * pass good title in test 36 */ 37 function test_xmlrpc_getposttitle_good() { 38 39 $this->assertEquals( 'good_title' , xmlrpc_getposttitle( '<title>good_title</title>' ) ); 40 } 41 /** 42 * pass good title in lot of content 43 */ 44 function test_xmlrpc_getposttitle_good_in_post_tag() { 45 46 $this->assertEquals( 'good_title' , xmlrpc_getposttitle( '<post><title>good_title</title><cat>fsdfsfsf</cat></post>' ) ); 47 } 48 /** 49 * missing close 50 */ 51 function test_xmlrpc_getposttitle_bad() { 52 53 $this->assertEquals( 'post_default_title', xmlrpc_getposttitle( '<title>good_title<title>ssssss' ) ); 54 } 55 56 /** 57 * title has to be something or default is returned 58 */ 59 function test_xmlrpc_getposttitle_missing() { 60 61 $this->assertEquals( 'post_default_title' , xmlrpc_getposttitle( '<title></title>' ) ); 62 } 63 64 /** 65 * return space 66 */ 67 function test_xmlrpc_getposttitle_space() { 68 69 $this->assertEquals( '' , xmlrpc_getposttitle( '<title> </title>' ) ); 70 } 71 72 /** 73 * nest titles tern bad string 74 */ 75 function test_xmlrpc_getposttitle_title() { 76 77 $this->assertEquals( ' <title>title' , xmlrpc_getposttitle( '<title> <title>title</title> </title>' ) ); 78 79 } 80 81 /** 82 * inluded any tag in the title 83 */ 84 function test_xmlrpc_getposttitle_span() { 85 86 $this->assertEquals( ' <span>title</span> ' , xmlrpc_getposttitle( '<title> <span>title</span> </title>' ) ); 87 } 88 89 90 /** 91 * bad opening tag 92 */ 93 function test_xmlrpc_getposttitle_bad_open_tag() { 94 95 $this->assertEquals( 'post_default_title' , xmlrpc_getposttitle( '<title <span>title</span> </title>' ) ); 96 } 97 98 /** 99 * bad closing tag 100 */ 101 function test_xmlrpc_getposttitle_bad_close_tag() { 102 103 $this->assertEquals( 'post_default_title' , xmlrpc_getposttitle( '<title>title</title dddddd>' ) ); 104 } 105 106 107 /** 108 * dosen't find title if attribute set 109 */ 110 function test_xmlrpc_getposttitle_attribute_in_tag() { 111 112 $this->assertEquals( 'post_default_title' , xmlrpc_getposttitle( '<title id="id">title</title>' ) ); 113 } 114 115 /** 116 * find just the frist title 117 */ 118 function test_xmlrpc_getposttitle_2_titles() { 119 120 $this->assertEquals( 'title1' , xmlrpc_getposttitle( '<title>title1</title><title>title2</title>' ) ); 121 } 122 123 /** 124 * pass cdata 125 */ 126 function test_xmlrpc_getposttitle_cdata() { 127 128 $this->assertEquals( '<![CDATA["title"]]>' , xmlrpc_getposttitle( '<title><![CDATA["title"]]></title>' ) ); 129 } 130 131 /** 132 * pass cdata with tag title 133 */ 134 function test_xmlrpc_getposttitle_bad_cdate() { 135 136 $this->assertEquals( '<![CDATA["<title>title' , xmlrpc_getposttitle( '<title><![CDATA["<title>title</title>"]]></title>' ) ); 137 } 138 }