protected function helper_test_dirty_output($expectexception = false) { $this->resetAfterTest(); // Keep track of the content we will output. $content = "Some example content"; $result = ajax_capture_output(); // ob_start should normally return without issue. $this->assertTrue($result); // Fill the output buffer. echo $content; if ($expectexception) { $this->setExpectedException('coding_exception'); ajax_check_captured_output(); } else { $result = ajax_check_captured_output(); $this->assertEquals($result, $content); } }
// // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * This file is used to deliver a branch from the site administration * in XML format back to a page from an AJAX call * * @since Moodle 2.6 * @package core * @copyright 2013 Rajesh Taneja <*****@*****.**> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('AJAX_SCRIPT', true); require_once __DIR__ . '/../../config.php'; // This should be accessed by only valid logged in user. require_login(null, false); // This identifies the type of the branch we want to get. Make sure it's SITE_ADMIN. $branchtype = required_param('type', PARAM_INT); if ($branchtype !== navigation_node::TYPE_SITE_ADMIN) { throw new coding_exception('Incorrect node type passed'); } // Start capturing output in case of broken plugins. ajax_capture_output(); $PAGE->set_context(context_system::instance()); $PAGE->set_url('/lib/ajax/getsiteadminbranch.php', array('type' => $branchtype)); $sitenavigation = new settings_navigation_ajax($PAGE); // Convert and output the branch as JSON. $converter = new navigation_json(); $branch = $sitenavigation->get('root'); ajax_check_captured_output(); echo $converter->convert($branch);