public function test_book_exported() { // There is no proper API to call to test the event, so what we are // doing here is simply making sure that the events returns the right information. $course = $this->getDataGenerator()->create_course(); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $params = array( 'context' => context_module::instance($book->cmid), 'objectid' => $book->id ); $event = \booktool_exportimscp\event\book_exported::create($params); // Triggering and capturing the event. $sink = $this->redirectEvents(); $event->trigger(); $events = $sink->get_events(); $this->assertCount(1, $events); $event = reset($events); // Checking that the event contains the expected values. $this->assertInstanceOf('\booktool_exportimscp\event\book_exported', $event); $this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals($book->id, $event->objectid); $expected = array($course->id, 'book', 'exportimscp', 'tool/exportimscp/index.php?id=' . $book->cmid, $book->id, $book->cmid); $this->assertEventLegacyLogData($expected, $event); $this->assertEventContextNotUsed($event); }
// 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/>. /** * Book IMSCP export plugin * * @package booktool_exportimscp * @copyright 2001-3001 Antonio Vicent {@link http://ludens.es} * @copyright 2001-3001 Eloy Lafuente (stronk7) {@link http://stronk7.com} * @copyright 2011 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require __DIR__ . '/../../../../config.php'; require_once __DIR__ . '/locallib.php'; require_once $CFG->dirroot . '/mod/book/locallib.php'; require_once $CFG->libdir . '/filelib.php'; $id = required_param('id', PARAM_INT); // Course Module ID $cm = get_coursemodule_from_id('book', $id, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); $book = $DB->get_record('book', array('id' => $cm->instance), '*', MUST_EXIST); $PAGE->set_url('/mod/book/tool/exportimscp/index.php', array('id' => $id)); require_login($course, false, $cm); $context = context_module::instance($cm->id); require_capability('mod/book:read', $context); require_capability('booktool/exportimscp:export', $context); \booktool_exportimscp\event\book_exported::create_from_book($book, $context)->trigger(); $file = booktool_exportimscp_build_package($book, $context); send_stored_file($file, 10, 0, true, array('filename' => clean_filename($book->name) . '.zip'));
// You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * Book IMSCP export plugin * * @package booktool_exportimscp * @copyright 2001-3001 Antonio Vicent {@link http://ludens.es} * @copyright 2001-3001 Eloy Lafuente (stronk7) {@link http://stronk7.com} * @copyright 2011 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require dirname(__FILE__) . '/../../../../config.php'; require_once dirname(__FILE__) . '/locallib.php'; require_once $CFG->dirroot . '/mod/book/locallib.php'; require_once $CFG->libdir . '/filelib.php'; $id = required_param('id', PARAM_INT); // Course Module ID $cm = get_coursemodule_from_id('book', $id, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); $book = $DB->get_record('book', array('id' => $cm->instance), '*', MUST_EXIST); $PAGE->set_url('/mod/book/tool/exportimscp/index.php', array('id' => $id)); require_login($course, false, $cm); $context = context_module::instance($cm->id); require_capability('mod/book:read', $context); require_capability('booktool/exportimscp:export', $context); $params = array('context' => $context, 'objectid' => $book->id); $event = \booktool_exportimscp\event\book_exported::create($params); $event->add_record_snapshot('book', $book); $event->trigger(); $file = booktool_exportimscp_build_package($book, $context); send_stored_file($file, 10, 0, true, array('filename' => clean_filename($book->name) . '.zip'));