fix: GTK-Theme-Validierung entfernt — GTK löst Theme-Namen selbst auf
Die Regex VALID_THEME_NAME blockierte Theme-Namen mit '+' (z.B. catppuccin-mocha-lavender-standard+default). Da GTK den Theme-Namen intern über Standardverzeichnisse auflöst, ist eigene Validierung unnötig und kontraproduktiv.
This commit is contained in:
@@ -62,16 +62,6 @@ class TestLoadConfig:
|
||||
|
||||
assert config.gtk_theme is None
|
||||
|
||||
def test_rejects_gtk_theme_with_path_traversal(self, tmp_path: Path) -> None:
|
||||
toml_file = tmp_path / "moongreet.toml"
|
||||
toml_file.write_text(
|
||||
"[appearance]\n"
|
||||
'gtk-theme = "../../etc/evil"\n'
|
||||
)
|
||||
|
||||
config = load_config(toml_file)
|
||||
|
||||
assert config.gtk_theme is None
|
||||
|
||||
def test_resolves_relative_path_against_config_dir(self, tmp_path: Path) -> None:
|
||||
toml_file = tmp_path / "moongreet.toml"
|
||||
|
||||
+6
-15
@@ -186,27 +186,18 @@ class TestGetUserGtkTheme:
|
||||
|
||||
assert result is None
|
||||
|
||||
def test_handles_interpolation_characters(self, tmp_path: Path) -> None:
|
||||
"""Theme names with % characters are rejected by validation."""
|
||||
def test_passes_theme_with_special_characters(self, tmp_path: Path) -> None:
|
||||
"""Theme names with special characters are passed through to GTK."""
|
||||
gtk_dir = tmp_path / ".config" / "gtk-4.0"
|
||||
gtk_dir.mkdir(parents=True)
|
||||
settings = gtk_dir / "settings.ini"
|
||||
settings.write_text("[Settings]\ngtk-theme-name=My%Theme\n")
|
||||
settings.write_text(
|
||||
"[Settings]\ngtk-theme-name=catppuccin-mocha-lavender-standard+default\n"
|
||||
)
|
||||
|
||||
result = get_user_gtk_theme(config_dir=gtk_dir)
|
||||
|
||||
assert result is None
|
||||
|
||||
def test_rejects_path_traversal_theme_name(self, tmp_path: Path) -> None:
|
||||
"""Theme names with path traversal characters should be rejected."""
|
||||
gtk_dir = tmp_path / ".config" / "gtk-4.0"
|
||||
gtk_dir.mkdir(parents=True)
|
||||
settings = gtk_dir / "settings.ini"
|
||||
settings.write_text("[Settings]\ngtk-theme-name=../../../../etc/evil\n")
|
||||
|
||||
result = get_user_gtk_theme(config_dir=gtk_dir)
|
||||
|
||||
assert result is None
|
||||
assert result == "catppuccin-mocha-lavender-standard+default"
|
||||
|
||||
def test_ignores_symlinked_accountsservice_icon(self, tmp_path: Path) -> None:
|
||||
"""AccountsService icon as symlink should be ignored to prevent traversal."""
|
||||
|
||||
Reference in New Issue
Block a user