x/auth: use validateMaxMemoCharacters() for memo fields (#5898)

Add test cases.
This commit is contained in:
Alessio Treglia 2020-03-31 16:18:02 +02:00 committed by GitHub
parent b239cc8bb4
commit 35e15521dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 4 deletions

View File

@ -156,7 +156,7 @@ func (p Params) Validate() error {
if err := validateSigVerifyCostSecp256k1(p.SigVerifyCostSecp256k1); err != nil { if err := validateSigVerifyCostSecp256k1(p.SigVerifyCostSecp256k1); err != nil {
return err return err
} }
if err := validateSigVerifyCostSecp256k1(p.MaxMemoCharacters); err != nil { if err := validateMaxMemoCharacters(p.MaxMemoCharacters); err != nil {
return err return err
} }
if err := validateTxSizeCostPerByte(p.TxSizeCostPerByte); err != nil { if err := validateTxSizeCostPerByte(p.TxSizeCostPerByte); err != nil {

View File

@ -1,16 +1,49 @@
package types package types_test
import ( import (
"fmt"
"testing" "testing"
"github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func TestParamsEqual(t *testing.T) { func TestParamsEqual(t *testing.T) {
p1 := DefaultParams() p1 := types.DefaultParams()
p2 := DefaultParams() p2 := types.DefaultParams()
require.Equal(t, p1, p2) require.Equal(t, p1, p2)
p1.TxSigLimit += 10 p1.TxSigLimit += 10
require.NotEqual(t, p1, p2) require.NotEqual(t, p1, p2)
} }
func TestParams_Validate(t *testing.T) {
tests := []struct {
name string
params types.Params
wantErr error
}{
{"default params", types.DefaultParams(), nil},
{"invalid tx signature limit", types.NewParams(types.DefaultMaxMemoCharacters, 0, types.DefaultTxSizeCostPerByte,
types.DefaultSigVerifyCostED25519, types.DefaultSigVerifyCostSecp256k1), fmt.Errorf("invalid tx signature limit: 0")},
{"invalid ED25519 signature verification cost", types.NewParams(types.DefaultMaxMemoCharacters, types.DefaultTxSigLimit, types.DefaultTxSizeCostPerByte,
0, types.DefaultSigVerifyCostSecp256k1), fmt.Errorf("invalid ED25519 signature verification cost: 0")},
{"invalid SECK256k1 signature verification cost", types.NewParams(types.DefaultMaxMemoCharacters, types.DefaultTxSigLimit, types.DefaultTxSizeCostPerByte,
types.DefaultSigVerifyCostED25519, 0), fmt.Errorf("invalid SECK256k1 signature verification cost: 0")},
{"invalid max memo characters", types.NewParams(0, types.DefaultTxSigLimit, types.DefaultTxSizeCostPerByte,
types.DefaultSigVerifyCostED25519, types.DefaultSigVerifyCostSecp256k1), fmt.Errorf("invalid max memo characters: 0")},
{"invalid tx size cost per byte", types.NewParams(types.DefaultMaxMemoCharacters, types.DefaultTxSigLimit, 0,
types.DefaultSigVerifyCostED25519, types.DefaultSigVerifyCostSecp256k1), fmt.Errorf("invalid tx size cost per byte: 0")},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
got := tt.params.Validate()
if tt.wantErr == nil {
require.NoError(t, got)
return
}
require.Equal(t, tt.wantErr, got)
})
}
}