diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-06-26 15:18:05 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2013-07-26 13:35:12 +0200 |
commit | ae311300981f127dc978526f68aaae3f64e3b519 (patch) | |
tree | a76bb524ebfb0f9225eca77c7ef3671cf8694898 /ipatests/test_webui/ui_driver.py | |
parent | 6a0aabede5875ad23dab777d0c2f6bac05fa2599 (diff) | |
download | freeipa-ae311300981f127dc978526f68aaae3f64e3b519.tar.gz freeipa-ae311300981f127dc978526f68aaae3f64e3b519.tar.xz freeipa-ae311300981f127dc978526f68aaae3f64e3b519.zip |
Web UI integration tests: Add trust tests
https://fedorahosted.org/freeipa/ticket/3744
Diffstat (limited to 'ipatests/test_webui/ui_driver.py')
-rw-r--r-- | ipatests/test_webui/ui_driver.py | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py index e7551dea5..4a0ca1cd1 100644 --- a/ipatests/test_webui/ui_driver.py +++ b/ipatests/test_webui/ui_driver.py @@ -86,6 +86,7 @@ class UI_driver(object): raise nose.SkipTest('Selenium not installed') def __init__(self, driver=None, config=None): + self.request_timeout = 30 self.driver = driver self.config = config if not config: @@ -261,7 +262,7 @@ class UI_driver(object): for i in range(n): self.wait(implicit) - WebDriverWait(self.driver, 10).until_not(lambda d: runner.has_active_request()) + WebDriverWait(self.driver, self.request_timeout).until_not(lambda d: runner.has_active_request()) self.wait() self.wait(d) @@ -586,7 +587,7 @@ class UI_driver(object): last = inputs[-1] last.send_keys(value) - def delete_multivalued(self, name, value, parent=None): + def del_multivalued(self, name, value, parent=None): if not parent: parent = self.get_form() s = "div[name='%s'].multivalued-widget" % name @@ -604,7 +605,19 @@ class UI_driver(object): self.wait() clicked = True - assert clicked, 'Value was not removed' + assert clicked, 'Value was not removed: %s' % value + + def fill_multivalued(self, name, instructions, parent=None): + """ + Add or delete a value from multivalued field + """ + for instruction in instructions: + t = instruction[0] + value = instruction[1] + if t == 'add': + self.add_multivalued(name, value, parent) + else: + self.del_multivalued(name, value, parent) def check_option(self, name, value=None, parent=None): @@ -661,7 +674,7 @@ class UI_driver(object): self.wait() - def get_undo_button(self, field, parent): + def get_undo_buttons(self, field, parent): """ Get field undo button """ @@ -669,8 +682,8 @@ class UI_driver(object): if not parent: parent = self.get_form() s = "div[name='%s'].field span.undo" % (field) - undo = self.find(s, By.CSS_SELECTOR, parent, strict=True) - return undo + undos = self.find(s, By.CSS_SELECTOR, parent, strict=True, all=True) + return undos def get_rows(self, parent=None): """ @@ -821,6 +834,8 @@ class UI_driver(object): self.add_table_record(key, val, parent) elif type == 'add_table_association': self.add_table_associations(key, val, parent) + elif type == 'multivalued': + self.fill_multivalued(key, val, parent) elif type == 'table': self.select_record(val, parent, key) self.wait() @@ -1266,9 +1281,16 @@ class UI_driver(object): """ Assert that undo button is or is not visible """ - undo = self.get_undo_button(field, parent) - state = undo.is_displayed() - assert state == visible, 'Undo button has invalid state. Field: %s' % field + undos = self.get_undo_buttons(field, parent) + state = False + for undo in undos: + if undo.is_displayed(): + state = True + break + if visible: + assert state, "Undo button not visible. Field: %s" % field + else: + assert not state, "Undo button visible. Field: %s" % field def assert_visible(self, selector, parent=None, negative=False): """ |