diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-05-24 13:48:53 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2013-07-16 13:15:59 +0200 |
commit | 2a9be928556e58a69b7ce7a3b7f0aebd8f4c23bc (patch) | |
tree | 6520c97ee694acde785ceb1bc945b80f209137c2 /ipatests/test_webui/test_hbac.py | |
parent | e3cddab940a77424b1bb56b75bba10d177fbc1cc (diff) | |
download | freeipa-2a9be928556e58a69b7ce7a3b7f0aebd8f4c23bc.tar.gz freeipa-2a9be928556e58a69b7ce7a3b7f0aebd8f4c23bc.tar.xz freeipa-2a9be928556e58a69b7ce7a3b7f0aebd8f4c23bc.zip |
Upstream Web UI tests
Documentation: http://www.freeipa.org/page/Web_UI_Integration_Tests
https://fedorahosted.org/freeipa/ticket/3744
Diffstat (limited to 'ipatests/test_webui/test_hbac.py')
-rw-r--r-- | ipatests/test_webui/test_hbac.py | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/ipatests/test_webui/test_hbac.py b/ipatests/test_webui/test_hbac.py new file mode 100644 index 000000000..cfc28696c --- /dev/null +++ b/ipatests/test_webui/test_hbac.py @@ -0,0 +1,159 @@ +# Authors: +# Petr Vobornik <pvoborni@redhat.com> +# +# Copyright (C) 2013 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +""" +HBAC tests +""" + +from ipatests.test_webui.ui_driver import UI_driver +import ipatests.test_webui.data_hbac as hbac +import ipatests.test_webui.data_hostgroup as hostgroup + + +class test_hbac(UI_driver): + + def test_crud(self): + """ + Basic CRUD: hbac + """ + self.init_app() + self.basic_crud(hbac.RULE_ENTITY, hbac.RULE_DATA) + self.basic_crud(hbac.SVC_ENTITY, hbac.SVC_DATA) + self.basic_crud(hbac.SVCGROUP_ENTITY, hbac.SVCGROUP_DATA, + default_facet=hbac.SVCGROUP_DEF_FACET) + + def test_mod(self): + """ + Mod: hbac + """ + self.init_app() + host_key = self.config.get('ipa_server').strip() + + self.add_record(hostgroup.ENTITY, hostgroup.DATA) + self.add_record(hbac.RULE_ENTITY, hbac.RULE_DATA) + + self.navigate_to_record(hbac.RULE_PKEY) + + tables = [ + ['memberuser_user', ['admin'],], + ['memberuser_group', ['editors'],], + ['memberhost_host', [host_key],], + ['memberhost_hostgroup', [hostgroup.PKEY],], + ['memberservice_hbacsvc', ['ftp'],], + ['memberservice_hbacsvcgroup', ['Sudo'],], + ] + + categories = [ + 'usercategory', + 'hostcategory', + 'servicecategory', + ] + + self.mod_rule_tables(tables, categories, []) + + # cleanup + # ------- + self.delete(hbac.RULE_ENTITY, [hbac.RULE_DATA]) + self.delete(hostgroup.ENTITY, [hostgroup.DATA]) + + def test_actions(self): + """ + Test hbac rule actions + """ + self.init_app() + + self.add_record(hbac.RULE_ENTITY, hbac.RULE_DATA) + self.navigate_to_record(hbac.RULE_PKEY) + + self.disable_action() + self.enable_action() + self.delete_action(hbac.RULE_ENTITY, hbac.RULE_PKEY) + + def test_hbac_test(self): + """ + Test HBAC test UI + + Test: + * basic functionality + * navigation by next/prev buttons + * navigation by facet tabs + * resetting test + """ + + self.init_app() + host_key = self.config.get('ipa_server').strip() + + self.navigate_to_entity('hbactest', 'user') + self.assert_facet('hbactest', 'user') + self.select_record('admin') + self.button_click('next') + + self.wait_for_request(n=2) + self.assert_facet('hbactest', 'targethost') + self.select_record(host_key) + self.button_click('prev') + self.assert_facet('hbactest', 'user') + self.switch_to_facet('targethost') + self.button_click('next') + + self.wait_for_request(n=2) + self.assert_facet('hbactest', 'service') + self.select_record('ftp') + self.button_click('prev') + self.assert_facet('hbactest', 'targethost') + self.switch_to_facet('service') + self.button_click('next') + + self.wait_for_request(n=2) + self.assert_facet('hbactest', 'rules') + self.select_record('allow_all') + self.button_click('prev') + self.assert_facet('hbactest', 'service') + self.switch_to_facet('rules') + self.button_click('next') + + self.wait_for_request(n=2) + self.assert_facet('hbactest', 'run_test') + self.button_click('run_test') + self.wait_for_request(n=2) + self.assert_text("div.hbac-test-result-panel p", 'Access Granted'.upper()) + self.button_click('prev') + self.assert_facet('hbactest', 'rules') + self.switch_to_facet('run_test') + self.button_click('new_test') + self.assert_facet('hbactest', 'user') + + # test pre-run validation and navigation to related facet + self.switch_to_facet('run_test') + self.button_click('run_test') + self.assert_dialog('message_dialog') + self.click_on_link('User name') + self.assert_facet('hbactest', 'user') + + self.switch_to_facet('run_test') + self.button_click('run_test') + self.assert_dialog('message_dialog') + self.click_on_link('Target host') + self.assert_facet('hbactest', 'targethost') + + self.switch_to_facet('run_test') + self.button_click('run_test') + self.assert_dialog('message_dialog') + self.click_on_link('Service') + self.assert_facet('hbactest', 'service') |