| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // Copyright (C) 2014 The Syncthing Authors.
- //
- // This Source Code Form is subject to the terms of the Mozilla Public
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
- // You can obtain one at https://mozilla.org/MPL/2.0/.
- package api
- import (
- "testing"
- "github.com/syncthing/syncthing/lib/config"
- )
- var guiCfg config.GUIConfiguration
- func init() {
- guiCfg.User = "user"
- guiCfg.SetPassword("pass")
- }
- func TestStaticAuthOK(t *testing.T) {
- t.Parallel()
- ok := authStatic("user", "pass", guiCfg)
- if !ok {
- t.Fatalf("should pass auth")
- }
- }
- func TestSimpleAuthUsernameFail(t *testing.T) {
- t.Parallel()
- ok := authStatic("userWRONG", "pass", guiCfg)
- if ok {
- t.Fatalf("should fail auth")
- }
- }
- func TestStaticAuthPasswordFail(t *testing.T) {
- t.Parallel()
- ok := authStatic("user", "passWRONG", guiCfg)
- if ok {
- t.Fatalf("should fail auth")
- }
- }
- func TestFormatOptionalPercentS(t *testing.T) {
- t.Parallel()
- cases := []struct {
- template string
- username string
- expected string
- }{
- {"cn=%s,dc=some,dc=example,dc=com", "username", "cn=username,dc=some,dc=example,dc=com"},
- {"cn=fixedusername,dc=some,dc=example,dc=com", "username", "cn=fixedusername,dc=some,dc=example,dc=com"},
- {"cn=%%s,dc=%s,dc=example,dc=com", "username", "cn=%s,dc=username,dc=example,dc=com"},
- {"cn=%%s,dc=%%s,dc=example,dc=com", "username", "cn=%s,dc=%s,dc=example,dc=com"},
- {"cn=%s,dc=%s,dc=example,dc=com", "username", "cn=username,dc=username,dc=example,dc=com"},
- }
- for _, c := range cases {
- templatedDn := formatOptionalPercentS(c.template, c.username)
- if c.expected != templatedDn {
- t.Fatalf("result should be %s != %s", c.expected, templatedDn)
- }
- }
- }
- func TestEscapeForLDAPFilter(t *testing.T) {
- t.Parallel()
- cases := []struct {
- in string
- out string
- }{
- {"username", `username`},
- {"user(name", `user\28name`},
- {"user)name", `user\29name`},
- {"user\\name", `user\5Cname`},
- {"user*name", `user\2Aname`},
- {"*,CN=asdf", `\2A,CN=asdf`},
- }
- for _, c := range cases {
- res := escapeForLDAPFilter(c.in)
- if c.out != res {
- t.Fatalf("result should be %s != %s", c.out, res)
- }
- }
- }
- func TestEscapeForLDAPDN(t *testing.T) {
- t.Parallel()
- cases := []struct {
- in string
- out string
- }{
- {"username", `username`},
- {"* ,CN=asdf", `*\20\2CCN\3Dasdf`},
- }
- for _, c := range cases {
- res := escapeForLDAPDN(c.in)
- if c.out != res {
- t.Fatalf("result should be %s != %s", c.out, res)
- }
- }
- }
|