mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-28 18:41:30 +02:00
48 lines
1.5 KiB
Go
48 lines
1.5 KiB
Go
package ipcauth
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"google.golang.org/grpc/credentials"
|
|
"google.golang.org/grpc/peer"
|
|
)
|
|
|
|
func TestIdentityFromContext_NoPeer(t *testing.T) {
|
|
_, ok := IdentityFromContext(context.Background())
|
|
assert.False(t, ok, "bare context must report no identity (fail closed)")
|
|
}
|
|
|
|
func TestIdentityFromContext_WrongAuthInfo(t *testing.T) {
|
|
ctx := peer.NewContext(context.Background(), &peer.Peer{})
|
|
_, ok := IdentityFromContext(ctx)
|
|
assert.False(t, ok, "peer without our AuthInfo must report no identity")
|
|
}
|
|
|
|
func TestIdentityFromContext_Present(t *testing.T) {
|
|
want := Identity{UID: 1000, GID: 1000, PID: 4242, HasPID: true}
|
|
ctx := peer.NewContext(context.Background(), &peer.Peer{
|
|
AuthInfo: AuthInfo{
|
|
CommonAuthInfo: credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity},
|
|
Identity: want,
|
|
},
|
|
})
|
|
|
|
got, ok := IdentityFromContext(ctx)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, want, got)
|
|
}
|
|
|
|
func TestIdentity_String(t *testing.T) {
|
|
assert.Equal(t, "uid=1000 gid=1000 pid=42", Identity{UID: 1000, GID: 1000, PID: 42, HasPID: true}.String())
|
|
assert.Equal(t, "uid=1000 gid=1000", Identity{UID: 1000, GID: 1000}.String())
|
|
assert.Equal(t, "sid=S-1-5-21-1 pid=42", Identity{SID: "S-1-5-21-1", PID: 42, HasPID: true}.String())
|
|
assert.Equal(t, "sid=S-1-5-21-1", Identity{SID: "S-1-5-21-1"}.String())
|
|
}
|
|
|
|
func TestIdentity_IsWindows(t *testing.T) {
|
|
assert.True(t, Identity{SID: "S-1-5-18"}.IsWindows())
|
|
assert.False(t, Identity{UID: 0}.IsWindows())
|
|
}
|