http_host = $_SERVER['HTTP_HOST']; } if ( isset( $_SERVER['SERVER_PORT'] ) ) { $this->server_port = $_SERVER['SERVER_PORT']; } if ( isset( $_SERVER['REQUEST_URI'] ) ) { $this->request_uri = $_SERVER['REQUEST_URI']; } } public function tearDown() { $_SERVER['HTTP_HOST'] = $this->http_host; $_SERVER['SERVER_PORT'] = $this->server_port; $_SERVER['REQUEST_URI'] = $this->request_uri; parent::tearDown(); } public function test_bbp_verify_nonce_request_with_port_in_home_url_and_wordpress_installed_in_subdirectory() { // fake various $_SERVER parameters $host = explode( ':', $_SERVER['HTTP_HOST'] ); $_SERVER['HTTP_HOST'] = $host[0] . ':80'; $_SERVER['SERVER_PORT'] = 80; $_SERVER['REQUEST_URI'] = '/wordpress/'; // add port number and subdirecotry to home URL for testing add_filter( 'home_url', array( $this, 'add_port_and_subdirectory_to_home_url' ), 10, 3 ); // test bbp_verify_nonce_request() $action = 'verify-this'; $_REQUEST[ $action ] = wp_create_nonce( $action ); $test = bbp_verify_nonce_request( $action, $action ); // clean up! remove_filter( 'home_url', array( $this, 'add_port_and_subdirectory_to_home_url' ), 10, 3 ); unset( $_REQUEST[ $action ] ); // assert! $this->assertSame( 1, $test ); } /** * Add port 80 and /wordpress/ subdirectory to home URL. * * @param string $url The complete home URL including scheme and path. * @param string $path Path relative to the home URL. Blank string if no path is specified. * @param string|null $scheme Scheme to give the home URL context. Accepts 'http', 'https', 'relative' or null. * @return string */ public function add_port_and_subdirectory_to_home_url( $url, $path, $scheme ) { $home = parse_url( get_option( 'home' ) ); $home_path = isset( $home['path'] ) ? $home['path'] : ''; return $scheme . '://' . $home['host'] . ':80' . $home_path . '/wordpress' . $path; } }