/**
  * Renderers detailed course information.
  *
  * @param course_in_list $course The course to display details for.
  * @return string
  */
 public function course_detail(course_in_list $course)
 {
     $details = \core_course\management\helper::get_course_detail_array($course);
     $fullname = $details['fullname']['value'];
     $html = html_writer::start_div('course-detail');
     $html .= html_writer::tag('h3', $fullname);
     $html .= $this->course_detail_actions($course);
     foreach ($details as $class => $data) {
         $html .= $this->detail_pair($data['key'], $data['value'], $class);
     }
     $html .= html_writer::end_div();
     return $html;
 }
 /**
  * Test fetching course details.
  */
 public function test_get_course_detail_array()
 {
     $this->resetAfterTest(true);
     $generator = $this->getDataGenerator();
     $category = $generator->create_category();
     $course = $generator->create_course();
     $context = context_system::instance();
     list($user, $roleid) = $this->get_user_objects($generator, $context->id);
     $generator->enrol_user($user->id, $course->id, $roleid);
     course_capability_assignment::allow(array(self::COURSE_VIEW, self::COURSE_VIEWHIDDEN, 'moodle/course:update', 'moodle/course:enrolreview', 'moodle/course:delete', 'moodle/backup:backupcourse', 'moodle/restore:restorecourse', 'moodle/site:accessallgroups'), $roleid, $context->id);
     $details = \core_course\management\helper::get_course_detail_array(new course_in_list($course));
     $this->assertInternalType('array', $details);
     $this->assertArrayHasKey('format', $details);
     $this->assertArrayHasKey('fullname', $details);
     $this->assertArrayHasKey('shortname', $details);
     $this->assertArrayHasKey('idnumber', $details);
     $this->assertArrayHasKey('category', $details);
     $this->assertArrayHasKey('groupings', $details);
     $this->assertArrayHasKey('groups', $details);
     $this->assertArrayHasKey('roleassignments', $details);
     $this->assertArrayHasKey('enrolmentmethods', $details);
     $this->assertArrayHasKey('sections', $details);
     $this->assertArrayHasKey('modulesused', $details);
 }