# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. from urllib.parse import quote from marionette_driver.by import By from marionette_harness import MarionetteTestCase def inline(doc): return "data:text/html;charset=utf-8,{}".format(quote(doc)) def element_direction_doc(direction): return inline( """
""".format( direction ) ) class TestVisibility(MarionetteTestCase): def testShouldAllowTheUserToTellIfAnElementIsDisplayedOrNot(self): test_html = self.marionette.absolute_url("visibility.html") self.marionette.navigate(test_html) self.assertTrue(self.marionette.find_element(By.ID, "displayed").is_displayed()) self.assertFalse(self.marionette.find_element(By.ID, "none").is_displayed()) self.assertFalse( self.marionette.find_element(By.ID, "suppressedParagraph").is_displayed() ) self.assertFalse(self.marionette.find_element(By.ID, "hidden").is_displayed()) def testVisibilityShouldTakeIntoAccountParentVisibility(self): test_html = self.marionette.absolute_url("visibility.html") self.marionette.navigate(test_html) childDiv = self.marionette.find_element(By.ID, "hiddenchild") hiddenLink = self.marionette.find_element(By.ID, "hiddenlink") self.assertFalse(childDiv.is_displayed()) self.assertFalse(hiddenLink.is_displayed()) def testShouldCountElementsAsVisibleIfStylePropertyHasBeenSet(self): test_html = self.marionette.absolute_url("visibility.html") self.marionette.navigate(test_html) shown = self.marionette.find_element(By.ID, "visibleSubElement") self.assertTrue(shown.is_displayed()) def testShouldModifyTheVisibilityOfAnElementDynamically(self): test_html = self.marionette.absolute_url("visibility.html") self.marionette.navigate(test_html) element = self.marionette.find_element(By.ID, "hideMe") self.assertTrue(element.is_displayed()) element.click() self.assertFalse(element.is_displayed()) def testHiddenInputElementsAreNeverVisible(self): test_html = self.marionette.absolute_url("visibility.html") self.marionette.navigate(test_html) shown = self.marionette.find_element(By.NAME, "hidden") self.assertFalse(shown.is_displayed()) def test_elements_not_displayed_with_negative_transform(self): self.marionette.navigate( inline( """hidden
hidden
foo
""" ) ) singleHidden = self.marionette.find_element(By.TAG_NAME, "p") self.assertFalse(singleHidden.is_displayed()) def testShouldShowElementNotVisibleWhenParentElementHasHiddenAttribute(self): self.marionette.navigate( inline( """foo