feat(aether): initial commit – self-hosted Cloud, Phasen 1–7
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>
This commit is contained in:
commit
31a027c93a
225 files changed
+38042
No files matched your search
@@ -0,0 +1,22 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user