Skip to content

Commit ee57eb3

Browse files
Merge pull request #236 from edx-solutions/ahtisham/PROD-1099
Render zone title as HTML
2 parents 98b79b6 + 1b4036d commit ee57eb3

File tree

4 files changed

+67
-3
lines changed

4 files changed

+67
-3
lines changed

drag_and_drop_v2/public/js/drag_and_drop.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,11 @@ function DragAndDropTemplates(configuration) {
262262
[
263263
h(
264264
'p',
265-
{ className: className },
265+
{
266+
className: className,
267+
innerHTML: gettext(zone.title)
268+
},
266269
[
267-
gettext(zone.title),
268270
h('span.sr', gettext(', dropzone'))
269271
]
270272
),

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def package_data(pkg, root_list):
2323

2424
setup(
2525
name='xblock-drag-and-drop-v2',
26-
version='2.2.7',
26+
version='2.2.8',
2727
description='XBlock - Drag-and-Drop v2',
2828
packages=['drag_and_drop_v2'],
2929
install_requires=[
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"zones": [
3+
{
4+
"width": 200,
5+
"title": "Zone <sup>-11</sup>",
6+
"height": 100,
7+
"y": 200,
8+
"x": 100,
9+
"uid": "zone-1"
10+
}
11+
],
12+
"items": [
13+
{
14+
"displayName": "<b>1</b>",
15+
"feedback": {
16+
"incorrect": "No <b>1</b>",
17+
"correct": "Yes <b>1</b>"
18+
},
19+
"zone": "zone-1",
20+
"imageURL": "",
21+
"id": 0
22+
}
23+
],
24+
"feedback": {
25+
"start": "Intro <i>Feed</i>",
26+
"finish": "Final <b>Feed</b>"
27+
},
28+
"targetImg": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIiBzdHlsZT0iYmFja2dyb3VuZDogI2VlZjsiPjwvc3ZnPg==",
29+
"targetImgDescription": "This describes the target image"
30+
}

tests/integration/test_custom_data_render.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ def test_items_rendering(self):
2424
self.assertIn('<i>2</i>', self.get_element_html(items[1]))
2525
self.assertIn('<span style="color:red">X</span>', self.get_element_html(items[2]))
2626

27+
def test_html_title_renders_properly(self):
28+
"""
29+
Tests HTML titles are rendered properly
30+
"""
31+
zones = self._get_zones()
32+
self.assertEqual(u'Zone\ndroppable\nNo items placed here', zones[0].text)
33+
self.assertNotEqual(u'Zone <sup>-1</sup>\ndroppable\nNo items placed here', zones[0].text)
34+
2735
def test_background_image(self):
2836
bg_image = self.browser.find_element_by_css_selector(".xblock--drag-and-drop .target-img")
2937
custom_image_url = (
@@ -33,3 +41,27 @@ def test_background_image(self):
3341
custom_image_description = "This describes the target image"
3442
self.assertEqual(bg_image.get_attribute("src"), custom_image_url)
3543
self.assertEqual(bg_image.get_attribute("alt"), custom_image_description)
44+
45+
46+
class TestZoneTitleAsHTML(BaseIntegrationTest):
47+
PAGE_TITLE = 'Drag and Drop v2'
48+
PAGE_ID = 'drag_and_drop_v2'
49+
50+
def setUp(self):
51+
super(TestZoneTitleAsHTML, self).setUp()
52+
53+
scenario_xml = self._get_custom_scenario_xml("data/test_html_titles_data.json")
54+
self._add_scenario(self.PAGE_ID, self.PAGE_TITLE, scenario_xml)
55+
56+
self._page = self.go_to_page(self.PAGE_TITLE)
57+
58+
header1 = self.browser.find_element_by_css_selector('h1')
59+
self.assertEqual(header1.text, 'XBlock: ' + self.PAGE_TITLE)
60+
61+
def test_html_title_renders_properly(self):
62+
"""
63+
Tests HTML titles are rendered properly
64+
"""
65+
zones = self._get_zones()
66+
self.assertEqual(u'Zone\ndroppable\nNo items placed here', zones[0].text)
67+
self.assertNotEqual(u'Zone <sup>-1</sup>\ndroppable\nNo items placed here', zones[0].text)

0 commit comments

Comments
 (0)