/** * @expectedException \coding_exception */ public function test_route_fail() { $controller = $this->getMock('\\theme_snap\\controller\\controller_abstract', array('init', 'require_capability')); $router = new router(); $router->add_controller($controller); $router->route_action('test'); }
define('NO_DEBUG_DISPLAY', true); require_once __DIR__ . '/../../config.php'; $systemcontext = context_system::instance(); $action = required_param('action', PARAM_ALPHAEXT); $contextid = optional_param('contextid', $systemcontext->id, PARAM_INT); list($context, $course, $cm) = get_context_info_array($contextid); $courseactions = ['get_media', 'read_page', 'get_page']; if (in_array($action, $courseactions)) { require_login($course, false, $cm, false, true); } else { require_login(); } /** @var $PAGE moodle_page */ $PAGE->set_context($context); $PAGE->set_url('/theme/snap/rest.php', array('action' => $action, 'contextid' => $context->id)); $router = new router(); // Add controllers automatically. $controllerdir = __DIR__ . '/classes/controller'; $contfiles = scandir($controllerdir); foreach ($contfiles as $contfile) { if ($contfile === 'addsection_controller.php') { continue; } $pattern = '/_controller.php$/i'; if (preg_match($pattern, $contfile) !== 1) { continue; } else { $classname = '\\theme_snap\\controller\\' . str_ireplace('.php', '', $contfile); if (class_exists($classname)) { $rc = new ReflectionClass($classname); if ($rc->isSubclassOf('\\theme_snap\\controller\\controller_abstract')) {
// // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * Snap non-AJAX handler * * @package theme_snap * @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ use theme_snap\controller\kernel; use theme_snap\controller\router; use theme_snap\controller\addsection_controller; require_once __DIR__ . '/../../config.php'; $systemcontext = context_system::instance(); $action = required_param('action', PARAM_ALPHAEXT); $contextid = optional_param('contextid', $systemcontext->id, PARAM_INT); list($context, $course, $cm) = get_context_info_array($contextid); require_login($course, false, $cm, false, true); /** @var $PAGE moodle_page */ $PAGE->set_context($context); $PAGE->set_url('/theme/snap/index.php', array('action' => $action, 'contextid' => $context->id)); $router = new router(); $router->add_controller(new addsection_controller()); $kernel = new kernel($router); $kernel->handle($action);