Tests: Add phpunit tests

pull/3965/head
Julio 5 years ago
parent 19a35b332f
commit a193a7f4db
  1. 4
      src/CoreBundle/Controller/AccountController.php
  2. 25
      src/CoreBundle/Controller/CourseController.php
  3. 2
      src/CoreBundle/Controller/CourseHomeController.php
  4. 19
      src/CoreBundle/Resources/views/Course/about.html.twig
  5. 8
      tests/CoreBundle/Controller/AccountControllerTest.php
  6. 15
      tests/CoreBundle/Controller/CourseControllerTest.php

@ -52,9 +52,7 @@ class AccountController extends BaseController
$userRepository->updateUser($user);
$this->addFlash('success', $this->trans('Updated'));
$url = $this->generateUrl('chamilo_core_account_home', [
'username' => $user->getUsername(),
]);
$url = $this->generateUrl('chamilo_core_account_home');
return new RedirectResponse($url);
}

@ -13,6 +13,7 @@ use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Repository\ExtraFieldRelTagRepository;
use Chamilo\CoreBundle\Repository\Node\IllustrationRepository;
use Chamilo\CourseBundle\Entity\CCourseDescription;
use Chamilo\CourseBundle\Repository\CCourseDescriptionRepository;
use CourseManager;
use Doctrine\ORM\EntityRepository;
use ExtraFieldValue;
@ -60,7 +61,7 @@ class CourseController extends AbstractController
*
* @Entity("course", expr="repository.find(cid)")
*/
public function aboutAction(Course $course, IllustrationRepository $illustrationRepository): Response
public function aboutAction(Course $course, IllustrationRepository $illustrationRepository, CCourseDescriptionRepository $courseDescriptionRepository): Response
{
$courseId = $course->getId();
$userId = $this->getUser()->getId();
@ -71,19 +72,7 @@ class CourseController extends AbstractController
/** @var ExtraFieldRelTagRepository $fieldTagsRepo */
$fieldTagsRepo = $em->getRepository(ExtraFieldRelTag::class);
/** @var CCourseDescription[] $courseDescriptionTools */
$courseDescriptionTools = $em->getRepository(CCourseDescription::class)
->findBy(
[
'cId' => $course->getId(),
'sessionId' => 0,
],
[
'id' => 'DESC',
'descriptionType' => 'ASC',
]
)
;
$courseDescriptions = $courseDescriptionRepository->getResourcesByCourse($course)->getQuery()->getResult();
$courseValues = new ExtraFieldValue('course');
@ -116,7 +105,7 @@ class CourseController extends AbstractController
$courseDescription = $courseObjectives = $courseTopics = $courseMethodology = '';
$courseMaterial = $courseResources = $courseAssessment = '';
$courseCustom = [];
foreach ($courseDescriptionTools as $descriptionTool) {
foreach ($courseDescriptions as $descriptionTool) {
switch ($descriptionTool->getDescriptionType()) {
case CCourseDescription::TYPE_DESCRIPTION:
$courseDescription = $descriptionTool->getContent();
@ -180,6 +169,7 @@ class CourseController extends AbstractController
}*/
$image = Container::getIllustrationRepository()->getIllustrationUrl($course, 'course_picture_medium');
$params = [
'course' => $course,
'description' => $courseDescription,
@ -193,6 +183,9 @@ class CourseController extends AbstractController
true
),
'subscription' => $subscriptionUser,
'url' => '',
'is_premium' => '',
'token' => '',
];
$metaInfo = '<meta property="og:url" content="'.$urlCourse.'" />';
@ -204,6 +197,6 @@ class CourseController extends AbstractController
$htmlHeadXtra[] = $metaInfo;
$htmlHeadXtra[] = api_get_asset('readmore-js/readmore.js');
return $this->render('@ChamiloCore/Course/about.html.twig', [$params]);
return $this->render('@ChamiloCore/Course/about.html.twig', $params);
}
}

@ -11,10 +11,10 @@ use Chamilo\CoreBundle\Security\Authorization\Voter\CourseVoter;
use Chamilo\CoreBundle\Tool\ToolChain;
use Chamilo\CourseBundle\Controller\ToolBaseController;
use Chamilo\CourseBundle\Entity\CTool;
use Chamilo\CourseBundle\Manager\SettingsFormFactory;
use Chamilo\CourseBundle\Repository\CShortcutRepository;
use Chamilo\CourseBundle\Repository\CToolRepository;
use Chamilo\CourseBundle\Settings\SettingsCourseManager;
use Chamilo\CourseBundle\Settings\SettingsFormFactory;
use CourseManager;
use Database;
use Display;

@ -91,18 +91,7 @@
<div class="card-body">
<h3 class="sub-title">{{ "CourseInformation"|trans }}</h3>
<div class="course-information">
{% for topic in syllabus %}
{% if topic.content != '' %}
<div class="topics">
<h4 class="title-info">
<em class="fa fa-book"></em> {{ topic.title }}
</h4>
<div class="content-info">
{{ topic.content }}
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
@ -114,16 +103,16 @@
{% if is_premium == false %}
<h5>{{ 'CourseSubscription'|trans }}</h5>
<div class="session-subscribe">
{% if _u.logged == 0 %}
{% if not is_granted('IS_AUTHENTICATED_FULLY') %}
{% if 'allow_registration'|api_get_setting != 'false' %}
<a href="{{ _p.web_main ~ 'auth/inscription.php' ~ redirect_to_session }}" class="btn btn-success btn-block btn-lg">
<i class="fa fa-pencil" aria-hidden="true"></i> {{ 'SignUp'|trans }}
</a>
{% endif %}
{% elseif subscription %}
<a href="{{ _p.web }}courses/{{ course.code }}/index.php?sid=0" class="btn btn-lg btn-success btn-block">{{ 'CourseHomepage'|trans }}</a>
<a href="{{ url('home') }}courses/{{ course.code }}/index.php?sid=0" class="btn btn-lg btn-success btn-block">{{ 'CourseHomepage'|trans }}</a>
{% else %}
<a href="{{ _p.web }}courses/{{ course.code }}/index.php?action=subscribe&sec_token={{ token }}" class="btn btn-lg btn-success btn-block">{{ 'Subscribe'|trans }}</a>
<a href="{{ url('home') }}courses/{{ course.code }}/index.php?action=subscribe&sec_token={{ token }}" class="btn btn-lg btn-success btn-block">{{ 'Subscribe'|trans }}</a>
{% endif %}
</div>
{% else %}

@ -27,5 +27,13 @@ class AccountControllerTest extends WebTestCase
$client->request('GET', '/account/edit');
$this->assertSame(Response::HTTP_OK, $client->getResponse()->getStatusCode());
$client->submitForm('Update profile', [
'profile[firstname]' => 'admin firstname',
]);
$this->assertResponseRedirects('/account/home');
$client->request('GET', '/account/edit');
$this->assertStringContainsString('admin firstname', $client->getResponse()->getContent());
}
}

@ -42,4 +42,19 @@ class CourseControllerTest extends WebTestCase
$this->assertStringContainsString('new course', $client->getResponse()->getContent());
}
public function testAboutAction(): void
{
$client = static::createClient();
$course = $this->createCourse('new course');
$admin = $this->getUser('admin');
// simulate $testUser being logged in
$client->loginUser($admin);
$client->request('GET', '/course/'.$course->getId().'/about');
$this->assertSame(Response::HTTP_OK, $client->getResponse()->getStatusCode());
$this->assertStringContainsString('new course', $client->getResponse()->getContent());
}
}

Loading…
Cancel
Save