_error_level = error_reporting(); error_reporting( $this->_error_level & ~E_WARNING ); } /** * Tear down the test fixture. * Remove the wp_die() override, restore error reporting */ public function tearDown() { parent::tearDown(); remove_filter( 'wp_die_ajax_handler', array( $this, 'getDieHandler' ), 1, 1 ); error_reporting( $this->_error_level ); } /** * Return our callback handler * @return callback */ public function getDieHandler() { return array( $this, 'dieHandler' ); } /** * Handler for wp_die() * Don't die, just continue on. * @param string $message */ public function dieHandler( $message ) { } /** * Test that charset in header matches blog_charset * Note: headers_list doesn't work properly in CLI mode, fall back on * xdebug_get_headers if it's available * Needs a separate process to get around the headers/output from the * bootstrapper * @ticket 19448 * @runInSeparateProcess */ public function test_response_charset_in_header() { if ( !function_exists( 'xdebug_get_headers' ) ) { $this->markTestSkipped( 'xdebug is required for this test' ); } // Generate an ajax response ob_start(); $ajax_response = new WP_Ajax_Response(); $ajax_response->send(); // Check the header $headers = xdebug_get_headers(); ob_end_clean(); $this->assertTrue( in_array( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), $headers ) ); } /** * Test that charset in the xml tag matches blog_charset * @ticket 19448 */ public function test_response_charset_in_xml() { // Generate an ajax response ob_start(); $ajax_response = new WP_Ajax_Response(); $ajax_response->send(); // Check the XML tag $contents = ob_get_clean(); $this->assertRegExp( '/<\?xml\s+version=\'1.0\'\s+encoding=\'' . preg_quote( get_option( 'blog_charset' ) ) . '\'\s+standalone=\'yes\'\?>/', $contents ); } }