mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-28 18:01:23 -06:00
1f04c481e3
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com> Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
716 lines
22 KiB
Python
716 lines
22 KiB
Python
# -*- coding: utf-8 -*-
|
||
# 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/>.
|
||
|
||
"""
|
||
Realm domains tests
|
||
|
||
Update means Check DNS in WebUI.
|
||
Force udpate means Force Update in WebUI.
|
||
"""
|
||
|
||
import uuid
|
||
|
||
from ipatests.test_webui.ui_driver import UI_driver
|
||
from ipatests.test_webui.ui_driver import screenshot
|
||
from ipatests.test_webui.data_dns import (
|
||
ZONE_ENTITY, FORWARD_ZONE_ENTITY, ZONE_DATA, FORWARD_ZONE_DATA,
|
||
ZONE_DEFAULT_FACET
|
||
)
|
||
import pytest
|
||
|
||
ENTITY = 'realmdomains'
|
||
|
||
|
||
@pytest.mark.tier1
|
||
class test_realmdomains(UI_driver):
|
||
|
||
def del_realm_domain(self, realmdomain, button):
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click(button)
|
||
self.wait_for_request()
|
||
self.close_notifications()
|
||
|
||
def prepare_dns_zone(self, realmdomain):
|
||
"""
|
||
Prepare dns zone record for realmdomain
|
||
"""
|
||
|
||
# DNS check expects that the added domain will have DNS record:
|
||
# TXT _kerberos.$domain "$REALM"
|
||
# When a new domain is added using dnszone-add it automatically adds
|
||
# this TXT record and adds a realm domain. So in order to test without
|
||
# external DNS we must get into state where realm domain is not added
|
||
# (in order to add it) but DNS domain with the TXT record
|
||
# exists.
|
||
|
||
# add DNS domain
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.add_record(ZONE_ENTITY, self.copy_zone_data(realmdomain))
|
||
|
||
realm = self.config.get('ipa_realm')
|
||
|
||
# remove the added domain from Realm Domain
|
||
self.navigate_to_entity(ENTITY)
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.close_notifications()
|
||
|
||
# re-add _TXT kerberos.$domain "$REALM"
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.navigate_to_record(realmdomain + '.')
|
||
|
||
DNS_RECORD_ADD_DATA = {
|
||
'pkey': '_kerberos',
|
||
'add': [
|
||
('textbox', 'idnsname', '_kerberos'),
|
||
('selectbox', 'record_type', 'txtrecord'),
|
||
('textbox', 'txt_part_data', realm),
|
||
]
|
||
}
|
||
self.add_record(ZONE_ENTITY, DNS_RECORD_ADD_DATA,
|
||
facet=ZONE_DEFAULT_FACET, navigate=False)
|
||
|
||
def _add_associateddomain(self, values, force=False):
|
||
"""
|
||
Add values to associated domains and click OK or Force
|
||
"""
|
||
for val in values:
|
||
self.add_multivalued('associateddomain', val)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click('force' if force else 'ok')
|
||
self.wait_for_request()
|
||
self.close_notifications()
|
||
|
||
@staticmethod
|
||
def copy_zone_data(realmdomain, zone_data=ZONE_DATA):
|
||
data = zone_data.copy()
|
||
data['pkey'] = realmdomain
|
||
for i, field in enumerate(data['add']):
|
||
if field[1] == 'idnsname':
|
||
data['add'][i] = (field[0], field[1], realmdomain)
|
||
return data
|
||
|
||
@staticmethod
|
||
def rand_realmdomain():
|
||
return 'zone-{}.itest'.format(uuid.uuid4().hex[:8])
|
||
|
||
@screenshot
|
||
def test_read(self):
|
||
"""
|
||
Realm domains mod tests
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain(['itest.bar'], force=True)
|
||
self.close_notifications()
|
||
|
||
# delete
|
||
self.del_realm_domain('itest.bar', 'force')
|
||
self.wait_for_request()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add Realm Domain and Check DNS
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_add_single_labeled_domain(self):
|
||
"""
|
||
Add single label domain
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
single_label_domain = u'single-label-domain'
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain([single_label_domain], force=True)
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'domain': single label domains are not supported"
|
||
in dialog.text)
|
||
|
||
@screenshot
|
||
def test_add_domain_with_special_char(self):
|
||
"""
|
||
Add domain with special_character
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
domain_with_special_char = u'ipa@123#.com'
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain([domain_with_special_char], force=True)
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'domain': only letters, numbers, '-' are allowed. "
|
||
"DNS label may not start or end with '-'"
|
||
in dialog.text)
|
||
|
||
@screenshot
|
||
def test_add_domain_and_undo(self):
|
||
"""
|
||
Add domain and undo
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
test_domain = u'itest.bar'
|
||
|
||
# add and undo
|
||
self.add_multivalued('associateddomain', test_domain)
|
||
self.undo_multivalued('associateddomain', test_domain)
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert test_domain not in domains
|
||
|
||
@screenshot
|
||
def test_add_domain_and_undo_all(self):
|
||
"""
|
||
Add domain and undo all
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
test_domain = u'itest.bar'
|
||
|
||
# add and undo all
|
||
self.add_multivalued('associateddomain', test_domain)
|
||
self.undo_all_multivalued('associateddomain')
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert test_domain not in domains
|
||
|
||
@screenshot
|
||
def test_add_domain_and_update(self):
|
||
"""
|
||
Add domain and update
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add Realm Domain and Check DNS
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_add_domain_and_refresh(self):
|
||
"""
|
||
Add domain and refresh
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
test_domain = u'itest.bar'
|
||
|
||
# add and refresh
|
||
self.add_multivalued('associateddomain', test_domain)
|
||
self.facet_button_click('refresh')
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert test_domain not in domains
|
||
|
||
@screenshot
|
||
def test_add_domain_and_revert(self):
|
||
"""
|
||
Add domain and revert
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
test_domain = u'itest.bar'
|
||
|
||
# add and revert
|
||
self.add_multivalued('associateddomain', test_domain)
|
||
self.facet_button_click('revert')
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert test_domain not in domains
|
||
|
||
@screenshot
|
||
def test_add_duplicate_domain(self):
|
||
"""
|
||
Add duplicate domain
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# add two (same) domains with force - skipping DNS check
|
||
self._add_associateddomain([realmdomain, realmdomain], force=True)
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'force')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_add_empty_domain(self):
|
||
"""
|
||
Add empty domain
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain([''], force=True)
|
||
|
||
# check
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("no modifications to be performed" in dialog.text)
|
||
|
||
@screenshot
|
||
def test_add_domain_with_leading_space(self):
|
||
"""
|
||
Add domain with leading space
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain([' ipa.test'], force=True)
|
||
|
||
# check
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'domain': Leading and trailing spaces are not allowed"
|
||
in dialog.text)
|
||
|
||
@screenshot
|
||
def test_add_domain_with_trailing_space(self):
|
||
"""
|
||
Add domain with trailing space
|
||
"""
|
||
self.init_app()
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# add with force - skipping DNS check
|
||
self._add_associateddomain(['ipa.test '], force=True)
|
||
|
||
# check
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'domain': Leading and trailing spaces are not allowed"
|
||
in dialog.text)
|
||
|
||
@screenshot
|
||
def test_del_domain_undo(self):
|
||
"""
|
||
Undo after deleting existing domain
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
# check that domain is present
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# delete and undo
|
||
self.navigate_to_entity(ENTITY)
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.undo_multivalued('associateddomain', realmdomain)
|
||
|
||
# check that domain is present
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_undo_all(self):
|
||
"""
|
||
Undo all after deleting existing domain
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
# check that domain is present
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# delete and undo
|
||
self.navigate_to_entity(ENTITY)
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.undo_all_multivalued('associateddomain')
|
||
|
||
# check that domain is present
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_revert(self):
|
||
"""
|
||
Revert after deleting existing domain
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
# del and revert
|
||
self.navigate_to_entity(ENTITY)
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('revert')
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_and_refresh(self):
|
||
"""
|
||
Delete domain and refresh
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# delete
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('refresh')
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_and_update(self):
|
||
"""
|
||
Delete and update
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# delete
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click('ok')
|
||
self.wait_for_request()
|
||
self.close_notifications()
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain not in domains
|
||
|
||
# cleanup
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_with_force_update(self):
|
||
"""
|
||
Delete and force update
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
# add
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
# force delete
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click('force')
|
||
self.wait_for_request()
|
||
self.close_notifications()
|
||
|
||
# check
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain not in domains
|
||
|
||
# cleanup
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_add_non_dns_configured_domain_negative(self):
|
||
"""
|
||
Domain shouldn't be added after:
|
||
1) add DNS non configured domain
|
||
2) click update
|
||
3) check DNS
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'domain': DNS zone for each realmdomain must contain "
|
||
"SOA or NS records. "
|
||
"No records found for: " + realmdomain
|
||
in dialog.text)
|
||
|
||
@screenshot
|
||
def test_add_non_dns_configured_domain_positive(self):
|
||
"""
|
||
Domain should be added fter:
|
||
1) add DNS non configured domain
|
||
2) click update
|
||
3) click force
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain], force=True)
|
||
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_del_domain_of_ipa_server_bug1035286(self):
|
||
"""
|
||
Error should occur when:
|
||
1) delete Domain of Ipa server
|
||
2) select update
|
||
3) select force update
|
||
4) click "Cancel"
|
||
"""
|
||
self.init_app()
|
||
|
||
ipadomain = self.config.get('ipa_domain')
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
self.prepare_dns_zone(realmdomain)
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
self._add_associateddomain([realmdomain])
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
|
||
self.del_multivalued('associateddomain', ipadomain)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click('force')
|
||
self.wait_for_request()
|
||
|
||
dialog = self.get_last_error_dialog()
|
||
assert ("invalid 'realmdomain list': "
|
||
"IPA server domain cannot be omitted" in dialog.text)
|
||
self.dialog_button_click('cancel')
|
||
self.facet_button_click('refresh')
|
||
|
||
# cleanup
|
||
self.del_realm_domain(realmdomain, 'ok')
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_dnszone_add_hooked_to_realmdomains_mod(self):
|
||
"""
|
||
DNSZone is hooked to realmdomains:
|
||
1) Navigate Identity >> DNS
|
||
2) Add Dnszone (newdom.com)
|
||
3) go to DNS Resource Records(DNS Zone >> newdom.com)
|
||
4) verify TXT record is exists
|
||
5) navigate Identity >> RealmDomain
|
||
6) verify newly added domain (newdom.com) exists in realmdomain list
|
||
7) Delete domain (newdom.com) from realmdomain list
|
||
8) go to DNS Resource Records(DNS Zone >> newdom.com)
|
||
9) verify TXT record is not exists
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
realm = self.config.get('ipa_realm')
|
||
|
||
# add DNS domain
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.add_record(ZONE_ENTITY, self.copy_zone_data(realmdomain))
|
||
self.assert_record(realmdomain + '.')
|
||
|
||
self.navigate_to_record(realmdomain + '.')
|
||
self.assert_record('_kerberos')
|
||
self.assert_record_value('TXT', '_kerberos', 'type')
|
||
self.assert_record_value(realm, '_kerberos', 'data')
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
self.del_multivalued('associateddomain', realmdomain)
|
||
self.facet_button_click('save')
|
||
self.dialog_button_click('ok')
|
||
self.wait_for_request()
|
||
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.assert_record(realmdomain + '.')
|
||
|
||
self.navigate_to_record(realmdomain + '.')
|
||
self.facet_button_click('refresh')
|
||
self.assert_record('_kerberos', negative=True)
|
||
|
||
# cleanup
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_dns_reversezone_add_hooked_to_realmdomains_mod(self):
|
||
"""
|
||
Reverse DNS domain is not automatically add domain to the list of
|
||
domain associated with IPA realm
|
||
1) Navigate Identity >> DNS
|
||
2) Add Dns Reverse Zone (222.65.10.in-addr.arpa.)
|
||
3) navigate Identity >> RealmDomain
|
||
4) verify newly added domain (222.65.10.in-addr.arpa.) is not exists
|
||
in realmdomain list
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
|
||
# add DNS Reverse zone
|
||
self.navigate_to_entity(FORWARD_ZONE_ENTITY)
|
||
self.add_record(FORWARD_ZONE_ENTITY,
|
||
self.copy_zone_data(realmdomain, FORWARD_ZONE_DATA))
|
||
self.assert_record(realmdomain + '.')
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain not in domains
|
||
|
||
# cleanup
|
||
self.navigate_to_entity(FORWARD_ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
@screenshot
|
||
def test_dnszone_del_hooked_to_realmdomains_mod(self):
|
||
"""
|
||
ipa dnszone-del also removes the entry from realmdomains list
|
||
1) Navigate Identity >> DNS
|
||
2) Add Dnszone (newdom.com)
|
||
3) navigate Identity >> RealmDomain
|
||
4) verify newly added domain (newdom.com) exists in realmdomain list
|
||
7) Navigate Identity >> DNS
|
||
8) Delete Dnszone(newdom.com)
|
||
9) navigate Identity >> RealmDomain
|
||
10) verify domain (newdom.com) is not exists in realmdomain list
|
||
"""
|
||
self.init_app()
|
||
|
||
realmdomain = self.rand_realmdomain()
|
||
|
||
# add DNS domain
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.add_record(ZONE_ENTITY, self.copy_zone_data(realmdomain))
|
||
self.assert_record(realmdomain + '.')
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain in domains
|
||
|
||
self.navigate_to_entity(ZONE_ENTITY)
|
||
self.delete_record(realmdomain + '.')
|
||
|
||
self.navigate_to_entity(ENTITY)
|
||
domains = self.get_multivalued_value('associateddomain')
|
||
assert realmdomain not in domains
|