Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.x #2767 Optimize URLHelper methods is_local and is_external #2782

Merged
merged 14 commits into from Jul 28, 2023

Conversation

gchtr
Copy link
Member

@gchtr gchtr commented Jul 27, 2023

Related:

Issue

I added some more tests to check whether the is_local() and is_external() functions work with domains only. I found that they don’t. But I think that intuitively, they should.

Solution

In 8d06cf8, I added an additional check that when the given URL doesn’t have a URL scheme, we add one with // and check the URL like that.

Impact

Better consistency.

Usage Changes

None.

Considerations

None.

Testing

Yes.

mcaskill and others added 13 commits June 8, 2023 17:05
Resolves #2766

Changed:
- Method `is_local()` to find occurrence on URL's hostname instead of the entire URL.
- Method `is_external()` to use `is_local()`.
This will resolve issues where the current host is a subdomain or substring of the URL's host.
Replaced with `str_starts_with()` to check for the double slash and `parse_url()` to check for the scheme.

This will resolve issues where `http` or `//` might be a substring of the URL's path.
if `wp_parse_url()` fails to extract or does not find a host name in the given URL parameter, presume that the parameter might be a host name itself, such as `example.org` (see unit test).
@gchtr gchtr merged commit 04ea0b3 into 2.x Jul 28, 2023
52 checks passed
@gchtr gchtr deleted the 2.x-fix-url-helper-is-external-updates branch July 28, 2023 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants