Go-Backend (chi, pgx, golang-migrate) + React/TS-Frontend als PWA. Enthalten: Auth inkl. OIDC, Dateien mit Versionen und Papierkorb, Freigaben (Links + intern), WebDAV, Gruppenordner, Admin/Theming, Volltextsuche mit OCR, eigener PDF-Betrachter und WOPI-Office (Collabora/OnlyOffice). Nicht im Repo: deploy/.env (Sitzungsschlüssel, DB- und Admin-Passwort) sowie alle Daten- und Build-Verzeichnisse – siehe .gitignore. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 lines
654 B
Go
23 lines
654 B
Go
package files
|
|
|
|
import "testing"
|
|
|
|
// Die Platzhalter von LIKE gehören nicht dem Nutzer: Wer nach "%" sucht, meint
|
|
// ein Prozentzeichen. Ohne Entschärfung fände "%e" alles mit einem "e" darin.
|
|
func TestEscapeLike(t *testing.T) {
|
|
cases := map[string]string{
|
|
"rechnung": `rechnung`,
|
|
"100%": `100\%`,
|
|
"a_b": `a\_b`,
|
|
`c:\pfad`: `c:\\pfad`,
|
|
// Der Backslash muss zuerst ersetzt werden, sonst verdoppelt der
|
|
// nächste Durchgang die eben gesetzten Fluchtzeichen wieder.
|
|
`50%\`: `50\%\\`,
|
|
}
|
|
for in, want := range cases {
|
|
if got := escapeLike(in); got != want {
|
|
t.Errorf("escapeLike(%q) = %q, want %q", in, got, want)
|
|
}
|
|
}
|
|
}
|