From 866be8ac668ef8a629ff3232aa113bff34a8cbd4 Mon Sep 17 00:00:00 2001
From: Henrique Mouta
Date: Thu, 13 Mar 2025 10:51:37 +0000
Subject: [PATCH 1/5] Move the settings page under the Parse.ly menu
---
src/Telemetry/telemetry-init.php | 2 +-
src/UI/class-dashboard-page.php | 13 +++++--------
src/UI/class-settings-page.php | 7 ++++---
src/UI/settings-page.php | 2 ++
src/class-parsely.php | 2 +-
src/css/admin-settings.scss | 2 +-
wp-parsely.php | 7 ++++---
7 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/src/Telemetry/telemetry-init.php b/src/Telemetry/telemetry-init.php
index 146607117d..fe3e48f77a 100644
--- a/src/Telemetry/telemetry-init.php
+++ b/src/Telemetry/telemetry-init.php
@@ -52,7 +52,7 @@ function (): void {
),
// Setting events.
array(
- 'action_hook' => 'load-settings_page_parsely',
+ 'action_hook' => 'load-parse-ly_page_parsely-settings',
'callable' => 'Parsely\Telemetry\record_settings_page_loaded',
),
array(
diff --git a/src/UI/class-dashboard-page.php b/src/UI/class-dashboard-page.php
index 4ae3eb05b8..4f2b1c9ffd 100644
--- a/src/UI/class-dashboard-page.php
+++ b/src/UI/class-dashboard-page.php
@@ -175,14 +175,11 @@ public function add_dashboard_page_to_menu(): void {
'__return_null'
);
- add_submenu_page(
- 'parsely-dashboard-page',
- 'Parse.ly Settings',
- 'Settings',
- Parsely::CAPABILITY, // phpcs:ignore WordPress.WP.Capabilities.Undetermined
- 'parsely-dashboard-page#/settings',
- '__return_null'
- );
+ /**
+ * Settings submenu is registered in add_settings_sub_menu() at src/UI/class-settings-page.php.
+ *
+ * @see Settings_Page::add_settings_sub_menu()
+ */
}
/**
diff --git a/src/UI/class-settings-page.php b/src/UI/class-settings-page.php
index 51ddeeedf6..2715c7958c 100644
--- a/src/UI/class-settings-page.php
+++ b/src/UI/class-settings-page.php
@@ -160,7 +160,7 @@ public function run(): void {
* @param string|null $hook_suffix The current page being loaded.
*/
public function enqueue_settings_assets( ?string $hook_suffix ): void {
- if ( ! is_string( $hook_suffix ) || 'settings_page_parsely' !== $hook_suffix ) {
+ if ( ! is_string( $hook_suffix ) || $this->hook_suffix !== $hook_suffix ) {
return;
}
@@ -190,9 +190,10 @@ public function enqueue_settings_assets( ?string $hook_suffix ): void {
* Adds the Parse.ly settings page in WordPress settings menu.
*/
public function add_settings_sub_menu(): void {
- $suffix = add_options_page(
+ $suffix = add_submenu_page(
+ 'parsely-dashboard-page',
__( 'Parse.ly Settings', 'wp-parsely' ),
- __( 'Parse.ly', 'wp-parsely' ),
+ __( 'Settings', 'wp-parsely' ),
Parsely::CAPABILITY, // phpcs:ignore WordPress.WP.Capabilities.Undetermined
Parsely::MENU_SLUG,
array( $this, 'display_settings' )
diff --git a/src/UI/settings-page.php b/src/UI/settings-page.php
index da8639354c..f079ddd6dc 100644
--- a/src/UI/settings-page.php
+++ b/src/UI/settings-page.php
@@ -38,6 +38,8 @@
+
+
show_setting_tabs(); ?>
diff --git a/tests/Integration/UI/SettingsPageTest.php b/tests/Integration/UI/SettingsPageTest.php
index 4216ebe1b8..b61ee3f248 100644
--- a/tests/Integration/UI/SettingsPageTest.php
+++ b/tests/Integration/UI/SettingsPageTest.php
@@ -569,7 +569,7 @@ public function test_get_settings_url_with_and_without_blog_id(): void {
);
self::assertSame(
- 'http://' . self::VALID_SITE_ID . '/vip/wp-admin/options-general.php?page=parsely',
+ 'http://' . self::VALID_SITE_ID . '/vip/wp-admin/admin.php?page=parsely-settings',
self::$parsely::get_settings_url( $subsite_blog_id ),
'The URL did not match when passing $subsite_blog_id.'
);
@@ -577,7 +577,7 @@ public function test_get_settings_url_with_and_without_blog_id(): void {
// phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.switch_to_blog_switch_to_blog
switch_to_blog( $subsite_blog_id );
self::assertSame(
- 'http://' . self::VALID_SITE_ID . '/vip/wp-admin/options-general.php?page=parsely',
+ 'http://' . self::VALID_SITE_ID . '/vip/wp-admin/admin.php?page=parsely-settings',
self::$parsely::get_settings_url(),
'The URL did not match the subsite without passing a $blog_id param.'
);
From 5af1f8b2e4bac08d6dc28b71132104e084327c73 Mon Sep 17 00:00:00 2001
From: Henrique Mouta
Date: Thu, 13 Mar 2025 11:24:26 +0000
Subject: [PATCH 3/5] Fix tests and mentions to the old settings URL
---
tests/Integration/UI/SettingsPageTest.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/Integration/UI/SettingsPageTest.php b/tests/Integration/UI/SettingsPageTest.php
index b61ee3f248..a44d5cb962 100644
--- a/tests/Integration/UI/SettingsPageTest.php
+++ b/tests/Integration/UI/SettingsPageTest.php
@@ -15,7 +15,7 @@
use const Parsely\PARSELY_FILE;
-const PARSELY_SETTINGS_URL = 'http://example.org/wp-admin/options-general.php?page=parsely';
+const PARSELY_SETTINGS_URL = 'http://example.org/wp-admin/admin.php?page=parsely-settings';
/**
* Integration Tests for the plugin's wp-admin Settings page.
From 9e60c7defbfa0c8bf8c8a70ee9ae219570631b69 Mon Sep 17 00:00:00 2001
From: Henrique Mouta
Date: Thu, 13 Mar 2025 12:09:46 +0000
Subject: [PATCH 4/5] Rebuild assets
---
build/admin-settings-rtl.css | 2 +-
build/admin-settings.asset.php | 2 +-
build/admin-settings.css | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/admin-settings-rtl.css b/build/admin-settings-rtl.css
index 992fd4cfe5..84370ecdbe 100644
--- a/build/admin-settings-rtl.css
+++ b/build/admin-settings-rtl.css
@@ -1 +1 @@
-#wp-parsely-dashboard-widget,.components-button[aria-controls="wp-parsely-block-editor-sidebar:wp-parsely-content-helper"],.editor-post-excerpt,.parsely-dashboard-container,.settings_page_parsely,.wp-parsely-block-overlay,.wp-parsely-content-helper,.wp-parsely-excerpt-generator,.wp-parsely-panel,.wp-parsely-popover,.wp-parsely-preview-editor,.wp-parsely-smart-linking-close-dialog,.wp-parsely-smart-linking-review-modal,.wp-parsely-suggested-title-modal,.wp-parsely-traffic-boost-add-new-link-popover,.wp-parsely-traffic-boost-preview-settings-popover{--base-font:"source-sans-pro",arial,sans-serif;--numeric-font:"ff-din-round-web",sans-serif;--parsely-green-components:107,42%,46%;--parsely-green:hsl(var(--parsely-green-components));--parsely-green-10:#c7ecb1;--parsely-green-65:#2a691b;--gray-200:#f7f8f9;--gray-300:#edeeef;--gray-400:#d7dbdf;--gray-500:#959da5;--gray-600:#586069;--gray-700:#444d56;--gray-900:#24292e;--blue-500:#44a8e5;--blue-550:#2596db;--green-500:#7bc01b;--green-900:#3d6307;--ref-direct:205,13%,52%;--ref-internal:161,91%,41%;--ref-social:210,72%,41%;--ref-search:42,100%,50%;--ref-other:3,76%,58%;--base-text:var(--gray-900);--base-text-2:var(--gray-600);--base-3:var(--gray-400);--border:var(--gray-400);--data:var(--green-500);--control:var(--blue-500);--grid-unit-5:0.25rem;--grid-unit-10:0.5rem;--grid-unit-15:0.75rem;--grid-unit-20:1rem;--grid-unit-25:1.25rem;--grid-unit-30:1.5rem;--grid-unit-40:2rem;--grid-unit-50:2.5rem;--grid-unit-60:3rem;--font-size--smaller:0.688rem;--font-size--small:0.75rem;--font-size--medium:0.875rem;--font-size--large:1rem;--font-size--extra-large:1.2rem;--font-size--bigger:2rem;--dashboard-width:64rem;--black:#000;--dashboard-accent:#b9f16b;--gray-350:#e1e3e5;--sidebar-black:#1e1e1e;--sidebar-white:#f0f0f0;--traffic-boost-header-background:rgba(56,88,233,.08);--white:#fff}.settings_page_parsely{--padding-default:15px}.settings_page_parsely fieldset.user-role-permissions label{margin-left:1rem!important}.settings_page_parsely .disabled-before-posting label:not(.prevent-disable),.settings_page_parsely .disabled-before-posting p,.settings_page_parsely .disabled-before-posting th,.settings_page_parsely fieldset:disabled label:not(.prevent-disable),.settings_page_parsely fieldset:disabled p,.settings_page_parsely fieldset:disabled th,.settings_page_parsely tr:has(fieldset:disabled) label:not(.prevent-disable),.settings_page_parsely tr:has(fieldset:disabled) p,.settings_page_parsely tr:has(fieldset:disabled) th{color:var(--gray-500);cursor:default}.settings_page_parsely #track-post-types{max-width:550px;width:100%}.settings_page_parsely #track-post-types td,.settings_page_parsely #track-post-types th{display:table-cell;padding:var(--padding-default);text-align:center;vertical-align:middle}.settings_page_parsely #track-post-types td{padding:0}.settings_page_parsely #track-post-types td label{display:inline-block;margin:0!important;padding-bottom:var(--padding-default);padding-top:var(--padding-default);width:100%}.settings_page_parsely #track-post-types thead th:nth-child(3){word-break:break-word}.settings_page_parsely .managed-option-badge{border:.0625rem solid var(--green-500);border-radius:.25rem;color:var(--green-500)!important;display:inline-block;font-size:.625rem;padding:.125rem .25rem;text-decoration:none}.settings_page_parsely a.managed-option-badge{cursor:pointer!important}.settings_page_parsely a.managed-option-badge:hover{background-color:var(--green-500);color:#fff!important}@media only screen and (max-width:380px){.settings_page_parsely #track-post-types td,.settings_page_parsely #track-post-types th{padding-right:10px;padding-left:10px}.settings_page_parsely #track-post-types th:first-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
+#wp-parsely-dashboard-widget,.components-button[aria-controls="wp-parsely-block-editor-sidebar:wp-parsely-content-helper"],.editor-post-excerpt,.parsely-dashboard-container,.settings_page_parsely,.wp-parsely-block-overlay,.wp-parsely-content-helper,.wp-parsely-excerpt-generator,.wp-parsely-panel,.wp-parsely-popover,.wp-parsely-preview-editor,.wp-parsely-smart-linking-close-dialog,.wp-parsely-smart-linking-review-modal,.wp-parsely-suggested-title-modal,.wp-parsely-traffic-boost-add-new-link-popover,.wp-parsely-traffic-boost-preview-settings-popover{--base-font:"source-sans-pro",arial,sans-serif;--numeric-font:"ff-din-round-web",sans-serif;--parsely-green-components:107,42%,46%;--parsely-green:hsl(var(--parsely-green-components));--parsely-green-10:#c7ecb1;--parsely-green-65:#2a691b;--gray-200:#f7f8f9;--gray-300:#edeeef;--gray-400:#d7dbdf;--gray-500:#959da5;--gray-600:#586069;--gray-700:#444d56;--gray-900:#24292e;--blue-500:#44a8e5;--blue-550:#2596db;--green-500:#7bc01b;--green-900:#3d6307;--ref-direct:205,13%,52%;--ref-internal:161,91%,41%;--ref-social:210,72%,41%;--ref-search:42,100%,50%;--ref-other:3,76%,58%;--base-text:var(--gray-900);--base-text-2:var(--gray-600);--base-3:var(--gray-400);--border:var(--gray-400);--data:var(--green-500);--control:var(--blue-500);--grid-unit-5:0.25rem;--grid-unit-10:0.5rem;--grid-unit-15:0.75rem;--grid-unit-20:1rem;--grid-unit-25:1.25rem;--grid-unit-30:1.5rem;--grid-unit-40:2rem;--grid-unit-50:2.5rem;--grid-unit-60:3rem;--font-size--smaller:0.688rem;--font-size--small:0.75rem;--font-size--medium:0.875rem;--font-size--large:1rem;--font-size--extra-large:1.2rem;--font-size--bigger:2rem;--dashboard-width:64rem;--black:#000;--dashboard-accent:#b9f16b;--gray-350:#e1e3e5;--sidebar-black:#1e1e1e;--sidebar-white:#f0f0f0;--traffic-boost-header-background:rgba(56,88,233,.08);--white:#fff}.parse-ly_page_parsely-settings{--padding-default:15px}.parse-ly_page_parsely-settings fieldset.user-role-permissions label{margin-left:1rem!important}.parse-ly_page_parsely-settings .disabled-before-posting label:not(.prevent-disable),.parse-ly_page_parsely-settings .disabled-before-posting p,.parse-ly_page_parsely-settings .disabled-before-posting th,.parse-ly_page_parsely-settings fieldset:disabled label:not(.prevent-disable),.parse-ly_page_parsely-settings fieldset:disabled p,.parse-ly_page_parsely-settings fieldset:disabled th,.parse-ly_page_parsely-settings tr:has(fieldset:disabled) label:not(.prevent-disable),.parse-ly_page_parsely-settings tr:has(fieldset:disabled) p,.parse-ly_page_parsely-settings tr:has(fieldset:disabled) th{color:var(--gray-500);cursor:default}.parse-ly_page_parsely-settings #track-post-types{max-width:550px;width:100%}.parse-ly_page_parsely-settings #track-post-types td,.parse-ly_page_parsely-settings #track-post-types th{display:table-cell;padding:var(--padding-default);text-align:center;vertical-align:middle}.parse-ly_page_parsely-settings #track-post-types td{padding:0}.parse-ly_page_parsely-settings #track-post-types td label{display:inline-block;margin:0!important;padding-bottom:var(--padding-default);padding-top:var(--padding-default);width:100%}.parse-ly_page_parsely-settings #track-post-types thead th:nth-child(3){word-break:break-word}.parse-ly_page_parsely-settings .managed-option-badge{border:.0625rem solid var(--green-500);border-radius:.25rem;color:var(--green-500)!important;display:inline-block;font-size:.625rem;padding:.125rem .25rem;text-decoration:none}.parse-ly_page_parsely-settings a.managed-option-badge{cursor:pointer!important}.parse-ly_page_parsely-settings a.managed-option-badge:hover{background-color:var(--green-500);color:#fff!important}@media only screen and (max-width:380px){.parse-ly_page_parsely-settings #track-post-types td,.parse-ly_page_parsely-settings #track-post-types th{padding-right:10px;padding-left:10px}.parse-ly_page_parsely-settings #track-post-types th:first-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
diff --git a/build/admin-settings.asset.php b/build/admin-settings.asset.php
index c5011e13a1..a818ff382e 100644
--- a/build/admin-settings.asset.php
+++ b/build/admin-settings.asset.php
@@ -1 +1 @@
- array(), 'version' => '2d737052835da4af032b');
+ array(), 'version' => '362715ca3d611fafb6ab');
diff --git a/build/admin-settings.css b/build/admin-settings.css
index 7fbefc2d85..57d7800194 100644
--- a/build/admin-settings.css
+++ b/build/admin-settings.css
@@ -1 +1 @@
-#wp-parsely-dashboard-widget,.components-button[aria-controls="wp-parsely-block-editor-sidebar:wp-parsely-content-helper"],.editor-post-excerpt,.parsely-dashboard-container,.settings_page_parsely,.wp-parsely-block-overlay,.wp-parsely-content-helper,.wp-parsely-excerpt-generator,.wp-parsely-panel,.wp-parsely-popover,.wp-parsely-preview-editor,.wp-parsely-smart-linking-close-dialog,.wp-parsely-smart-linking-review-modal,.wp-parsely-suggested-title-modal,.wp-parsely-traffic-boost-add-new-link-popover,.wp-parsely-traffic-boost-preview-settings-popover{--base-font:"source-sans-pro",arial,sans-serif;--numeric-font:"ff-din-round-web",sans-serif;--parsely-green-components:107,42%,46%;--parsely-green:hsl(var(--parsely-green-components));--parsely-green-10:#c7ecb1;--parsely-green-65:#2a691b;--gray-200:#f7f8f9;--gray-300:#edeeef;--gray-400:#d7dbdf;--gray-500:#959da5;--gray-600:#586069;--gray-700:#444d56;--gray-900:#24292e;--blue-500:#44a8e5;--blue-550:#2596db;--green-500:#7bc01b;--green-900:#3d6307;--ref-direct:205,13%,52%;--ref-internal:161,91%,41%;--ref-social:210,72%,41%;--ref-search:42,100%,50%;--ref-other:3,76%,58%;--base-text:var(--gray-900);--base-text-2:var(--gray-600);--base-3:var(--gray-400);--border:var(--gray-400);--data:var(--green-500);--control:var(--blue-500);--grid-unit-5:0.25rem;--grid-unit-10:0.5rem;--grid-unit-15:0.75rem;--grid-unit-20:1rem;--grid-unit-25:1.25rem;--grid-unit-30:1.5rem;--grid-unit-40:2rem;--grid-unit-50:2.5rem;--grid-unit-60:3rem;--font-size--smaller:0.688rem;--font-size--small:0.75rem;--font-size--medium:0.875rem;--font-size--large:1rem;--font-size--extra-large:1.2rem;--font-size--bigger:2rem;--dashboard-width:64rem;--black:#000;--dashboard-accent:#b9f16b;--gray-350:#e1e3e5;--sidebar-black:#1e1e1e;--sidebar-white:#f0f0f0;--traffic-boost-header-background:rgba(56,88,233,.08);--white:#fff}.settings_page_parsely{--padding-default:15px}.settings_page_parsely fieldset.user-role-permissions label{margin-right:1rem!important}.settings_page_parsely .disabled-before-posting label:not(.prevent-disable),.settings_page_parsely .disabled-before-posting p,.settings_page_parsely .disabled-before-posting th,.settings_page_parsely fieldset:disabled label:not(.prevent-disable),.settings_page_parsely fieldset:disabled p,.settings_page_parsely fieldset:disabled th,.settings_page_parsely tr:has(fieldset:disabled) label:not(.prevent-disable),.settings_page_parsely tr:has(fieldset:disabled) p,.settings_page_parsely tr:has(fieldset:disabled) th{color:var(--gray-500);cursor:default}.settings_page_parsely #track-post-types{max-width:550px;width:100%}.settings_page_parsely #track-post-types td,.settings_page_parsely #track-post-types th{display:table-cell;padding:var(--padding-default);text-align:center;vertical-align:middle}.settings_page_parsely #track-post-types td{padding:0}.settings_page_parsely #track-post-types td label{display:inline-block;margin:0!important;padding-bottom:var(--padding-default);padding-top:var(--padding-default);width:100%}.settings_page_parsely #track-post-types thead th:nth-child(3){word-break:break-word}.settings_page_parsely .managed-option-badge{border:.0625rem solid var(--green-500);border-radius:.25rem;color:var(--green-500)!important;display:inline-block;font-size:.625rem;padding:.125rem .25rem;text-decoration:none}.settings_page_parsely a.managed-option-badge{cursor:pointer!important}.settings_page_parsely a.managed-option-badge:hover{background-color:var(--green-500);color:#fff!important}@media only screen and (max-width:380px){.settings_page_parsely #track-post-types td,.settings_page_parsely #track-post-types th{padding-left:10px;padding-right:10px}.settings_page_parsely #track-post-types th:first-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
+#wp-parsely-dashboard-widget,.components-button[aria-controls="wp-parsely-block-editor-sidebar:wp-parsely-content-helper"],.editor-post-excerpt,.parsely-dashboard-container,.settings_page_parsely,.wp-parsely-block-overlay,.wp-parsely-content-helper,.wp-parsely-excerpt-generator,.wp-parsely-panel,.wp-parsely-popover,.wp-parsely-preview-editor,.wp-parsely-smart-linking-close-dialog,.wp-parsely-smart-linking-review-modal,.wp-parsely-suggested-title-modal,.wp-parsely-traffic-boost-add-new-link-popover,.wp-parsely-traffic-boost-preview-settings-popover{--base-font:"source-sans-pro",arial,sans-serif;--numeric-font:"ff-din-round-web",sans-serif;--parsely-green-components:107,42%,46%;--parsely-green:hsl(var(--parsely-green-components));--parsely-green-10:#c7ecb1;--parsely-green-65:#2a691b;--gray-200:#f7f8f9;--gray-300:#edeeef;--gray-400:#d7dbdf;--gray-500:#959da5;--gray-600:#586069;--gray-700:#444d56;--gray-900:#24292e;--blue-500:#44a8e5;--blue-550:#2596db;--green-500:#7bc01b;--green-900:#3d6307;--ref-direct:205,13%,52%;--ref-internal:161,91%,41%;--ref-social:210,72%,41%;--ref-search:42,100%,50%;--ref-other:3,76%,58%;--base-text:var(--gray-900);--base-text-2:var(--gray-600);--base-3:var(--gray-400);--border:var(--gray-400);--data:var(--green-500);--control:var(--blue-500);--grid-unit-5:0.25rem;--grid-unit-10:0.5rem;--grid-unit-15:0.75rem;--grid-unit-20:1rem;--grid-unit-25:1.25rem;--grid-unit-30:1.5rem;--grid-unit-40:2rem;--grid-unit-50:2.5rem;--grid-unit-60:3rem;--font-size--smaller:0.688rem;--font-size--small:0.75rem;--font-size--medium:0.875rem;--font-size--large:1rem;--font-size--extra-large:1.2rem;--font-size--bigger:2rem;--dashboard-width:64rem;--black:#000;--dashboard-accent:#b9f16b;--gray-350:#e1e3e5;--sidebar-black:#1e1e1e;--sidebar-white:#f0f0f0;--traffic-boost-header-background:rgba(56,88,233,.08);--white:#fff}.parse-ly_page_parsely-settings{--padding-default:15px}.parse-ly_page_parsely-settings fieldset.user-role-permissions label{margin-right:1rem!important}.parse-ly_page_parsely-settings .disabled-before-posting label:not(.prevent-disable),.parse-ly_page_parsely-settings .disabled-before-posting p,.parse-ly_page_parsely-settings .disabled-before-posting th,.parse-ly_page_parsely-settings fieldset:disabled label:not(.prevent-disable),.parse-ly_page_parsely-settings fieldset:disabled p,.parse-ly_page_parsely-settings fieldset:disabled th,.parse-ly_page_parsely-settings tr:has(fieldset:disabled) label:not(.prevent-disable),.parse-ly_page_parsely-settings tr:has(fieldset:disabled) p,.parse-ly_page_parsely-settings tr:has(fieldset:disabled) th{color:var(--gray-500);cursor:default}.parse-ly_page_parsely-settings #track-post-types{max-width:550px;width:100%}.parse-ly_page_parsely-settings #track-post-types td,.parse-ly_page_parsely-settings #track-post-types th{display:table-cell;padding:var(--padding-default);text-align:center;vertical-align:middle}.parse-ly_page_parsely-settings #track-post-types td{padding:0}.parse-ly_page_parsely-settings #track-post-types td label{display:inline-block;margin:0!important;padding-bottom:var(--padding-default);padding-top:var(--padding-default);width:100%}.parse-ly_page_parsely-settings #track-post-types thead th:nth-child(3){word-break:break-word}.parse-ly_page_parsely-settings .managed-option-badge{border:.0625rem solid var(--green-500);border-radius:.25rem;color:var(--green-500)!important;display:inline-block;font-size:.625rem;padding:.125rem .25rem;text-decoration:none}.parse-ly_page_parsely-settings a.managed-option-badge{cursor:pointer!important}.parse-ly_page_parsely-settings a.managed-option-badge:hover{background-color:var(--green-500);color:#fff!important}@media only screen and (max-width:380px){.parse-ly_page_parsely-settings #track-post-types td,.parse-ly_page_parsely-settings #track-post-types th{padding-left:10px;padding-right:10px}.parse-ly_page_parsely-settings #track-post-types th:first-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
From 74d6bd4dca881074868c7a2959b81ca4e8b3c6a1 Mon Sep 17 00:00:00 2001
From: Henrique Mouta
Date: Fri, 14 Mar 2025 09:47:25 +0000
Subject: [PATCH 5/5] Fix E2E tests using obsolete settings path
---
tests/e2e/specs/activation-flow.spec.ts | 4 ++--
tests/e2e/specs/browse-logo-button.spec.ts | 2 +-
tests/e2e/specs/front-end-metadata.spec.ts | 4 ++--
tests/e2e/specs/plugin-action-link.spec.ts | 2 +-
tests/e2e/specs/settings-track-post-types-as.spec.ts | 2 +-
tests/e2e/utils.ts | 2 +-
6 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/e2e/specs/activation-flow.spec.ts b/tests/e2e/specs/activation-flow.spec.ts
index b918b602cb..d371f7cc34 100644
--- a/tests/e2e/specs/activation-flow.spec.ts
+++ b/tests/e2e/specs/activation-flow.spec.ts
@@ -30,7 +30,7 @@ test.describe( 'Activation flow', (): void => {
await setSiteKeys( page, '', '' );
- await admin.visitAdminPage( '/options-general.php?page=parsely' );
+ await admin.visitAdminPage( '/admin.php?page=parsely-settings' );
const errorMessage = page.getByText(
'The Parse.ly plugin is not active. You need to provide your Parse.ly Dash Site ID before things get cooking.',
@@ -52,7 +52,7 @@ test.describe( 'Activation flow', (): void => {
test( 'Should present a settings page that behaves as expected', async ( { admin } ): Promise => {
const page = admin.page;
- await admin.visitAdminPage( '/options-general.php?page=parsely' );
+ await admin.visitAdminPage( '/admin.php?page=parsely-settings' );
// Initialize locators.
const basicTab = page.getByRole( 'link', { name: 'Basic' } );
diff --git a/tests/e2e/specs/browse-logo-button.spec.ts b/tests/e2e/specs/browse-logo-button.spec.ts
index 00075bdde5..4c94195a40 100644
--- a/tests/e2e/specs/browse-logo-button.spec.ts
+++ b/tests/e2e/specs/browse-logo-button.spec.ts
@@ -44,7 +44,7 @@ test.describe( 'Browse for logo button', () => {
* @since 3.17.0 Migrated to Playwright.
*/
test.beforeEach( async ( { admin } ) => {
- await admin.visitAdminPage( '/options-general.php?page=parsely' );
+ await admin.visitAdminPage( '/admin.php?page=parsely-settings' );
await admin.page.getByRole( 'button', { name: 'Browse' } ).click();
} );
diff --git a/tests/e2e/specs/front-end-metadata.spec.ts b/tests/e2e/specs/front-end-metadata.spec.ts
index 42fd5feafb..91d33160f6 100644
--- a/tests/e2e/specs/front-end-metadata.spec.ts
+++ b/tests/e2e/specs/front-end-metadata.spec.ts
@@ -35,7 +35,7 @@ test.describe( 'Front end metadata insertion', () => {
await setSiteKeys( page, VALID_SITE_ID, '' );
// Activate tracking for logged-in users.
- await page.goto( '/wp-admin/options-general.php?page=parsely' );
+ await page.goto( '/wp-admin/admin.php?page=parsely-settings' );
await page.getByLabel( 'Yes, track logged-in users.' ).click();
await page.getByRole( 'button', { name: 'Save Changes' } ).click();
} );
@@ -183,7 +183,7 @@ class Utils {
async setMetadataFormat( format: string ) {
const page = this.admin.page;
- await this.admin.visitAdminPage( '/options-general.php?page=parsely' );
+ await this.admin.visitAdminPage( '/admin.php?page=parsely-settings' );
await page.locator( `#meta_type_${ format }` ).click();
await page.getByRole( 'button', { name: 'Save Changes' } ).click();
diff --git a/tests/e2e/specs/plugin-action-link.spec.ts b/tests/e2e/specs/plugin-action-link.spec.ts
index 2844c1cc4a..1e3198320c 100644
--- a/tests/e2e/specs/plugin-action-link.spec.ts
+++ b/tests/e2e/specs/plugin-action-link.spec.ts
@@ -25,7 +25,7 @@ test.describe( 'The plugin\'s entry in the WordPress Plugins page', () => {
await page.locator( '#the-list' ).getByRole( 'link', { name: 'Settings' } ).click();
// Check loaded page's URL and heading.
- await page.waitForURL( '**/wp-admin/options-general.php?page=parsely' );
+ await page.waitForURL( '**/wp-admin/admin.php?page=parsely-settings' );
await expect(
page.getByText( 'Parse.ly Settings', { exact: true } )
).toBeVisible();
diff --git a/tests/e2e/specs/settings-track-post-types-as.spec.ts b/tests/e2e/specs/settings-track-post-types-as.spec.ts
index 710fa0547a..5f0d517664 100644
--- a/tests/e2e/specs/settings-track-post-types-as.spec.ts
+++ b/tests/e2e/specs/settings-track-post-types-as.spec.ts
@@ -219,7 +219,7 @@ class Utils {
* @since 3.17.0 Migrated to Playwright.
*/
async activateRecrawlSection(): Promise {
- await this.page.goto( '/wp-admin/options-general.php?page=parsely' );
+ await this.page.goto( '/wp-admin/admin.php?page=parsely-settings' );
await this.page.click( '.recrawl-section-tab' );
}
diff --git a/tests/e2e/utils.ts b/tests/e2e/utils.ts
index 116404eb8e..6e54d95202 100644
--- a/tests/e2e/utils.ts
+++ b/tests/e2e/utils.ts
@@ -27,7 +27,7 @@ export const VALID_API_SECRET = 'valid_api_secret';
export const setSiteKeys = async (
page: Page, siteId: string, apiSecret: string, bypassAPIValidation: boolean = true
): Promise => {
- await page.goto( 'wp-admin/options-general.php?page=parsely' + ( bypassAPIValidation ? '&e2e_parsely_skip_api_validate=y' : '' ) );
+ await page.goto( 'wp-admin/admin.php?page=parsely-settings' + ( bypassAPIValidation ? '&e2e_parsely_skip_api_validate=y' : '' ) );
await page.getByLabel( 'Site ID (required)' ).fill( siteId );
await page.getByLabel( 'API Secret' ).fill( apiSecret );