Skip to content

Commit

Permalink
test: add test for special password
Browse files Browse the repository at this point in the history
  • Loading branch information
huskar-t committed Dec 25, 2024
1 parent d292fd1 commit a524b1c
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 0 deletions.
61 changes: 61 additions & 0 deletions taosRestful/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"log"
"net/url"
"testing"
"time"

Expand Down Expand Up @@ -318,3 +319,63 @@ func TestOpen(t *testing.T) {
err = pinger.Ping(context.Background())
assert.NoError(t, err)
}

func TestSpecialPassword(t *testing.T) {
db, err := sql.Open(driverName, dataSourceName)
if err != nil {
t.Fatalf("error on: sql.open %s", err.Error())
return
}
defer db.Close()
tests := []struct {
name string
user string
pass string
}{
{
name: "test_special1_rs",
user: "test_special1_rs",
pass: "!q@w#a$1%3^&*()-",
},
{
name: "test_special2_rs",
user: "test_special2_rs",
pass: "_q+3=[]{}:;><?|~",
},
{
name: "test_special3_rs",
user: "test_special3_rs",
pass: "1><3?|~,w.",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
defer func() {
dropSql := fmt.Sprintf("drop user %s", test.user)
_, _ = db.Exec(dropSql)
}()
createSql := fmt.Sprintf("create user %s pass '%s'", test.user, test.pass)
_, err := db.Exec(createSql)
assert.NoError(t, err)
escapedPass := url.QueryEscape(test.pass)
newDsn := fmt.Sprintf("%s:%s@http(%s:%d)/%s", test.user, escapedPass, host, port, "")
db2, err := sql.Open(driverName, newDsn)
if err != nil {
t.Errorf("error on: sql.open %s", err.Error())
return
}
defer db2.Close()
rows, err := db2.Query("select 1")
assert.NoError(t, err)
var i int
for rows.Next() {
err := rows.Scan(&i)
assert.NoError(t, err)
assert.Equal(t, 1, i)
}
if i != 1 {
t.Errorf("query failed")
}
})
}
}
61 changes: 61 additions & 0 deletions taosSql/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"errors"
"fmt"
"log"
"net/url"
"testing"
"time"

Expand Down Expand Up @@ -589,3 +590,63 @@ func TestOpen(t *testing.T) {
err = pinger.Ping(context.Background())
assert.NoError(t, err)
}

func TestSpecialPassword(t *testing.T) {
db, err := sql.Open(driverName, dataSourceName)
if err != nil {
t.Fatalf("error on: sql.open %s", err.Error())
return
}
defer db.Close()
tests := []struct {
name string
user string
pass string
}{
{
name: "test_special1",
user: "test_special1",
pass: "!q@w#a$1%3^&*()-",
},
{
name: "test_special2",
user: "test_special2",
pass: "_q+3=[]{}:;><?|~",
},
{
name: "test_special3",
user: "test_special3",
pass: "1><3?|~,w.",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
defer func() {
dropSql := fmt.Sprintf("drop user %s", test.user)
_, _ = db.Exec(dropSql)
}()
createSql := fmt.Sprintf("create user %s pass '%s'", test.user, test.pass)
_, err := db.Exec(createSql)
assert.NoError(t, err)
escapedPass := url.QueryEscape(test.pass)
newDsn := fmt.Sprintf("%s:%s@/tcp(%s:%d)/%s", test.user, escapedPass, host, port, "")
db2, err := sql.Open(driverName, newDsn)
if err != nil {
t.Errorf("error on: sql.open %s", err.Error())
return
}
defer db2.Close()
rows, err := db2.Query("select 1")
assert.NoError(t, err)
var i int
for rows.Next() {
err := rows.Scan(&i)
assert.NoError(t, err)
assert.Equal(t, 1, i)
}
if i != 1 {
t.Errorf("query failed")
}
})
}
}
61 changes: 61 additions & 0 deletions taosWS/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"log"
"net/url"
"testing"
"time"

Expand Down Expand Up @@ -309,3 +310,63 @@ func TestOpen(t *testing.T) {
err = pinger.Ping(context.Background())
assert.NoError(t, err)
}

func TestSpecialPassword(t *testing.T) {
db, err := sql.Open(driverName, dataSourceName)
if err != nil {
t.Fatalf("error on: sql.open %s", err.Error())
return
}
defer db.Close()
tests := []struct {
name string
user string
pass string
}{
{
name: "test_special1_ws",
user: "test_special1_ws",
pass: "!q@w#a$1%3^&*()-",
},
{
name: "test_special2_ws",
user: "test_special2_ws",
pass: "_q+3=[]{}:;><?|~",
},
{
name: "test_special3_ws",
user: "test_special3_ws",
pass: "1><3?|~,w.",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
defer func() {
dropSql := fmt.Sprintf("drop user %s", test.user)
_, _ = db.Exec(dropSql)
}()
createSql := fmt.Sprintf("create user %s pass '%s'", test.user, test.pass)
_, err := db.Exec(createSql)
assert.NoError(t, err)
escapedPass := url.QueryEscape(test.pass)
newDsn := fmt.Sprintf("%s:%s@ws(%s:%d)/%s", test.user, escapedPass, host, port, "")
db2, err := sql.Open(driverName, newDsn)
if err != nil {
t.Errorf("error on: sql.open %s", err.Error())
return
}
defer db2.Close()
rows, err := db2.Query("select 1")
assert.NoError(t, err)
var i int
for rows.Next() {
err := rows.Scan(&i)
assert.NoError(t, err)
assert.Equal(t, 1, i)
}
if i != 1 {
t.Errorf("query failed")
}
})
}
}

0 comments on commit a524b1c

Please sign in to comment.