Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add tests covering more cases for Uri.resolve #62073

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

Closed
stof wants to merge 1 commit into dart-lang:main from stof:uri_resolve_tests

Conversation

@stof
Copy link
Contributor

@stof stof commented Nov 23, 2025

As part of the scssphp project (which is a PHP port of dart-sass), I had to implement the Uri.resolve API of Dart in PHP (as this API does not implement only the RFC3986 resolution but more cases). My initial work used a testsuite ported from the Dart SDK tests but collecting code coverage on my PHP code revealed that those tests were far from covering all non-RFC3986 cases. It missed several cases:

  • schemeless base URIs (for which the resolution is derived from the RFC3986 behavior)
  • base URIs with a scheme but not authority
  • base URIs with an empty path
  • base URIs being an absolute path
  • base URIs with only a query string
  • base URIs being a relative path, resolving a reference that is not a relative path

This is adding tests covering all those cases.


  • I’ve reviewed the contributor guide and applied the relevant portions to this PR.
Contribution guidelines:
  • See our contributor guide for general expectations for PRs.
  • Larger or significant changes should be discussed in an issue before creating a PR.
  • Contributions to our repos should follow the Dart style guide and use dart format.

Note that this repository uses Gerrit for code reviews. Your pull request will be automatically converted into a Gerrit CL and a link to the CL written into this PR. The review will happen on Gerrit but you can also push additional commits to this PR to update the code review.

Copy link

Thank you for your contribution! This project uses Gerrit for code reviews. Your pull request has automatically been converted into a code review at:

https://dart-review.googlesource.com/c/sdk/+/464040

Please wait for a developer to review your code review at the above link; you can speed up the review if you sign into Gerrit and manually add a reviewer that has recently worked on the relevant code. See CONTRIBUTING.md to learn how to upload changes to Gerrit directly.

Additional commits pushed to this PR will update both the PR and the corresponding Gerrit CL. After the review is complete on the CL, your reviewer will merge the CL (automatically closing this PR).

Copy link
Member

lrhn commented Nov 25, 2025

ACK. The more supported cases are resolution against a base that is not a full URI, just a URI reference.

Some choices were made to support those, like allowing a resolution against a relative path to end up with leading ../.

Copy link
Contributor Author

stof commented Nov 25, 2025

Note that I'm not doing any choice there. Those are tests covering the existing behavior of the implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

AltStyle によって変換されたページ (->オリジナル) /