/** * Test HTTP headers set by the rest_pre_serve_request method. */ function test_rest_pre_serve_request_headers() { if (!function_exists('xdebug_get_headers')) { $this->markTestSkipped('xdebug is required for this test'); } require_once dirname(__FILE__) . '/../vendor/json-rest-api/plugin.php'; require_once dirname(__FILE__) . '/../includes/class-wp-rest-oembed-controller.php'; $user = $this->factory->user->create_and_get(array('display_name' => 'John Doe')); $post = $this->factory->post->create_and_get(array('post_author' => $user->ID, 'post_title' => 'Hello World')); $request = new WP_REST_Request('GET', '/wp/v2/oembed'); $request->set_param('url', get_permalink($post->ID)); $request->set_param('format', 'xml'); $server = new WP_REST_Server(); $response = $server->dispatch($request); ob_start(); _oembed_rest_pre_serve_request(true, $response, $request, $server); $output = ob_get_clean(); $this->assertNotEmpty($output); $headers = xdebug_get_headers(); $this->assertTrue(in_array('Content-Type: text/xml; charset=' . get_option('blog_charset'), $headers)); }
/** * Test the rest_pre_serve_request method. */ function test_rest_pre_serve_request_wrong_method() { $post = $this->factory->post->create_and_get(); $request = new WP_REST_Request('HEAD', '/wp/v2/oembed'); $request->set_param('url', get_permalink($post->ID)); $request->set_param('format', 'xml'); $response = $this->server->dispatch($request); $this->assertTrue(_oembed_rest_pre_serve_request(true, $response, $request, $this->server)); }