From 855e54d8dff636d3d1a7dca28173b5fbdde97a9e Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 25 Feb 2019 10:13:33 -0800 Subject: [PATCH] Refresh workaround for occasional FreeIPA web UI cert issue Investigation suggests that the Firefox certificate validation failure we sometimes get when loading the FreeIPA web UI in the freeipa_webui test module is a race issue in Firefox itself: https://bugzilla.mozilla.org/show_bug.cgi?id=1530429 refreshing the page seems to work around the problem, so let's do that. Signed-off-by: Adam Williamson --- lib/freeipa.pm | 8 +++++++- needles/firefox/firefox_refresh-20190225.json | 16 ++++++++++++++++ needles/firefox/firefox_refresh-20190225.png | Bin 0 -> 29222 bytes 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 needles/firefox/firefox_refresh-20190225.json create mode 100644 needles/firefox/firefox_refresh-20190225.png diff --git a/lib/freeipa.pm b/lib/freeipa.pm index 9f6113d0..067ffb80 100644 --- a/lib/freeipa.pm +++ b/lib/freeipa.pm @@ -43,7 +43,13 @@ sub start_webui { assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx"; disable_firefox_studies; type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.domain.local\n"; - assert_screen ["freeipa_webui_login", $user_screen], 30; + assert_screen ["freeipa_webui_login", $user_screen, "firefox_certificate_error"], 30; + if (match_has_tag "firefox_certificate_error") { + # https://bugzilla.mozilla.org/show_bug.cgi?id=1530429 + record_soft_failure "Certificate validation error - likely Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1530429"; + assert_and_click "firefox_refresh"; + assert_screen ["freeipa_webui_login", $user_screen], 30; + } wait_still_screen 5; # softfail on kerberos ticket bugs meaning we get auto-logged in # as the requested user when we don't expect to be diff --git a/needles/firefox/firefox_refresh-20190225.json b/needles/firefox/firefox_refresh-20190225.json new file mode 100644 index 00000000..8588e912 --- /dev/null +++ b/needles/firefox/firefox_refresh-20190225.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 75, + "height": 22, + "ypos": 43, + "type": "match", + "width": 22 + } + ], + "properties": [], + "tags": [ + "browser_refresh", + "firefox_refresh" + ] +} diff --git a/needles/firefox/firefox_refresh-20190225.png b/needles/firefox/firefox_refresh-20190225.png new file mode 100644 index 0000000000000000000000000000000000000000..b53fc33407797289964b5130630d92fcb6257f67 GIT binary patch literal 29222 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 literal 0 HcmV?d00001