コード例 #1
0
ファイル: document_test.php プロジェクト: evltuma/moodle
 /**
  * Adding this test here as get_areas_user_accesses process is the same, results just depend on the context level.
  *
  * @return void
  */
 public function test_search_user_accesses()
 {
     global $DB, $PAGE;
     $area = new \core_mocksearch\search\mock_search_area();
     $renderer = $PAGE->get_renderer('core_search');
     $engine = new \mock_search\engine();
     $course = $this->getDataGenerator()->create_course(array('fullname' => 'Course & Title'));
     $coursectx = context_course::instance($course->id);
     $user = $this->getDataGenerator()->create_user(array('firstname' => 'User', 'lastname' => 'Escape & Name'));
     $this->getDataGenerator()->enrol_user($user->id, $course->id, 'teacher');
     // Make a record to enter in the search area.
     $record = new \stdClass();
     $record->title = 'Escape & Title';
     $record->content = 'Escape & Content';
     $record->description1 = 'Escape & Description1';
     $record->description2 = 'Escape & Description2';
     $record->userid = $user->id;
     $record->courseid = $course->id;
     $record = $this->generator->create_record($record);
     // Convert to a 'doc data' type format.
     $docdata = $area->convert_record_to_doc_array($record);
     // First see that the docuemnt has the right information, unescaped.
     $doc = $engine->to_document($area, $docdata);
     $this->assertEquals('Escape & Title', $doc->get('title'));
     $this->assertEquals('Escape & Content', $doc->get('content'));
     $this->assertEquals('Escape & Description1', $doc->get('description1'));
     $this->assertEquals('Escape & Description2', $doc->get('description2'));
     $this->assertEquals('User Escape & Name', $doc->get('userfullname'));
     $this->assertEquals('Course & Title', $doc->get('coursefullname'));
     // Export for template, and see if it is escaped.
     $export = $doc->export_for_template($renderer);
     $this->assertEquals('Escape & Title', $export['title']);
     $this->assertEquals('Escape & Content', $export['content']);
     $this->assertEquals('Escape & Description1', $export['description1']);
     $this->assertEquals('Escape & Description2', $export['description2']);
     $this->assertEquals('User Escape & Name', $export['userfullname']);
     $this->assertEquals('Course & Title', $export['coursefullname']);
 }
コード例 #2
0
ファイル: engine_test.php プロジェクト: evltuma/moodle
 /**
  * Test engine caches.
  *
  * @return void
  */
 public function test_engine_caches()
 {
     global $DB;
     $engine = new \mock_search\engine();
     $course1 = self::getDataGenerator()->create_course();
     $this->assertEquals($course1->id, $engine->get_course($course1->id)->id);
     $dbreads = $DB->perf_get_reads();
     $engine->get_course($course1->id);
     $this->assertEquals($dbreads, $DB->perf_get_reads());
     $fakearea1 = \core_search\manager::generate_areaid('plugintype_unexisting', 'fakearea');
     $fakearea2 = \core_search\manager::generate_areaid('mod_unexisting', 'morefake');
     $this->assertFalse($engine->get_search_area($fakearea1));
     $this->assertFalse($engine->get_search_area($fakearea2));
     $this->assertFalse($engine->get_search_area($fakearea2));
     $areaid = \core_search\manager::generate_areaid('mod_forum', 'post');
     $this->assertInstanceOf('\\mod_forum\\search\\post', $engine->get_search_area($areaid));
     $dbreads = $DB->perf_get_reads();
     $this->assertInstanceOf('\\mod_forum\\search\\post', $engine->get_search_area($areaid));
     $this->assertEquals($dbreads, $DB->perf_get_reads());
 }