Skip to content

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 added the 2.0 label Jul 27, 2023
@gchtr gchtr requested review from jarednova and nlemoine as code owners July 27, 2023 07:27
@gchtr gchtr merged commit 04ea0b3 into 2.x Jul 28, 2023
@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.

3 participants