Commit 95a914db by E. Kolpakov

Impplemented review notes

parent 211cf90a
...@@ -70,6 +70,5 @@ ...@@ -70,6 +70,5 @@
"feedback": { "feedback": {
"start": "Other Intro Feed", "start": "Other Intro Feed",
"finish": "Other Final Feed" "finish": "Other Final Feed"
}, }
"targetImg": "http://i0.kym-cdn.com/photos/images/newsfeed/000/030/404/1260585284155.png"
} }
...@@ -70,6 +70,5 @@ ...@@ -70,6 +70,5 @@
"feedback": { "feedback": {
"start": "Intro <i>Feed</i>", "start": "Intro <i>Feed</i>",
"finish": "Final <b>Feed</b>" "finish": "Final <b>Feed</b>"
}, }
"targetImg": "http://i0.kym-cdn.com/photos/images/newsfeed/000/030/404/1260585284155.png"
} }
...@@ -71,5 +71,5 @@ class BaseIntegrationTest(SeleniumTest): ...@@ -71,5 +71,5 @@ class BaseIntegrationTest(SeleniumTest):
def get_element_classes(self, element): def get_element_classes(self, element):
return element.get_attribute('class').split() return element.get_attribute('class').split()
def scroll_by(self, y): def scroll_to(self, y):
self.browser.execute_script('window.scrollTo(0, {0})'.format(y)) self.browser.execute_script('window.scrollTo(0, {0})'.format(y))
\ No newline at end of file
...@@ -11,7 +11,6 @@ class TestCustomDataDragAndDropRendering(BaseIntegrationTest): ...@@ -11,7 +11,6 @@ class TestCustomDataDragAndDropRendering(BaseIntegrationTest):
scenario_xml = self._get_custom_scenario_xml("integration/data/test_html_data.json") scenario_xml = self._get_custom_scenario_xml("integration/data/test_html_data.json")
self._add_scenario(self.PAGE_ID, self.PAGE_TITLE, scenario_xml) self._add_scenario(self.PAGE_ID, self.PAGE_TITLE, scenario_xml)
self.browser.get(self.live_server_url)
self._page = self.go_to_page(self.PAGE_TITLE) self._page = self.go_to_page(self.PAGE_TITLE)
header1 = self.browser.find_element_by_css_selector('h1') header1 = self.browser.find_element_by_css_selector('h1')
......
...@@ -35,7 +35,7 @@ class InteractionTestFixture(BaseIntegrationTest): ...@@ -35,7 +35,7 @@ class InteractionTestFixture(BaseIntegrationTest):
return "<vertical_demo><drag-and-drop-v2/></vertical_demo>" return "<vertical_demo><drag-and-drop-v2/></vertical_demo>"
@classmethod @classmethod
def _get_correct_item_to_zone(cls): def _get_correct_item_for_zone(cls):
return { return {
item_key: definition for item_key, definition in cls.items_map.items() item_key: definition for item_key, definition in cls.items_map.items()
if definition.zone_id is not None if definition.zone_id is not None
...@@ -68,7 +68,7 @@ class InteractionTestFixture(BaseIntegrationTest): ...@@ -68,7 +68,7 @@ class InteractionTestFixture(BaseIntegrationTest):
def test_correct_item_positive_feedback(self): def test_correct_item_positive_feedback(self):
feedback_popup = self._page.find_element_by_css_selector(".popup-content") feedback_popup = self._page.find_element_by_css_selector(".popup-content")
for definition in self._get_correct_item_to_zone().values(): for definition in self._get_correct_item_for_zone().values():
self.drag_item_to_zone(definition.item_id, definition.zone_id) self.drag_item_to_zone(definition.item_id, definition.zone_id)
self.assertEqual(self.get_element_html(feedback_popup), definition.feedback_positive) self.assertEqual(self.get_element_html(feedback_popup), definition.feedback_positive)
...@@ -86,7 +86,7 @@ class InteractionTestFixture(BaseIntegrationTest): ...@@ -86,7 +86,7 @@ class InteractionTestFixture(BaseIntegrationTest):
feedback_message = self._get_feedback_message() feedback_message = self._get_feedback_message()
self.assertEqual(self.get_element_html(feedback_message), self.feedback['intro']) # precondition check self.assertEqual(self.get_element_html(feedback_message), self.feedback['intro']) # precondition check
items = self._get_correct_item_to_zone() items = self._get_correct_item_for_zone()
get_locations = lambda: {item_id: self._get_item_by_value(item_id).location for item_id in items.keys()} get_locations = lambda: {item_id: self._get_item_by_value(item_id).location for item_id in items.keys()}
initial_locations = get_locations() initial_locations = get_locations()
...@@ -99,7 +99,7 @@ class InteractionTestFixture(BaseIntegrationTest): ...@@ -99,7 +99,7 @@ class InteractionTestFixture(BaseIntegrationTest):
# scrolling to have `reset` visible, otherwise it does not receive a click # scrolling to have `reset` visible, otherwise it does not receive a click
# this is due to xblock workbench header that consumes top 40px - selenium scrolls so page so that target # this is due to xblock workbench header that consumes top 40px - selenium scrolls so page so that target
# element is a the very top. # element is a the very top.
self.scroll_by(100) self.scroll_to(100)
reset = self._page.find_element_by_css_selector(".reset-button") reset = self._page.find_element_by_css_selector(".reset-button")
reset.click() reset.click()
......
...@@ -17,6 +17,12 @@ class TestDragAndDropRender(BaseIntegrationTest): ...@@ -17,6 +17,12 @@ class TestDragAndDropRender(BaseIntegrationTest):
self.browser.get(self.live_server_url) self.browser.get(self.live_server_url)
self._page = self.go_to_page(self.PAGE_TITLE) self._page = self.go_to_page(self.PAGE_TITLE)
def _test_style(self, item, style_settings):
style = item.get_attribute('style')
for style_prop, expected_value in style_settings.items():
expected = u"{0}: {1}".format(style_prop, expected_value)
self.assertIn(expected, style)
def test_items(self): def test_items(self):
items = self._get_items() items = self._get_items()
...@@ -24,18 +30,18 @@ class TestDragAndDropRender(BaseIntegrationTest): ...@@ -24,18 +30,18 @@ class TestDragAndDropRender(BaseIntegrationTest):
self.assertEqual(items[0].get_attribute('data-value'), '0') self.assertEqual(items[0].get_attribute('data-value'), '0')
self.assertEqual(items[0].text, 'A') self.assertEqual(items[0].text, 'A')
self.assertEqual(items[0].get_attribute('style'), u"width: 190px; height: auto;")
self.assertIn('ui-draggable', self.get_element_classes(items[0])) self.assertIn('ui-draggable', self.get_element_classes(items[0]))
self._test_style(items[0], {'width': '190px', 'height': 'auto'})
self.assertEqual(items[1].get_attribute('data-value'), '1') self.assertEqual(items[1].get_attribute('data-value'), '1')
self.assertEqual(items[1].text, 'B') self.assertEqual(items[1].text, 'B')
self.assertEqual(items[1].get_attribute('style'), u"width: 190px; height: auto;")
self.assertIn('ui-draggable', self.get_element_classes(items[1])) self.assertIn('ui-draggable', self.get_element_classes(items[1]))
self._test_style(items[1], {'width': '190px', 'height': 'auto'})
self.assertEqual(items[2].get_attribute('data-value'), '2') self.assertEqual(items[2].get_attribute('data-value'), '2')
self.assertEqual(items[2].text, 'X') self.assertEqual(items[2].text, 'X')
self.assertEqual(items[2].get_attribute('style'), u"width: 100px; height: 100px;")
self.assertIn('ui-draggable', self.get_element_classes(items[2])) self.assertIn('ui-draggable', self.get_element_classes(items[2]))
self._test_style(items[2], {'width': '100px', 'height': '100px'})
def test_zones(self): def test_zones(self):
zones = self._get_zones() zones = self._get_zones()
...@@ -43,12 +49,12 @@ class TestDragAndDropRender(BaseIntegrationTest): ...@@ -43,12 +49,12 @@ class TestDragAndDropRender(BaseIntegrationTest):
self.assertEqual(len(zones), 2) self.assertEqual(len(zones), 2)
self.assertEqual(zones[0].get_attribute('data-zone'), 'Zone A') self.assertEqual(zones[0].get_attribute('data-zone'), 'Zone A')
self.assertEqual(zones[0].get_attribute('style'), u"top: 200px; left: 120px; width: 200px; height: 100px;")
self.assertIn('ui-droppable', self.get_element_classes(zones[0])) self.assertIn('ui-droppable', self.get_element_classes(zones[0]))
self._test_style(zones[0], {'top': '200px', 'left': '120px', 'width': '200px', 'height': '100px'})
self.assertEqual(zones[1].get_attribute('data-zone'), 'Zone B') self.assertEqual(zones[1].get_attribute('data-zone'), 'Zone B')
self.assertEqual(zones[1].get_attribute('style'), u"top: 360px; left: 120px; width: 200px; height: 100px;")
self.assertIn('ui-droppable', self.get_element_classes(zones[1])) self.assertIn('ui-droppable', self.get_element_classes(zones[1]))
self._test_style(zones[1], {'top': '360px', 'left': '120px', 'width': '200px', 'height': '100px'})
def test_feedback(self): def test_feedback(self):
feedback_message = self._get_feedback_message() feedback_message = self._get_feedback_message()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment