From abfa6d9ad167d366c01711cc39f5123537dfe647 Mon Sep 17 00:00:00 2001 From: Saleem Latif Date: Wed, 23 Sep 2015 17:57:27 +0500 Subject: [PATCH] Line breaks in signatory title issue fixed --- cms/templates/js/signatory-details.underscore | 2 +- .../pages/studio/settings_certificates.py | 6 +++++ .../test_studio_settings_certificates.py | 26 +++++++++++++++++-- .../_accomplishment-rendering.html | 3 ++- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/cms/templates/js/signatory-details.underscore b/cms/templates/js/signatory-details.underscore index 9487840207..584d0382eb 100644 --- a/cms/templates/js/signatory-details.underscore +++ b/cms/templates/js/signatory-details.underscore @@ -15,7 +15,7 @@
<%= gettext("Title") %>:  - <%= title %> + <%= title.replace(new RegExp('\r?\n','g'), '
') %>
<%= gettext("Organization") %>:  diff --git a/common/test/acceptance/pages/studio/settings_certificates.py b/common/test/acceptance/pages/studio/settings_certificates.py index 1acd011a5c..8cec6c7ac3 100644 --- a/common/test/acceptance/pages/studio/settings_certificates.py +++ b/common/test/acceptance/pages/studio/settings_certificates.py @@ -51,6 +51,12 @@ class CertificatesPage(CoursePage): return True + def get_first_signatory_title(self): + """ + Return signatory title for the first signatory in certificate. + """ + return self.q(css='.signatory-title-value').first.html[0] + ################ # Properties ################ diff --git a/common/test/acceptance/tests/studio/test_studio_settings_certificates.py b/common/test/acceptance/tests/studio/test_studio_settings_certificates.py index d4b0dd7a47..95e08128ff 100644 --- a/common/test/acceptance/tests/studio/test_studio_settings_certificates.py +++ b/common/test/acceptance/tests/studio/test_studio_settings_certificates.py @@ -1,10 +1,9 @@ """ Acceptance tests for Studio's Setting pages """ -from unittest import skip +import re from .base_studio_test import StudioCourseTest from ...pages.studio.settings_certificates import CertificatesPage -from flaky import flaky class CertificatesTest(StudioCourseTest): @@ -196,3 +195,26 @@ class CertificatesTest(StudioCourseTest): certificate.course_title = "Title Override" certificate.click_cancel_edit_certificate() self.assertEqual(len(self.certificates_page.certificates), 0) + + def test_line_breaks_in_signatory_title(self): + """ + Scenario: Ensure that line breaks are properly reflected in certificate + + Given I have a certificate with signatories + When I add signatory title with new line character + Then I see line break in certificate title + """ + self.certificates_page.visit() + certificate = self.create_and_verify_certificate( + "Course Title Override", + 0, + [self.make_signatory_data('Signatory title with new line character \n')] + ) + + certificate.wait_for_certificate_delete_button() + + # Make sure certificate is created + self.assertEqual(len(self.certificates_page.certificates), 1) + + signatory_title = self.certificates_page.get_first_signatory_title() + self.assertNotEqual([], re.findall(r'', signatory_title)) diff --git a/lms/templates/certificates/_accomplishment-rendering.html b/lms/templates/certificates/_accomplishment-rendering.html index c59a1b315d..332da7a02c 100644 --- a/lms/templates/certificates/_accomplishment-rendering.html +++ b/lms/templates/certificates/_accomplishment-rendering.html @@ -1,4 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> +<%! from django.template.defaultfilters import linebreaks %> <%namespace name='static' file='../static_content.html'/> <% course_mode_class = course_mode if course_mode else '' @@ -50,7 +51,7 @@ course_mode_class = course_mode if course_mode else ''

${signatory['name']}

- ${signatory['title']} + ${signatory['title']|linebreaks} ${signatory['organization']}