mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
signer/core add tests to make sure new db keystore works well
This commit is contained in:
parent
f7f9d1701e
commit
0f9539fe59
2 changed files with 43 additions and 9 deletions
|
|
@ -119,17 +119,18 @@ func tmpDirName(t *testing.T) string {
|
||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
func setup(t *testing.T) (*core.SignerAPI, *headlessUi) {
|
func setup(ksLoc string, t *testing.T) (*core.SignerAPI, *headlessUi) {
|
||||||
db, err := fourbyte.New()
|
db, err := fourbyte.New()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err.Error())
|
t.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
ui := &headlessUi{make(chan string, 20), make(chan string, 20)}
|
ui := &headlessUi{make(chan string, 20), make(chan string, 20)}
|
||||||
am := core.StartClefAccountManager(tmpDirName(t), true, true, "")
|
am := core.StartClefAccountManager(ksLoc, true, true, "")
|
||||||
api := core.NewSignerAPI(am, 1337, true, ui, db, true, &storage.NoStorage{})
|
api := core.NewSignerAPI(am, 1337, true, ui, db, true, &storage.NoStorage{})
|
||||||
return api, ui
|
return api, ui
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createAccount(ui *headlessUi, api *core.SignerAPI, t *testing.T) {
|
func createAccount(ui *headlessUi, api *core.SignerAPI, t *testing.T) {
|
||||||
ui.approveCh <- "Y"
|
ui.approveCh <- "Y"
|
||||||
ui.inputCh <- "a_long_password"
|
ui.inputCh <- "a_long_password"
|
||||||
|
|
@ -175,8 +176,7 @@ func list(ui *headlessUi, api *core.SignerAPI, t *testing.T) ([]common.Address,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewAcc(t *testing.T) {
|
func testNewAcc(api *core.SignerAPI, control *headlessUi, t *testing.T) {
|
||||||
api, control := setup(t)
|
|
||||||
verifyNum := func(num int) {
|
verifyNum := func(num int) {
|
||||||
list, err := list(control, api, t)
|
list, err := list(control, api, t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -223,6 +223,18 @@ func TestNewAcc(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewAcc(t *testing.T) {
|
||||||
|
// test filesystem keystore
|
||||||
|
tmpDir := tmpDirName(t)
|
||||||
|
api, control := setup(tmpDir, t)
|
||||||
|
testNewAcc(api, control, t)
|
||||||
|
|
||||||
|
// test db keystore
|
||||||
|
ksLoc := "sqlite3#" + filepath.Join(tmpDir, "test_new_account.db")
|
||||||
|
api, control = setup(ksLoc, t)
|
||||||
|
testNewAcc(api, control, t)
|
||||||
|
}
|
||||||
|
|
||||||
func mkTestTx(from common.MixedcaseAddress) core.SendTxArgs {
|
func mkTestTx(from common.MixedcaseAddress) core.SendTxArgs {
|
||||||
to := common.NewMixedcaseAddress(common.HexToAddress("0x1337"))
|
to := common.NewMixedcaseAddress(common.HexToAddress("0x1337"))
|
||||||
gas := hexutil.Uint64(21000)
|
gas := hexutil.Uint64(21000)
|
||||||
|
|
@ -241,14 +253,13 @@ func mkTestTx(from common.MixedcaseAddress) core.SendTxArgs {
|
||||||
return tx
|
return tx
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSignTx(t *testing.T) {
|
func testSignTx(api *core.SignerAPI, control *headlessUi, t *testing.T) {
|
||||||
var (
|
var (
|
||||||
list []common.Address
|
list []common.Address
|
||||||
res, res2 *ethapi.SignTransactionResult
|
res, res2 *ethapi.SignTransactionResult
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
api, control := setup(t)
|
|
||||||
createAccount(control, api, t)
|
createAccount(control, api, t)
|
||||||
control.approveCh <- "A"
|
control.approveCh <- "A"
|
||||||
list, err = api.List(context.Background())
|
list, err = api.List(context.Background())
|
||||||
|
|
@ -321,5 +332,16 @@ func TestSignTx(t *testing.T) {
|
||||||
if bytes.Equal(res.Raw, res2.Raw) {
|
if bytes.Equal(res.Raw, res2.Raw) {
|
||||||
t.Error("Expected tx to be modified by UI")
|
t.Error("Expected tx to be modified by UI")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSignTx(t *testing.T) {
|
||||||
|
// test filesystem keystore
|
||||||
|
tmpDir := tmpDirName(t)
|
||||||
|
api, control := setup(tmpDir, t)
|
||||||
|
testSignTx(api, control, t)
|
||||||
|
|
||||||
|
// test db keystore
|
||||||
|
ksLoc := "sqlite3#" + filepath.Join(tmpDir, "test_sign_tx.db")
|
||||||
|
api, control = setup(ksLoc, t)
|
||||||
|
testSignTx(api, control, t)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"path"
|
"path"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
|
@ -179,8 +180,7 @@ var typedData = core.TypedData{
|
||||||
Message: messageStandard,
|
Message: messageStandard,
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSignData(t *testing.T) {
|
func testSignData(api *core.SignerAPI, control *headlessUi, t *testing.T) {
|
||||||
api, control := setup(t)
|
|
||||||
//Create two accounts
|
//Create two accounts
|
||||||
createAccount(control, api, t)
|
createAccount(control, api, t)
|
||||||
createAccount(control, api, t)
|
createAccount(control, api, t)
|
||||||
|
|
@ -230,6 +230,18 @@ func TestSignData(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSignData(t *testing.T) {
|
||||||
|
// test filesystem keystore
|
||||||
|
tmpDir := tmpDirName(t)
|
||||||
|
api, control := setup(tmpDir, t)
|
||||||
|
testSignData(api, control, t)
|
||||||
|
|
||||||
|
// test db keystore
|
||||||
|
ksLoc := "sqlite3#" + filepath.Join(tmpDir, "test_new_account.db")
|
||||||
|
api, control = setup(ksLoc, t)
|
||||||
|
testSignData(api, control, t)
|
||||||
|
}
|
||||||
|
|
||||||
func TestDomainChainId(t *testing.T) {
|
func TestDomainChainId(t *testing.T) {
|
||||||
withoutChainID := core.TypedData{
|
withoutChainID := core.TypedData{
|
||||||
Types: core.Types{
|
Types: core.Types{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue