Skip to content

Refactor filename sanitization logic and expand unit tests#29

Merged
herewithme merged 1 commit intomasterfrom
feature/more-tests-pull-28
Apr 7, 2026
Merged

Refactor filename sanitization logic and expand unit tests#29
herewithme merged 1 commit intomasterfrom
feature/more-tests-pull-28

Conversation

@herewithme
Copy link
Copy Markdown
Member

@herewithme herewithme commented Apr 7, 2026

  • Updated the bea_sanitize_file_name function to improve extension handling, ensuring only the suffix is removed.
  • Enhanced unit tests to cover various filename scenarios, including accented characters, underscores to dashes conversion, and upload-style filenames.
  • Added data providers for better test organization and clarity.

Note

Medium Risk
Changes the filename sanitization output for multi-dot filenames by stripping the extension only when it appears as the final suffix, which could affect stored upload filenames/URLs. Risk is mitigated by significantly expanded unit test coverage across common and edge-case filenames.

Overview
Filename sanitization logic is tightened so the plugin derives the extension via pathinfo() and removes it only as a true end-of-string suffix (avoiding accidental removal of matching substrings in multi-dot names), then reattaches it unchanged.

Unit tests are massively expanded and reorganized using data providers to cover accents/transliteration interactions, underscore/space handling, special character stripping (including @, , ©), UTF-8/non‑Latin names, and multi-dot “fake extension” cases from WordPress core.

Reviewed by Cursor Bugbot for commit d6a38c0. Bugbot is set up for automated code reviews on this repo. Configure here.

- Updated the `bea_sanitize_file_name` function to improve extension handling, ensuring only the suffix is removed.
- Enhanced unit tests to cover various filename scenarios, including accented characters, underscores to dashes conversion, and upload-style filenames.
- Added data providers for better test organization and clarity.
@herewithme herewithme self-assigned this Apr 7, 2026
@herewithme herewithme merged commit d6a38c0 into master Apr 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant