2019-08-24 12:24:45 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-08-24 12:24:45 +03:00
package setting
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_parsePostgreSQLHostPort ( t * testing . T ) {
tests := [ ] struct {
HostPort string
Host string
Port string
} {
{
HostPort : "127.0.0.1:1234" ,
Host : "127.0.0.1" ,
Port : "1234" ,
} ,
{
HostPort : "127.0.0.1" ,
Host : "127.0.0.1" ,
Port : "5432" ,
} ,
{
HostPort : "[::1]:1234" ,
Host : "[::1]" ,
Port : "1234" ,
} ,
{
HostPort : "[::1]" ,
Host : "[::1]" ,
Port : "5432" ,
} ,
{
HostPort : "/tmp/pg.sock:1234" ,
Host : "/tmp/pg.sock" ,
Port : "1234" ,
} ,
{
HostPort : "/tmp/pg.sock" ,
Host : "/tmp/pg.sock" ,
Port : "5432" ,
} ,
}
for _ , test := range tests {
host , port := parsePostgreSQLHostPort ( test . HostPort )
assert . Equal ( t , test . Host , host )
assert . Equal ( t , test . Port , port )
}
}
func Test_getPostgreSQLConnectionString ( t * testing . T ) {
tests := [ ] struct {
Host string
Port string
User string
Passwd string
Name string
Param string
SSLMode string
Output string
} {
{
Host : "/tmp/pg.sock" ,
Port : "4321" ,
User : "testuser" ,
Passwd : "space space !#$%^^%^```-=?=" ,
Name : "gitea" ,
Param : "" ,
SSLMode : "false" ,
Output : "postgres://testuser:space%20space%20%21%23$%25%5E%5E%25%5E%60%60%60-=%3F=@:5432/giteasslmode=false&host=/tmp/pg.sock" ,
} ,
{
Host : "localhost" ,
Port : "1234" ,
User : "pgsqlusername" ,
Passwd : "I love Gitea!" ,
Name : "gitea" ,
Param : "" ,
SSLMode : "true" ,
Output : "postgres://pgsqlusername:I%20love%20Gitea%21@localhost:5432/giteasslmode=true" ,
} ,
}
for _ , test := range tests {
connStr := getPostgreSQLConnectionString ( test . Host , test . User , test . Passwd , test . Name , test . Param , test . SSLMode )
assert . Equal ( t , test . Output , connStr )
}
}