diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2018-02-16 18:12:48 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2018-02-16 20:02:11 +0100 |
commit | f945d6a200c2d7505a3da587605522e9dbfcd76f (patch) | |
tree | 0b71189e54722598b312aba4e311d95dc96af41c | |
parent | dc28d3653365d0a658b2ecb73f7d9c3bd603e465 (diff) | |
download | freeipa-f945d6a200c2d7505a3da587605522e9dbfcd76f.tar.gz freeipa-f945d6a200c2d7505a3da587605522e9dbfcd76f.tar.xz freeipa-f945d6a200c2d7505a3da587605522e9dbfcd76f.zip |
webui:tests: realm domain add with DNS check
Try adding and deleting with "Check DNS" (in html 'ok' button)
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.
-rw-r--r-- | ipatests/test_webui/test_realmdomains.py | 62 |
1 files changed, 58 insertions, 4 deletions
diff --git a/ipatests/test_webui/test_realmdomains.py b/ipatests/test_webui/test_realmdomains.py index e7737c932..d53f23e1b 100644 --- a/ipatests/test_webui/test_realmdomains.py +++ b/ipatests/test_webui/test_realmdomains.py @@ -23,6 +23,9 @@ Realm domains tests 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, ZONE_DATA, ZONE_PKEY, ZONE_DEFAULT_FACET +) import pytest ENTITY = 'realmdomains' @@ -31,6 +34,12 @@ 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() + @screenshot def test_read(self): """ @@ -39,15 +48,60 @@ class test_realmdomains(UI_driver): self.init_app() self.navigate_to_entity(ENTITY) - # add + # add with force - skipping DNS check self.add_multivalued('associateddomain', 'itest.bar') self.facet_button_click('save') self.dialog_button_click('force') self.wait_for_request() # delete - self.del_multivalued('associateddomain', 'itest.bar') - self.facet_button_click('save') - self.dialog_button_click('force') + self.del_realm_domain('itest.bar', 'force') self.wait_for_request() + + # Try adding and deleting with "Check DNS" (in html 'ok' button) + + # 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, ZONE_DATA) + + realmdomain = ZONE_PKEY.strip('.') + realm = self.config.get('ipa_realm') + + # remove the added domain from Realm Domain + self.navigate_to_entity(ENTITY) + self.del_realm_domain(realmdomain, 'ok') + + # re-add _TXT kerberos.$domain "$REALM" + self.navigate_to_entity(ZONE_ENTITY) + self.navigate_to_record(ZONE_PKEY) + + 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) + + # add Realm Domain and Check DNS + self.navigate_to_entity(ENTITY) + self.add_multivalued('associateddomain', realmdomain) + self.facet_button_click('save') + self.dialog_button_click('ok') self.wait_for_request() + + # cleanup + self.del_realm_domain(realmdomain, 'ok') + self.navigate_to_entity(ZONE_ENTITY) + self.delete_record(ZONE_PKEY) |