- Timestamp:
- 02/15/2023 10:23:05 AM (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/testcases/core/class-bp-component.php
r13314 r13422 93 93 $this->assertEquals( $expected, $example->block_globals['bp/example-block']->props ); 94 94 } 95 96 /** 97 * @group bp_rewrites 98 */ 99 public function test_component_rewrite_globals() { 100 $expected = array( 101 'directory' => 'bp_examples', 102 'single_item' => 'bp_example', 103 'single_item_action' => 'bp_example_action', 104 ); 105 106 $example = new BPTest_Component( 107 array( 108 'globals' => array( 109 'rewrite_ids' => array( 110 'directory' => 'examples ', 111 'single_item' => 'Exam?ple', 112 'single_item_action' => 'bp_example_action', 113 ) 114 ), 115 ) 116 ); 117 118 do_action( 'bp_setup_globals' ); 119 120 $this->assertEquals( $expected, $example->rewrite_ids ); 121 } 122 123 /** 124 * @group bp_rewrites 125 */ 126 public function test_component_add_rewrite_tags() { 127 $example = new BPTest_Component( 128 array( 129 'globals' => array( 130 'rewrite_ids' => array( 131 'directory' => 'examples', 132 'directory_type' => 'example_type', 133 ) 134 ), 135 ) 136 ); 137 138 do_action( 'bp_setup_globals' ); 139 140 $expected_directory_regex = '([1]{1,})'; 141 $rewrite_tags = array( 142 'directory_type' => '([^/]+)', 143 ); 144 145 $example->add_rewrite_tags( $rewrite_tags ); 146 147 global $wp_rewrite; 148 149 $position = array_search( '%' . $example->rewrite_ids['directory'] . '%', $wp_rewrite->rewritecode, true ); 150 $this->assertEquals( $wp_rewrite->rewritereplace[ $position ], $expected_directory_regex ); 151 152 $position = array_search( '%' . $example->rewrite_ids['directory_type'] . '%', $wp_rewrite->rewritecode, true ); 153 $this->assertEquals( $wp_rewrite->rewritereplace[ $position ], $rewrite_tags['directory_type'] ); 154 } 155 156 /** 157 * @group bp_rewrites 158 */ 159 public function test_component_add_rewrite_rules() { 160 $example = new BPTest_Component( 161 array( 162 'globals' => array( 163 'root_slug' => 'examples', 164 'rewrite_ids' => array( 165 'directory' => 'examples', 166 'directory_type' => 'example_type', 167 'single_item' => 'example', 168 'single_item_component' => 'example_component', 169 ) 170 ), 171 ) 172 ); 173 174 do_action( 'bp_setup_globals' ); 175 176 $rewrite_tags = array( 177 'directory_type' => '([^/]+)', 178 ); 179 180 $example->add_rewrite_tags( $rewrite_tags ); 181 182 $rewrite_rules = array( 183 'directory_type' => array( 184 'order' => 95, 185 'regex' => $example->root_slug . '/type/([^/]+)/?$', 186 'query' => 'index.php?' . $example->rewrite_ids['directory'] . '=1&' . $example->rewrite_ids['directory_type'] . '=$matches[1]', 187 ), 188 ); 189 190 $example->add_rewrite_rules( $rewrite_rules ); 191 192 global $wp_rewrite; 193 $this->assertEquals( $wp_rewrite->extra_rules_top[ $rewrite_rules['directory_type']['regex'] ], $rewrite_rules['directory_type']['query'] ); 194 } 195 196 /** 197 * @group bp_rewrites 198 */ 199 public function test_component_add_permastructs() { 200 $example = new BPTest_Component( 201 array( 202 'globals' => array( 203 'has_directory' => true, 204 'root_slug' => 'examples', 205 'rewrite_ids' => array( 206 'directory' => 'examples', 207 'example_signup' => 'signup', 208 ) 209 ), 210 ) 211 ); 212 213 do_action( 'bp_setup_globals' ); 214 215 $expected = 'example-signup/%' . $example->rewrite_ids['example_signup'] . '%'; 216 $permastructs = array( 217 $example->rewrite_ids['example_signup'] => array( 218 'permastruct' => $expected, 219 'args' => array(), 220 ), 221 ); 222 223 $example->add_permastructs( $permastructs ); 224 225 global $wp_rewrite; 226 227 // The directory permastruct should be created automatically. 228 $this->assertTrue( isset( $wp_rewrite->extra_permastructs['bp_examples'] ) ); 229 230 // The custom permastruct should be created as requested. 231 $this->assertEquals( $wp_rewrite->extra_permastructs[ $example->rewrite_ids['example_signup'] ]['struct'], $expected ); 232 } 95 233 }
Note: See TracChangeset
for help on using the changeset viewer.