test_layout.py 1.48 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
"""
Test to make sure the layout for results is sane when taking images into
account.
"""
from tests.integration.base_test import PollBaseTest


class TestLayout(PollBaseTest):
    """
    Do tests to verify that the layout of elements makes sense depeneding on
    the number of images.
    """

    def test_all_images(self):
        """
        Verify img tags are created for answers when they're all set.
        """
18
        self.go_to_page('Poll All Pictures')
19 20 21 22 23
        pics = self.browser.find_elements_by_css_selector('.poll-image')
        self.assertEqual(len(pics), 4)

        # Pics should be within labels.
        pics[0].find_element_by_css_selector('img').click()
24
        self.get_submit().click()
25

26
        self.wait_until_exists('.poll-image')
27 28 29 30 31 32 33

        self.assertEqual(len(self.browser.find_elements_by_css_selector('.poll-image')), 4)

    def test_one_image(self):
        """
        Verify layout is sane when only one answer has an image.
        """
34
        self.go_to_page('Poll One Picture')
35 36 37 38 39 40
        pics = self.browser.find_elements_by_css_selector('.poll-image')
        # On the polling page, there should only be one pics div.
        self.assertEqual(len(pics), 1)

        pics[0].find_element_by_css_selector('img').click()

41
        self.get_submit().click()
42

43
        self.wait_until_exists('.poll-image.result-image')
44
        # ...But on the results page, we need four, for table layout.
45
        self.assertEqual(len(self.browser.find_elements_by_css_selector('.poll-image')), 4)