From 36a1144f39bed3e30ff61d12e00b808f3d3bcc4e Mon Sep 17 00:00:00 2001 From: Thomas Vincent Date: Sun, 15 Mar 2026 16:36:39 -0700 Subject: [PATCH 1/2] refactor: DRY evidence tab page wrapper --- evidence_tab.php | 12 +++------ include/ui_helpers.php | 20 ++++++++++++++ tests/test_tab_wrapper.php | 55 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 include/ui_helpers.php create mode 100644 tests/test_tab_wrapper.php diff --git a/evidence_tab.php b/evidence_tab.php index fbf7caf..d0d1ac0 100644 --- a/evidence_tab.php +++ b/evidence_tab.php @@ -28,6 +28,7 @@ include_once('./lib/snmp.php'); include_once('./plugins/evidence/include/functions.php'); include_once('./plugins/evidence/include/arrays.php'); +include_once('./plugins/evidence/include/ui_helpers.php'); set_default_action(); @@ -42,18 +43,12 @@ break; case 'find': - general_header(); - evidence_display_form(); - evidence_find(); - bottom_footer(); + evidence_render_tab_page('evidence_find'); break; default: - general_header(); - evidence_display_form(); - evidence_stats(); - bottom_footer(); + evidence_render_tab_page('evidence_stats'); break; } @@ -260,4 +255,3 @@ function evidence_stats() { print 'Oldest record: ' . $old . '
'; } - diff --git a/include/ui_helpers.php b/include/ui_helpers.php new file mode 100644 index 0000000..93b49c1 --- /dev/null +++ b/include/ui_helpers.php @@ -0,0 +1,20 @@ + Date: Sun, 15 Mar 2026 17:03:12 -0700 Subject: [PATCH 2/2] fix: tighten evidence DRY helper and routing tests --- include/ui_helpers.php | 4 ++-- tests/test_tab_wrapper.php | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/include/ui_helpers.php b/include/ui_helpers.php index 93b49c1..e922525 100644 --- a/include/ui_helpers.php +++ b/include/ui_helpers.php @@ -11,10 +11,10 @@ */ if (!function_exists('evidence_render_tab_page')) { - function evidence_render_tab_page($content_renderer) { + function evidence_render_tab_page(callable $content_renderer) { general_header(); evidence_display_form(); - call_user_func($content_renderer); + $content_renderer(); bottom_footer(); } } diff --git a/tests/test_tab_wrapper.php b/tests/test_tab_wrapper.php index f87ea17..abe26c9 100644 --- a/tests/test_tab_wrapper.php +++ b/tests/test_tab_wrapper.php @@ -33,6 +33,13 @@ function assert_same($expected, $actual, $message) { } } +function assert_regex($pattern, $subject, $message) { + if (!preg_match($pattern, $subject)) { + fwrite(STDERR, $message . PHP_EOL); + exit(1); + } +} + evidence_render_tab_page('evidence_tab_test_content'); assert_same(['header', 'form', 'content', 'footer'], $events, 'Tab helper should render wrapper in correct order.'); @@ -42,14 +49,16 @@ function assert_same($expected, $actual, $message) { exit(1); } -if (strpos($source, "evidence_render_tab_page('evidence_find');") === false) { - fwrite(STDERR, "Expected find action to use evidence_render_tab_page().\n"); - exit(1); -} +assert_regex( + "/evidence_render_tab_page\\(\\s*'evidence_find'\\s*\\)\\s*;/", + $source, + "Expected find action to use evidence_render_tab_page()." +); -if (strpos($source, "evidence_render_tab_page('evidence_stats');") === false) { - fwrite(STDERR, "Expected default action to use evidence_render_tab_page().\n"); - exit(1); -} +assert_regex( + "/evidence_render_tab_page\\(\\s*'evidence_stats'\\s*\\)\\s*;/", + $source, + "Expected default action to use evidence_render_tab_page()." +); echo "OK\n";