diff options
author | Jonas Franz <info@jonasfranz.software> | 2018-05-19 16:12:37 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2018-05-19 17:12:37 +0300 |
commit | 951309f76aab22e3742e8872bf0642fcea2570ae (patch) | |
tree | 041e43fcc393d0ca07e4e274b28c1938e6604780 /models/u2f_test.go | |
parent | f933bcdfeef359d8d9592dc0cf0aea244963e23c (diff) | |
download | gitea-951309f76aab22e3742e8872bf0642fcea2570ae.tar.gz gitea-951309f76aab22e3742e8872bf0642fcea2570ae.zip |
Add support for FIDO U2F (#3971)
* Add support for U2F
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add vendor library
Add missing translations
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Minor improvements
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add U2F support for Firefox, Chrome (Android) by introducing a custom JS library
Add U2F error handling
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add U2F login page to OAuth
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Move U2F user settings to a separate file
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add unit tests for u2f model
Renamed u2f table name
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Fix problems caused by refactoring
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add U2F documentation
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Remove not needed console.log-s
Signed-off-by: Jonas Franz <info@jonasfranz.software>
* Add default values to app.ini.sample
Add FIDO U2F to comparison
Signed-off-by: Jonas Franz <info@jonasfranz.software>
Diffstat (limited to 'models/u2f_test.go')
-rw-r--r-- | models/u2f_test.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/models/u2f_test.go b/models/u2f_test.go new file mode 100644 index 0000000000..6d6cd495ca --- /dev/null +++ b/models/u2f_test.go @@ -0,0 +1,61 @@ +package models + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/tstranex/u2f" +) + +func TestGetU2FRegistrationByID(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + + res, err := GetU2FRegistrationByID(1) + assert.NoError(t, err) + assert.Equal(t, "U2F Key", res.Name) + + _, err = GetU2FRegistrationByID(342432) + assert.Error(t, err) + assert.True(t, IsErrU2FRegistrationNotExist(err)) +} + +func TestGetU2FRegistrationsByUID(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + + res, err := GetU2FRegistrationsByUID(1) + assert.NoError(t, err) + assert.Len(t, res, 1) + assert.Equal(t, "U2F Key", res[0].Name) +} + +func TestU2FRegistration_TableName(t *testing.T) { + assert.Equal(t, "u2f_registration", U2FRegistration{}.TableName()) +} + +func TestU2FRegistration_UpdateCounter(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + reg := AssertExistsAndLoadBean(t, &U2FRegistration{ID: 1}).(*U2FRegistration) + reg.Counter = 1 + assert.NoError(t, reg.UpdateCounter()) + AssertExistsIf(t, true, &U2FRegistration{ID: 1, Counter: 1}) +} + +func TestCreateRegistration(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + user := AssertExistsAndLoadBean(t, &User{ID: 1}).(*User) + + res, err := CreateRegistration(user, "U2F Created Key", &u2f.Registration{Raw: []byte("Test")}) + assert.NoError(t, err) + assert.Equal(t, "U2F Created Key", res.Name) + assert.Equal(t, []byte("Test"), res.Raw) + + AssertExistsIf(t, true, &U2FRegistration{Name: "U2F Created Key", UserID: user.ID}) +} + +func TestDeleteRegistration(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + reg := AssertExistsAndLoadBean(t, &U2FRegistration{ID: 1}).(*U2FRegistration) + + assert.NoError(t, DeleteRegistration(reg)) + AssertNotExistsBean(t, &U2FRegistration{ID: 1}) +} |