"""Permission pattern matching regression tests."""
from __future__ import annotations
from openjiuwen.harness.security.patterns import match_wildcard
def test_match_wildcard_rejects_trailing_newline() -> None:
assert match_wildcard("git status", "git status") is True
assert match_wildcard("git status\n", "git status") is False
assert match_wildcard("git status", "git status *") is True
assert match_wildcard("git status -sb", "git status *") is True
assert match_wildcard("git status\n", "git status *") is False
assert match_wildcard("git status -sb\n", "git status *") is False
def test_match_wildcard_still_rejects_command_injection() -> None:
assert match_wildcard("git status; rm -rf /", "git status *") is False
assert match_wildcard("git status\nrm -rf /", "git status *") is False