summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorPavel Vomacka <pvomacka@redhat.com>2016-10-25 13:40:24 +0200
committerMartin Basti <mbasti@redhat.com>2017-03-14 10:40:10 +0100
commitf95275748465ffacecfbf55ca2cd2fc54f3860b7 (patch)
tree7188edca6747a6658ccd46f0aa681b6a88a7e4e0 /ipatests
parent0808504ba1ab743acdf4231876d49c26dbae6621 (diff)
downloadfreeipa-f95275748465ffacecfbf55ca2cd2fc54f3860b7.tar.gz
freeipa-f95275748465ffacecfbf55ca2cd2fc54f3860b7.tar.xz
freeipa-f95275748465ffacecfbf55ca2cd2fc54f3860b7.zip
TESTS WebUI: Vaults management
Bunch of tests for WebUI Vault Management. Covers: Adding vaults Modifying vaults Adding members and owners to all types of vaults https://fedorahosted.org/freeipa/ticket/5426 Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_webui/data_vault.py63
-rw-r--r--ipatests/test_webui/test_vault.py184
2 files changed, 247 insertions, 0 deletions
diff --git a/ipatests/test_webui/data_vault.py b/ipatests/test_webui/data_vault.py
new file mode 100644
index 000000000..fa51ffe8b
--- /dev/null
+++ b/ipatests/test_webui/data_vault.py
@@ -0,0 +1,63 @@
+# Authors:
+# Pavel Vomacka <pvomacka@redhat.com>
+#
+# Copyright (C) 2016 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/>.
+
+ENTITY = 'vault'
+
+PKEY = 'itest-user-vault'
+DATA = {
+ 'pkey': PKEY,
+ 'facet': 'user_search',
+ 'add': [
+ ('radio', 'type', 'user'),
+ ('textbox', 'cn', PKEY),
+ ('textbox', 'description', 'test-desc')
+ ],
+ 'mod': [
+ ('textbox', 'description', 'test-desc-mod'),
+ ],
+}
+
+PKEY2 = 'itest-service-vault'
+DATA2 = {
+ 'pkey': PKEY2,
+ 'facet': 'service_search',
+ 'add': [
+ ('radio', 'type', 'service'),
+ # service
+ ('textbox', 'cn', PKEY2),
+ ('textbox', 'description', 'test-desc')
+ ],
+ 'mod': [
+ ('textbox', 'description', 'test-desc-mod'),
+ ],
+}
+
+PKEY3 = 'itest-shared-vault'
+DATA3 = {
+ 'pkey': PKEY3,
+ 'facet': 'shared_search',
+ 'add': [
+ ('radio', 'type', 'shared'),
+ ('textbox', 'cn', PKEY3),
+ ('textbox', 'description', 'test-desc')
+ ],
+ 'mod': [
+ ('textbox', 'description', 'test-desc-mod'),
+ ],
+}
diff --git a/ipatests/test_webui/test_vault.py b/ipatests/test_webui/test_vault.py
new file mode 100644
index 000000000..1c094e62b
--- /dev/null
+++ b/ipatests/test_webui/test_vault.py
@@ -0,0 +1,184 @@
+# Authors:
+# Pavel Vomacka <pvomacka@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/>.
+
+"""
+Vault tests
+"""
+
+from ipatests.test_webui.ui_driver import UI_driver
+from ipatests.test_webui.ui_driver import screenshot
+import ipatests.test_webui.data_vault as vault
+import ipatests.test_webui.data_user as user
+import ipatests.test_webui.data_group as group
+import pytest
+
+
+@pytest.mark.tier1
+class vault_tasks(UI_driver):
+
+ def prep_service_data(self):
+
+ host = self.config.get('ipa_server')
+ realm = self.config.get('ipa_realm')
+ pkey = 'itest'
+
+ return {
+ 'entity': 'service',
+ 'pkey': '%s/%s@%s' % (pkey, host, realm),
+ 'add': [
+ ('textbox', 'service', pkey),
+ ('combobox', 'host', host)
+ ]
+ }
+
+ def prepare_vault_service_data(self, data):
+ s_data = self.prep_service_data()
+ service = s_data['pkey']
+
+ serv_field = [('combobox', 'service', service)]
+
+ data['add'].extend(serv_field)
+
+ def prepare_vault_user_data(self, data, user='admin'):
+ user_field = [('combobox', 'username', user)]
+
+ data['add'].extend(user_field)
+
+
+@pytest.mark.tier1
+class test_vault(vault_tasks):
+
+ def setup(self, *args, **kwargs):
+ super(test_vault, self).setup(*args, **kwargs)
+ if not self.has_kra():
+ self.skip('KRA not configured')
+
+ @screenshot
+ def test_crud(self):
+ """
+ Basic basic CRUD: user vault
+ """
+ self.init_app()
+ self.prepare_vault_user_data(vault.DATA)
+ self.basic_crud(vault.ENTITY, vault.DATA)
+
+ @screenshot
+ def test_add_service_vault(self):
+ """
+ Add Service vault
+ """
+ self.init_app()
+
+ # Add itest service
+ s_data = self.prep_service_data()
+ self.add_record(s_data['entity'], s_data)
+
+ self.prepare_vault_service_data(vault.DATA2)
+
+ # Add and remove service vault
+ self.add_record(vault.ENTITY, vault.DATA2, facet=vault.DATA2['facet'],
+ delete=True)
+
+ # Remove test service
+ self.navigate_to_entity(s_data['entity'])
+ self.delete_record(s_data['pkey'])
+
+ @screenshot
+ def test_add_shared_vault(self):
+ """
+ Add Shared vault
+ """
+ self.init_app()
+
+ # Add shared vault
+ self.add_record(vault.ENTITY, vault.DATA3, facet=vault.DATA3['facet'],
+ delete=True)
+
+ @screenshot
+ def test_member_owner_vault(self):
+ """
+ Add User Vault and try to add member and owner
+ """
+ def fill_tables():
+ self.add_table_associations('member_user', [user.PKEY])
+ self.add_table_associations('member_group', [group.PKEY])
+ self.add_table_associations('member_service', [s_data['pkey']])
+ self.add_table_associations('owner_user', [user.PKEY])
+ self.add_table_associations('owner_group', [group.PKEY])
+ self.add_table_associations('owner_service', [s_data['pkey']])
+
+ # Add user
+ self.init_app()
+ self.add_record(user.ENTITY, user.DATA)
+
+ # Prepare items - user already exists
+ s_data = self.prep_service_data()
+ self.add_record(s_data['entity'], s_data)
+ self.add_record(group.ENTITY, group.DATA)
+
+ # USER
+ # Add user vault
+ self.add_record(vault.ENTITY, vault.DATA, facet='user_search')
+
+ # Navigate to record
+ self.navigate_to_record(vault.DATA['pkey'])
+
+ # Try add values into table
+ fill_tables()
+
+ # Remove user vault record
+ self.navigate_to_entity(vault.ENTITY, vault.DATA['facet'])
+ self.delete_record(vault.PKEY)
+
+ # SERVICE
+ # Add service vault
+ self.prepare_vault_service_data(vault.DATA2)
+ self.add_record(vault.ENTITY, vault.DATA2, facet=vault.DATA2['facet'])
+
+ # Navigate to record
+ self.navigate_to_record(vault.DATA2['pkey'])
+
+ # Try add values into table
+ fill_tables()
+
+ # Remove service vault record
+ self.navigate_to_entity(vault.ENTITY, vault.DATA2['facet'])
+ self.delete_record(vault.DATA2['pkey'])
+
+ # SHARED
+ # Add shared vault
+ self.add_record(vault.ENTITY, vault.DATA3, facet=vault.DATA3['facet'])
+
+ # Navigate to record
+ self.navigate_to_record(vault.DATA3['pkey'])
+
+ # Try add values into table
+ fill_tables()
+
+ # Remove shared vault record
+ self.navigate_to_entity(vault.ENTITY, vault.DATA3['facet'])
+ self.delete_record(vault.DATA3['pkey'])
+
+ # Clean up
+ self.navigate_to_entity(s_data['entity'])
+ self.delete_record(s_data['pkey'])
+ self.navigate_to_entity(user.ENTITY)
+ self.delete_record(user.PKEY)
+ self.navigate_to_entity(group.ENTITY)
+ self.delete_record(group.PKEY)