mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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>
This commit is contained in:
committed by
Martin Basti
parent
0808504ba1
commit
f952757484
@@ -614,6 +614,7 @@ vault.custom_adder_dialog = function(spec) {
|
||||
|
||||
var facet_name = that.entity.facet.name;
|
||||
facet_name = facet_name.substr(0, facet_name.indexOf('_'));
|
||||
if (facet_name === "") facet_name = 'user';
|
||||
|
||||
var type_f = that.fields.get_field('type');
|
||||
type_f.set_pristine_value([facet_name]);
|
||||
@@ -621,6 +622,27 @@ vault.custom_adder_dialog = function(spec) {
|
||||
if (IPA.is_selfservice) type_f.set_writable(false);
|
||||
};
|
||||
|
||||
that.on_success = function(data) {
|
||||
var result = data.result.result;
|
||||
var my_vaults = that.entity.get_facet('search');
|
||||
|
||||
function update_facet(name) {
|
||||
var fa = that.entity.get_facet(name);
|
||||
fa.set_expired_flag();
|
||||
}
|
||||
|
||||
if (result.service) {
|
||||
update_facet('service_search');
|
||||
} else if (result.shared) {
|
||||
update_facet('shared_search');
|
||||
} else {
|
||||
update_facet('user_search');
|
||||
my_vaults.set_expired_flag();
|
||||
}
|
||||
};
|
||||
|
||||
that.added.attach(that.on_success);
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
@@ -746,7 +768,10 @@ var make_vaultconfig_spec = function() {
|
||||
check_rights: false,
|
||||
no_update: true,
|
||||
fields: [
|
||||
'kra_server_server',
|
||||
{
|
||||
$type: "multivalued",
|
||||
name: 'kra_server_server'
|
||||
},
|
||||
{
|
||||
$type: 'textarea',
|
||||
name: 'transport_cert',
|
||||
|
||||
63
ipatests/test_webui/data_vault.py
Normal file
63
ipatests/test_webui/data_vault.py
Normal file
@@ -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'),
|
||||
],
|
||||
}
|
||||
184
ipatests/test_webui/test_vault.py
Normal file
184
ipatests/test_webui/test_vault.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user