From 945a93aa0581be21d186e96f5cda19496ba81386 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 21 Feb 2019 12:15:34 -0800 Subject: [PATCH] Get more info on failures caused by Firefox certificate issues We're getting an intermittent case where FreeIPA tests fail because of a web server certificate issue. Click 'Advanced' in Firefox when this happens so we can get a bit more info on the problem. Signed-off-by: Adam Williamson --- lib/installedtest.pm | 7 +++++++ .../firefox_certificate_error-20190221.json | 16 ++++++++++++++++ .../firefox_certificate_error-20190221.png | Bin 0 -> 29182 bytes 3 files changed, 23 insertions(+) create mode 100644 needles/firefox/firefox_certificate_error-20190221.json create mode 100644 needles/firefox/firefox_certificate_error-20190221.png diff --git a/lib/installedtest.pm b/lib/installedtest.pm index 1e098463..e61b5d06 100644 --- a/lib/installedtest.pm +++ b/lib/installedtest.pm @@ -23,6 +23,13 @@ sub root_console { sub post_fail_hook { my $self = shift; + # if we failed at a browser certificate error screen, click to get + # more info on the issue + if (check_screen 'browser_certificate_error', 3) { + assert_and_click 'browser_certificate_error'; + save_screenshot; + } + if (check_screen 'emergency_rescue', 3) { my $password = get_var("ROOT_PASSWORD", "weakpassword"); type_string "$password\n"; diff --git a/needles/firefox/firefox_certificate_error-20190221.json b/needles/firefox/firefox_certificate_error-20190221.json new file mode 100644 index 00000000..dd6e77ac --- /dev/null +++ b/needles/firefox/firefox_certificate_error-20190221.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 801, + "ypos": 506, + "width": 75, + "height": 19, + "type": "match" + } + ], + "properties": [], + "tags": [ + "browser_certificate_error", + "firefox_certificate_error" + ] +} \ No newline at end of file diff --git a/needles/firefox/firefox_certificate_error-20190221.png b/needles/firefox/firefox_certificate_error-20190221.png new file mode 100644 index 0000000000000000000000000000000000000000..c395dcb291aa76dd39b37f61530999891f4d3174 GIT binary patch literal 29182 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