From f07fead76730945ccface0c070e0ca24fda6e60e Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Wed, 4 Feb 2026 17:22:17 +0800 Subject: [PATCH 01/11] Tests: Fix Heartbeat Warning in Siteground Speed Optimizer in WordPress 6.9.1 --- tests/Support/Data/dump-6.2.8.sql | 5 ++++- tests/Support/Data/dump.sql | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/Support/Data/dump-6.2.8.sql b/tests/Support/Data/dump-6.2.8.sql index 3141bc030..ab77f79f8 100644 --- a/tests/Support/Data/dump-6.2.8.sql +++ b/tests/Support/Data/dump-6.2.8.sql @@ -202,7 +202,10 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (121, 'theme_mods_twentytwentythree', 'a:1:{s:18:\"custom_css_post_id\";i:-1;}', 'yes'), (122, 'recovery_keys', 'a:0:{}', 'yes'), (123, 'https_detection_errors', 'a:1:{s:23:\"ssl_verification_failed\";a:1:{i:0;s:24:\"SSL verification failed.\";}}', 'yes'), -(124, 'can_compress_scripts', '0', 'no'); +(124, 'can_compress_scripts', '0', 'no'), +(125, 'siteground_optimizer_heartbeat_post_interval', '0', 'on'), +(126, 'siteground_optimizer_heartbeat_dashboard_interval', '0', 'on'), +(127, 'siteground_optimizer_heartbeat_frontend_interval', '0', 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( diff --git a/tests/Support/Data/dump.sql b/tests/Support/Data/dump.sql index ab2895aff..0ae835e58 100644 --- a/tests/Support/Data/dump.sql +++ b/tests/Support/Data/dump.sql @@ -253,7 +253,10 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (128, 'WishListMemberOptions_MigrateContentLevelData', '1', 'on'), (129, 'et_support_center_setup_done', 'processed', 'on'), (130, 'et_support_center_installed', 'true', 'on'), -(131, 'woocommerce_version', '9.7.1', 'on'); +(131, 'woocommerce_version', '9.7.1', 'on'), +(132, 'siteground_optimizer_heartbeat_post_interval', '0', 'on'), +(133, 'siteground_optimizer_heartbeat_dashboard_interval', '0', 'on'), +(134, 'siteground_optimizer_heartbeat_frontend_interval', '0', 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( From 33f52c0c41dfe1d871708ae831a59d0aabd3c485 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Wed, 4 Feb 2026 17:42:49 +0800 Subject: [PATCH 02/11] Isolate test; ignore warnings from Siteground Plugin --- tests/Support/Helper/ThirdPartyPlugin.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/Support/Helper/ThirdPartyPlugin.php b/tests/Support/Helper/ThirdPartyPlugin.php index cc02c4886..a0ba082ac 100644 --- a/tests/Support/Helper/ThirdPartyPlugin.php +++ b/tests/Support/Helper/ThirdPartyPlugin.php @@ -73,6 +73,9 @@ public function activateThirdPartyPlugin($I, $name, $wizardExpectsToDisplay = tr if ($name === 'wishlist-member' && version_compare( phpversion(), '8.1', '>' )) { return; } + if ($name === 'sg-cachepress') { + return; + } // Check that no PHP warnings or notices were output. $I->checkNoWarningsAndNoticesOnScreen($I); From b7738dc141eb55e97828e91eafc49f592d252e18 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Wed, 4 Feb 2026 17:59:03 +0800 Subject: [PATCH 03/11] Revert DB changes --- tests/Support/Data/dump-6.2.8.sql | 5 +---- tests/Support/Data/dump.sql | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/Support/Data/dump-6.2.8.sql b/tests/Support/Data/dump-6.2.8.sql index ab77f79f8..3141bc030 100644 --- a/tests/Support/Data/dump-6.2.8.sql +++ b/tests/Support/Data/dump-6.2.8.sql @@ -202,10 +202,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (121, 'theme_mods_twentytwentythree', 'a:1:{s:18:\"custom_css_post_id\";i:-1;}', 'yes'), (122, 'recovery_keys', 'a:0:{}', 'yes'), (123, 'https_detection_errors', 'a:1:{s:23:\"ssl_verification_failed\";a:1:{i:0;s:24:\"SSL verification failed.\";}}', 'yes'), -(124, 'can_compress_scripts', '0', 'no'), -(125, 'siteground_optimizer_heartbeat_post_interval', '0', 'on'), -(126, 'siteground_optimizer_heartbeat_dashboard_interval', '0', 'on'), -(127, 'siteground_optimizer_heartbeat_frontend_interval', '0', 'on'); +(124, 'can_compress_scripts', '0', 'no'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( diff --git a/tests/Support/Data/dump.sql b/tests/Support/Data/dump.sql index 0ae835e58..ab2895aff 100644 --- a/tests/Support/Data/dump.sql +++ b/tests/Support/Data/dump.sql @@ -253,10 +253,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (128, 'WishListMemberOptions_MigrateContentLevelData', '1', 'on'), (129, 'et_support_center_setup_done', 'processed', 'on'), (130, 'et_support_center_installed', 'true', 'on'), -(131, 'woocommerce_version', '9.7.1', 'on'), -(132, 'siteground_optimizer_heartbeat_post_interval', '0', 'on'), -(133, 'siteground_optimizer_heartbeat_dashboard_interval', '0', 'on'), -(134, 'siteground_optimizer_heartbeat_frontend_interval', '0', 'on'); +(131, 'woocommerce_version', '9.7.1', 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( From 2810ceec616ca9e8d9051b018f7ff4fcf2183d3b Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:28:00 +0800 Subject: [PATCH 04/11] Isolate Siteground Tests and set options to prevent heartbeat script deregistration --- tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php | 5 +++++ .../forms/blocks-shortcodes/PageShortcodeFormCest.php | 5 +++++ tests/EndToEnd/forms/post-types/PageFormCest.php | 5 +++++ tests/Support/Helper/ThirdPartyPlugin.php | 3 --- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php index ef64e1f4f..ec6fefc3d 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php @@ -824,6 +824,11 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ $I->setupKitPlugin($I); $I->setupKitPluginResources($I); + // Disable Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php index 568c8097d..ba9fe9fe5 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php @@ -802,6 +802,11 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest $I->setupKitPlugin($I); $I->setupKitPluginResources($I); + // Disable Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); diff --git a/tests/EndToEnd/forms/post-types/PageFormCest.php b/tests/EndToEnd/forms/post-types/PageFormCest.php index e79ed82f4..56ad89797 100644 --- a/tests/EndToEnd/forms/post-types/PageFormCest.php +++ b/tests/EndToEnd/forms/post-types/PageFormCest.php @@ -805,6 +805,11 @@ public function testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin(E $I->setupKitPlugin($I); $I->setupKitPluginResources($I); + // Disable Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); diff --git a/tests/Support/Helper/ThirdPartyPlugin.php b/tests/Support/Helper/ThirdPartyPlugin.php index a0ba082ac..cc02c4886 100644 --- a/tests/Support/Helper/ThirdPartyPlugin.php +++ b/tests/Support/Helper/ThirdPartyPlugin.php @@ -73,9 +73,6 @@ public function activateThirdPartyPlugin($I, $name, $wizardExpectsToDisplay = tr if ($name === 'wishlist-member' && version_compare( phpversion(), '8.1', '>' )) { return; } - if ($name === 'sg-cachepress') { - return; - } // Check that no PHP warnings or notices were output. $I->checkNoWarningsAndNoticesOnScreen($I); From 97922f4bda5082884a61871f957aae25fe9f3f7a Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:29:03 +0800 Subject: [PATCH 05/11] Isolate tests --- .github/workflows/tests.yml | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c59a882fb..2c5b7da00 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,28 +53,13 @@ jobs: fail-fast: false matrix: wp-versions: [ 'latest' ] #[ '6.1.1', 'latest' ] - php-versions: [ '8.1', '8.2', '8.3', '8.4' ] #[ '7.4', '8.0', '8.1' ] + php-versions: [ '8.1' ] #[ '7.4', '8.0', '8.1' ] # Folder names within the 'tests' folder to run tests in parallel. test-groups: [ - 'EndToEnd/broadcasts/blocks-shortcodes', - 'EndToEnd/broadcasts/import-export', - 'EndToEnd/forms/blocks-shortcodes', - 'EndToEnd/forms/general', - 'EndToEnd/forms/post-types', - 'EndToEnd/general/other', - 'EndToEnd/general/plugin-screens', - 'EndToEnd/integrations/divi-builder', - 'EndToEnd/integrations/divi-theme', - 'EndToEnd/integrations/other', - 'EndToEnd/integrations/wlm', - 'EndToEnd/integrations/woocommerce', - 'EndToEnd/landing-pages', - 'EndToEnd/products', - 'EndToEnd/restrict-content/general', - 'EndToEnd/restrict-content/post-types', - 'EndToEnd/tags', - 'Integration' + 'EndToEnd/forms/blocks-shortcodes/PageBlockFormCest:testFormBlockWithSitegroundSpeedOptimizerPlugin', + 'EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest:testFormShortcodeWithSitegroundSpeedOptimizerPlugin', + 'EndToEnd/forms/post-types/PageFormCest:testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin', ] # Steps to install, configure and run tests From cbb3066a50c65062e592310cdce4a1e4946ee539 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:33:54 +0800 Subject: [PATCH 06/11] =?UTF-8?q?Set=20a=20value=20so=20Heartbeat=20script?= =?UTF-8?q?=20isn=E2=80=99t=20deregistered?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forms/blocks-shortcodes/PageBlockFormCest.php | 10 ++++++---- .../forms/blocks-shortcodes/PageShortcodeFormCest.php | 10 ++++++---- tests/EndToEnd/forms/post-types/PageFormCest.php | 10 ++++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php index ec6fefc3d..e296769c9 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php @@ -824,10 +824,10 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Disable Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); @@ -835,6 +835,8 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); + + // Add a Page using the Gutenberg editor. $I->addGutenbergPage( $I, diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php index ba9fe9fe5..8e60a19ec 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php @@ -802,10 +802,10 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Disable Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); @@ -813,6 +813,8 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); + + // Add a Page using the Classic Editor. $I->addClassicEditorPage( $I, diff --git a/tests/EndToEnd/forms/post-types/PageFormCest.php b/tests/EndToEnd/forms/post-types/PageFormCest.php index 56ad89797..6fa533759 100644 --- a/tests/EndToEnd/forms/post-types/PageFormCest.php +++ b/tests/EndToEnd/forms/post-types/PageFormCest.php @@ -805,14 +805,16 @@ public function testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin(E $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Disable Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', false ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', false ); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); + + // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); From 26640a25eb34e4ff64d501048832639a7b05a7e8 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:36:15 +0800 Subject: [PATCH 07/11] Ignore error on Plugin activation --- .../forms/blocks-shortcodes/PageBlockFormCest.php | 10 ++++------ .../forms/blocks-shortcodes/PageShortcodeFormCest.php | 10 ++++------ tests/EndToEnd/forms/post-types/PageFormCest.php | 10 ++++------ tests/Support/Helper/ThirdPartyPlugin.php | 3 +++ 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php index e296769c9..fef694c58 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php @@ -824,18 +824,16 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); - + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Add a Page using the Gutenberg editor. $I->addGutenbergPage( diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php index 8e60a19ec..18ea9391b 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php @@ -802,18 +802,16 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); - + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Add a Page using the Classic Editor. $I->addClassicEditorPage( diff --git a/tests/EndToEnd/forms/post-types/PageFormCest.php b/tests/EndToEnd/forms/post-types/PageFormCest.php index 6fa533759..66b0e3f06 100644 --- a/tests/EndToEnd/forms/post-types/PageFormCest.php +++ b/tests/EndToEnd/forms/post-types/PageFormCest.php @@ -805,15 +805,13 @@ public function testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin(E $I->setupKitPlugin($I); $I->setupKitPluginResources($I); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); - + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); diff --git a/tests/Support/Helper/ThirdPartyPlugin.php b/tests/Support/Helper/ThirdPartyPlugin.php index cc02c4886..a0ba082ac 100644 --- a/tests/Support/Helper/ThirdPartyPlugin.php +++ b/tests/Support/Helper/ThirdPartyPlugin.php @@ -73,6 +73,9 @@ public function activateThirdPartyPlugin($I, $name, $wizardExpectsToDisplay = tr if ($name === 'wishlist-member' && version_compare( phpversion(), '8.1', '>' )) { return; } + if ($name === 'sg-cachepress') { + return; + } // Check that no PHP warnings or notices were output. $I->checkNoWarningsAndNoticesOnScreen($I); From ba09e0fd7780788ba1f5bb0fa377bb0d89636533 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:39:36 +0800 Subject: [PATCH 08/11] Set Heartbeat values in DB dump --- tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php | 5 ----- .../forms/blocks-shortcodes/PageShortcodeFormCest.php | 5 ----- tests/EndToEnd/forms/post-types/PageFormCest.php | 5 ----- tests/Support/Data/dump-6.2.8.sql | 5 ++++- tests/Support/Data/dump.sql | 5 ++++- tests/Support/Helper/ThirdPartyPlugin.php | 3 --- 6 files changed, 8 insertions(+), 20 deletions(-) diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php index fef694c58..ef64e1f4f 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php @@ -830,11 +830,6 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Add a Page using the Gutenberg editor. $I->addGutenbergPage( $I, diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php index 18ea9391b..568c8097d 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php @@ -808,11 +808,6 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Add a Page using the Classic Editor. $I->addClassicEditorPage( $I, diff --git a/tests/EndToEnd/forms/post-types/PageFormCest.php b/tests/EndToEnd/forms/post-types/PageFormCest.php index 66b0e3f06..e79ed82f4 100644 --- a/tests/EndToEnd/forms/post-types/PageFormCest.php +++ b/tests/EndToEnd/forms/post-types/PageFormCest.php @@ -808,11 +808,6 @@ public function testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin(E // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); - // Configure Siteground Speed Optimizer's Heartbeat. - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); - $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); - // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); diff --git a/tests/Support/Data/dump-6.2.8.sql b/tests/Support/Data/dump-6.2.8.sql index 3141bc030..4f3fc771c 100644 --- a/tests/Support/Data/dump-6.2.8.sql +++ b/tests/Support/Data/dump-6.2.8.sql @@ -202,7 +202,10 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (121, 'theme_mods_twentytwentythree', 'a:1:{s:18:\"custom_css_post_id\";i:-1;}', 'yes'), (122, 'recovery_keys', 'a:0:{}', 'yes'), (123, 'https_detection_errors', 'a:1:{s:23:\"ssl_verification_failed\";a:1:{i:0;s:24:\"SSL verification failed.\";}}', 'yes'), -(124, 'can_compress_scripts', '0', 'no'); +(124, 'can_compress_scripts', '0', 'no'), +(125, 'siteground_optimizer_heartbeat_post_interval', 120, 'on'), +(126, 'siteground_optimizer_heartbeat_dashboard_interval', 120, 'on'), +(127, 'siteground_optimizer_heartbeat_frontend_interval', 120, 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( diff --git a/tests/Support/Data/dump.sql b/tests/Support/Data/dump.sql index ab2895aff..9dbdee53a 100644 --- a/tests/Support/Data/dump.sql +++ b/tests/Support/Data/dump.sql @@ -253,7 +253,10 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (128, 'WishListMemberOptions_MigrateContentLevelData', '1', 'on'), (129, 'et_support_center_setup_done', 'processed', 'on'), (130, 'et_support_center_installed', 'true', 'on'), -(131, 'woocommerce_version', '9.7.1', 'on'); +(131, 'woocommerce_version', '9.7.1', 'on'), +(132, 'siteground_optimizer_heartbeat_post_interval', 120, 'on'), +(133, 'siteground_optimizer_heartbeat_dashboard_interval', 120, 'on'), +(134, 'siteground_optimizer_heartbeat_frontend_interval', 120, 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( diff --git a/tests/Support/Helper/ThirdPartyPlugin.php b/tests/Support/Helper/ThirdPartyPlugin.php index a0ba082ac..cc02c4886 100644 --- a/tests/Support/Helper/ThirdPartyPlugin.php +++ b/tests/Support/Helper/ThirdPartyPlugin.php @@ -73,9 +73,6 @@ public function activateThirdPartyPlugin($I, $name, $wizardExpectsToDisplay = tr if ($name === 'wishlist-member' && version_compare( phpversion(), '8.1', '>' )) { return; } - if ($name === 'sg-cachepress') { - return; - } // Check that no PHP warnings or notices were output. $I->checkNoWarningsAndNoticesOnScreen($I); From 54ff2b5ba3364c7675c31b50d03347baacf08472 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:41:34 +0800 Subject: [PATCH 09/11] Ignore errors on Siteground Plugin activation --- tests/Support/Helper/ThirdPartyPlugin.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/Support/Helper/ThirdPartyPlugin.php b/tests/Support/Helper/ThirdPartyPlugin.php index cc02c4886..a0ba082ac 100644 --- a/tests/Support/Helper/ThirdPartyPlugin.php +++ b/tests/Support/Helper/ThirdPartyPlugin.php @@ -73,6 +73,9 @@ public function activateThirdPartyPlugin($I, $name, $wizardExpectsToDisplay = tr if ($name === 'wishlist-member' && version_compare( phpversion(), '8.1', '>' )) { return; } + if ($name === 'sg-cachepress') { + return; + } // Check that no PHP warnings or notices were output. $I->checkNoWarningsAndNoticesOnScreen($I); From a0150282e1656970c48c618256496c5b0ca99c74 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:44:38 +0800 Subject: [PATCH 10/11] Set options in test --- tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php | 5 +++++ .../forms/blocks-shortcodes/PageShortcodeFormCest.php | 5 +++++ tests/EndToEnd/forms/post-types/PageFormCest.php | 5 +++++ tests/Support/Data/dump-6.2.8.sql | 5 +---- tests/Support/Data/dump.sql | 5 +---- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php index ef64e1f4f..fef694c58 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageBlockFormCest.php @@ -830,6 +830,11 @@ public function testFormBlockWithSitegroundSpeedOptimizerPlugin(EndToEndTester $ // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); + // Add a Page using the Gutenberg editor. $I->addGutenbergPage( $I, diff --git a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php index 568c8097d..18ea9391b 100644 --- a/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php +++ b/tests/EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest.php @@ -808,6 +808,11 @@ public function testFormShortcodeWithSitegroundSpeedOptimizerPlugin(EndToEndTest // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); + // Add a Page using the Classic Editor. $I->addClassicEditorPage( $I, diff --git a/tests/EndToEnd/forms/post-types/PageFormCest.php b/tests/EndToEnd/forms/post-types/PageFormCest.php index e79ed82f4..66b0e3f06 100644 --- a/tests/EndToEnd/forms/post-types/PageFormCest.php +++ b/tests/EndToEnd/forms/post-types/PageFormCest.php @@ -808,6 +808,11 @@ public function testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin(E // Activate Siteground Speed Optimizer Plugin. $I->activateThirdPartyPlugin($I, 'sg-cachepress'); + // Configure Siteground Speed Optimizer's Heartbeat. + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_post_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_dashboard_interval', 120 ); + $I->haveOptionInDatabase('siteground_optimizer_heartbeat_frontend_interval', 120 ); + // Enable Siteground Speed Optimizer's "Combine JavaScript Files" setting. $I->haveOptionInDatabase('siteground_optimizer_combine_javascript', '1'); diff --git a/tests/Support/Data/dump-6.2.8.sql b/tests/Support/Data/dump-6.2.8.sql index 4f3fc771c..3141bc030 100644 --- a/tests/Support/Data/dump-6.2.8.sql +++ b/tests/Support/Data/dump-6.2.8.sql @@ -202,10 +202,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (121, 'theme_mods_twentytwentythree', 'a:1:{s:18:\"custom_css_post_id\";i:-1;}', 'yes'), (122, 'recovery_keys', 'a:0:{}', 'yes'), (123, 'https_detection_errors', 'a:1:{s:23:\"ssl_verification_failed\";a:1:{i:0;s:24:\"SSL verification failed.\";}}', 'yes'), -(124, 'can_compress_scripts', '0', 'no'), -(125, 'siteground_optimizer_heartbeat_post_interval', 120, 'on'), -(126, 'siteground_optimizer_heartbeat_dashboard_interval', 120, 'on'), -(127, 'siteground_optimizer_heartbeat_frontend_interval', 120, 'on'); +(124, 'can_compress_scripts', '0', 'no'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( diff --git a/tests/Support/Data/dump.sql b/tests/Support/Data/dump.sql index 9dbdee53a..ab2895aff 100644 --- a/tests/Support/Data/dump.sql +++ b/tests/Support/Data/dump.sql @@ -253,10 +253,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (128, 'WishListMemberOptions_MigrateContentLevelData', '1', 'on'), (129, 'et_support_center_setup_done', 'processed', 'on'), (130, 'et_support_center_installed', 'true', 'on'), -(131, 'woocommerce_version', '9.7.1', 'on'), -(132, 'siteground_optimizer_heartbeat_post_interval', 120, 'on'), -(133, 'siteground_optimizer_heartbeat_dashboard_interval', 120, 'on'), -(134, 'siteground_optimizer_heartbeat_frontend_interval', 120, 'on'); +(131, 'woocommerce_version', '9.7.1', 'on'); DROP TABLE IF EXISTS `wp_postmeta`; CREATE TABLE `wp_postmeta` ( From ba86950268fb9fecc18e158b4071366ed3282f27 Mon Sep 17 00:00:00 2001 From: Tim Carr Date: Thu, 5 Feb 2026 12:47:04 +0800 Subject: [PATCH 11/11] Reinstate all tests --- .github/workflows/tests.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2c5b7da00..c59a882fb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,13 +53,28 @@ jobs: fail-fast: false matrix: wp-versions: [ 'latest' ] #[ '6.1.1', 'latest' ] - php-versions: [ '8.1' ] #[ '7.4', '8.0', '8.1' ] + php-versions: [ '8.1', '8.2', '8.3', '8.4' ] #[ '7.4', '8.0', '8.1' ] # Folder names within the 'tests' folder to run tests in parallel. test-groups: [ - 'EndToEnd/forms/blocks-shortcodes/PageBlockFormCest:testFormBlockWithSitegroundSpeedOptimizerPlugin', - 'EndToEnd/forms/blocks-shortcodes/PageShortcodeFormCest:testFormShortcodeWithSitegroundSpeedOptimizerPlugin', - 'EndToEnd/forms/post-types/PageFormCest:testAddNewPageUsingModalFormWithSitegroundSpeedOptimizerPlugin', + 'EndToEnd/broadcasts/blocks-shortcodes', + 'EndToEnd/broadcasts/import-export', + 'EndToEnd/forms/blocks-shortcodes', + 'EndToEnd/forms/general', + 'EndToEnd/forms/post-types', + 'EndToEnd/general/other', + 'EndToEnd/general/plugin-screens', + 'EndToEnd/integrations/divi-builder', + 'EndToEnd/integrations/divi-theme', + 'EndToEnd/integrations/other', + 'EndToEnd/integrations/wlm', + 'EndToEnd/integrations/woocommerce', + 'EndToEnd/landing-pages', + 'EndToEnd/products', + 'EndToEnd/restrict-content/general', + 'EndToEnd/restrict-content/post-types', + 'EndToEnd/tags', + 'Integration' ] # Steps to install, configure and run tests