diff --git a/test/test_selection_options_menu.py b/test/test_selection_options_menu.py new file mode 100644 index 0000000..b7fd83a --- /dev/null +++ b/test/test_selection_options_menu.py @@ -0,0 +1,74 @@ +from test.test_selenium import TestSelenium +from unittest import TestCase + +DBI = [ + 'button-for-showing-sort-option', + 'button-for-showing-columns', + 'button-for-filter-by-minver', + 'button-for-filter-by-tags', + 'button-for-filter-by-features', + 'button-for-filter-by-license', + 'button-for-filter-by-tags-and-features', +] # DBI -> default_button_ids + +FLEXROWS = [ + 'sortByRow', + 'columnSelectionHeadingRow', + 'columnSelectionRow', + 'minVerSelectionHeadingRow', + 'minVerSelectionRow', + 'tagSelectionHeadingRow', + 'tagSelectionRow', + 'featureSelectionHeadingRow', + 'featureSelectionRow', + 'licenseSelectionHeadingRow', + 'licenseSelectionRow', +] + + +class TestSelectionOptionsMenu(TestSelenium, TestCase): + def setUp(self): + super(TestSelectionOptionsMenu, self).setUp() + self.driver.find_element_by_id('plus-button').click() + self.div = self.driver.find_element_by_id('selection-options-menu') + + def display_is_d_test(self, y_list, d): + for x in y_list: + self.assertEqual( + self.driver.find_element_by_id( + x).value_of_css_property('display'), d) + + def test_default_selection_options_menu_buttons_exist(self): + self.display_is_d_test(DBI, 'block') + ids = [x.get_attribute( + 'id') for x in self.div.find_elements_by_tag_name('button')] + self.assertEqual(ids, DBI) + + def test_buttons(self): + self.display_is_d_test(DBI, 'block') + for i, x in enumerate(DBI): + button = self.driver.find_element_by_id(x) + button.click() + self.assertEqual(button.value_of_css_property('display'), 'none') + self.display_is_d_test([*DBI[0:i], *DBI[i + 1:]], 'block') + if i == 0: + self.display_is_d_test([FLEXROWS[0]], 'flex') + self.display_is_d_test(FLEXROWS[1:], 'none') + elif i == 1: + self.display_is_d_test(FLEXROWS[1:3], 'flex') + self.display_is_d_test([FLEXROWS[0], *FLEXROWS[3:]], 'none') + elif i == 2: + self.display_is_d_test(FLEXROWS[3:5], 'flex') + self.display_is_d_test([*FLEXROWS[0:3], *FLEXROWS[5:]], 'none') + elif i == 3: + self.display_is_d_test(FLEXROWS[5:7], 'flex') + self.display_is_d_test([*FLEXROWS[0:5], *FLEXROWS[7:]], 'none') + elif i == 4: + self.display_is_d_test(FLEXROWS[7:9], 'flex') + self.display_is_d_test([*FLEXROWS[0:7], *FLEXROWS[9:]], 'none') + elif i == 5: + self.display_is_d_test(FLEXROWS[9:11], 'flex') + self.display_is_d_test(FLEXROWS[0:9], 'none') + else: + self.display_is_d_test(FLEXROWS[5:9], 'flex') + self.display_is_d_test([*FLEXROWS[0:5], *FLEXROWS[9:]], 'none')