1/*2Maddy Mail Server - Composable all-in-one email server.3Copyright © 2019-2020 Max Mazurov <fox.cpp@disroot.org>, Maddy Mail Server contributors45This program is free software: you can redistribute it and/or modify6it under the terms of the GNU General Public License as published by7the Free Software Foundation, either version 3 of the License, or8(at your option) any later version.910This program is distributed in the hope that it will be useful,11but WITHOUT ANY WARRANTY; without even the implied warranty of12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the13GNU General Public License for more details.1415You should have received a copy of the GNU General Public License16along with this program. If not, see <https://www.gnu.org/licenses/>.17*/1819package pass_table2021import (22 "testing"2324 "github.com/foxcpp/maddy/framework/config"25 "github.com/foxcpp/maddy/internal/testutils"26)2728func TestAuth_AuthPlain(t *testing.T) {29 addSHA256()3031 mod, err := New("pass_table", "", nil, []string{"dummy"})32 if err != nil {33 t.Fatal(err)34 }35 err = mod.Init(config.NewMap(nil, config.Node{36 Children: []config.Node{},37 }))38 if err != nil {39 t.Fatal(err)40 }41 a := mod.(*Auth)42 a.table = testutils.Table{43 M: map[string]string{44 "foxcpp": "sha256:U0FMVA==:8PDRAgaUqaLSk34WpYniXjaBgGM93Lc6iF4pw2slthw=",45 "not-foxcpp": "bcrypt:$2y$10$4tEJtJ6dApmhETg8tJ4WHOeMtmYXQwmHDKIyfg09Bw1F/smhLjlaa",46 "not-foxcpp-2": "argon2:1:8:1:U0FBQUFBTFQ=:KHUshl3DcpHR3AoVd28ZeBGmZ1Fj1gwJgNn98Ia8DAvGHqI0BvFOMJPxtaAfO8F+qomm2O3h0P0yV50QGwXI/Q==",47 },48 }4950 check := func(user, pass string, ok bool) {51 t.Helper()5253 err := a.AuthPlain(user, pass)54 if (err == nil) != ok {55 t.Errorf("ok=%v, err: %v", ok, err)56 }57 }5859 check("foxcpp", "password", true)60 check("foxcpp", "different-password", false)61 check("not-foxcpp", "password", true)62 check("not-foxcpp", "different-password", false)63 check("not-foxcpp-2", "password", true)64}