| 338 | |
| 339 | /** |
| 340 | * @ticket BP7931 |
| 341 | */ |
| 342 | public function test_subnav_should_not_404_on_early_bp_setup_nav_priority() { |
| 343 | $u = self::factory()->user->create(); |
| 344 | $old_current_user = get_current_user_id(); |
| 345 | $this->set_current_user( $u ); |
| 346 | |
| 347 | $user_domain = bp_core_get_user_domain( $u ); |
| 348 | |
| 349 | // Register a subnav on 'bp_setup_nav' hook early (at priority zero). |
| 350 | add_action( 'bp_setup_nav', function() use ( $user_domain ) { |
| 351 | /* |
| 352 | * Emulate a subnav screen. |
| 353 | * |
| 354 | * The bp_core_load_template() call is imperative for our 404 check to work! |
| 355 | */ |
| 356 | $screen = function() { |
| 357 | bp_core_load_template ('members/single/plugins'); |
| 358 | }; |
| 359 | |
| 360 | // Register the subnav. |
| 361 | bp_core_new_subnav_item( array ( |
| 362 | 'name' => 'Testing', |
| 363 | 'slug' => 'testing', |
| 364 | 'parent_url' => $user_domain . bp_get_profile_slug (). '/', |
| 365 | 'parent_slug' => bp_get_profile_slug (), |
| 366 | 'screen_function' => $screen, |
| 367 | 'position' => 20 |
| 368 | ) ); |
| 369 | }, 0 ); |
| 370 | |
| 371 | // Emulate visit to our new subnav page. |
| 372 | $this->go_to( $user_domain . bp_get_profile_slug () . '/testing/' ); |
| 373 | |
| 374 | // Assert that subnav page does not 404. |
| 375 | $this->assertFalse( is_404() ); |
| 376 | |
| 377 | $this->set_current_user( $old_current_user ); |
| 378 | } |