mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.3 KiB
66 lines
2.3 KiB
// Copyright 2020 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package auth_test |
|
|
|
import ( |
|
"testing" |
|
|
|
auth_model "code.gitea.io/gitea/models/auth" |
|
"code.gitea.io/gitea/models/unittest" |
|
|
|
"github.com/go-webauthn/webauthn/webauthn" |
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestGetWebAuthnCredentialByID(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
res, err := auth_model.GetWebAuthnCredentialByID(t.Context(), 1) |
|
assert.NoError(t, err) |
|
assert.Equal(t, "WebAuthn credential", res.Name) |
|
|
|
_, err = auth_model.GetWebAuthnCredentialByID(t.Context(), 342432) |
|
assert.Error(t, err) |
|
assert.True(t, auth_model.IsErrWebAuthnCredentialNotExist(err)) |
|
} |
|
|
|
func TestGetWebAuthnCredentialsByUID(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
res, err := auth_model.GetWebAuthnCredentialsByUID(t.Context(), 32) |
|
assert.NoError(t, err) |
|
assert.Len(t, res, 1) |
|
assert.Equal(t, "WebAuthn credential", res[0].Name) |
|
} |
|
|
|
func TestWebAuthnCredential_TableName(t *testing.T) { |
|
assert.Equal(t, "webauthn_credential", auth_model.WebAuthnCredential{}.TableName()) |
|
} |
|
|
|
func TestWebAuthnCredential_UpdateSignCount(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
cred := unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1}) |
|
cred.SignCount = 1 |
|
assert.NoError(t, cred.UpdateSignCount(t.Context())) |
|
unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1, SignCount: 1}) |
|
} |
|
|
|
func TestWebAuthnCredential_UpdateLargeCounter(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
cred := unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1}) |
|
cred.SignCount = 0xffffffff |
|
assert.NoError(t, cred.UpdateSignCount(t.Context())) |
|
unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1, SignCount: 0xffffffff}) |
|
} |
|
|
|
func TestCreateCredential(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
res, err := auth_model.CreateCredential(t.Context(), 1, "WebAuthn Created Credential", &webauthn.Credential{ID: []byte("Test")}) |
|
assert.NoError(t, err) |
|
assert.Equal(t, "WebAuthn Created Credential", res.Name) |
|
assert.Equal(t, []byte("Test"), res.CredentialID) |
|
|
|
unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{Name: "WebAuthn Created Credential", UserID: 1}) |
|
}
|
|
|