summaryrefslogtreecommitdiff
path: root/internal/ntp/util_test.go
blob: cff02667913ccb674f1755ae8db85d6d4ad30a83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package ntp

import (
	"testing"
	"time"

	"github.com/stretchr/testify/assert"

	"github.com/authelia/authelia/v4/internal/utils"
)

func TestNtpIsOffsetTooLarge(t *testing.T) {
	maxOffset, _ := utils.ParseDurationString("1s")
	assert.True(t, ntpIsOffsetTooLarge(maxOffset, time.Now(), time.Now().Add(time.Second*2)))
	assert.True(t, ntpIsOffsetTooLarge(maxOffset, time.Now().Add(time.Second*2), time.Now()))
	assert.False(t, ntpIsOffsetTooLarge(maxOffset, time.Now(), time.Now()))
}

func TestNtpPacketToTime(t *testing.T) {
	resp := &ntpPacket{
		TxTimeSeconds:  60,
		TxTimeFraction: 0,
	}

	expected := time.Unix(int64(float64(60)-ntpEpochOffset), 0)

	ntpTime := ntpPacketToTime(resp)
	assert.Equal(t, expected, ntpTime)
}

func TestLeapVersionClientMode(t *testing.T) {
	v3Noleap := uint8(0xdb)
	v4Noleap := uint8(0xe3)

	assert.Equal(t, v3Noleap, ntpLeapVersionClientMode(ntpV3))
	assert.Equal(t, v4Noleap, ntpLeapVersionClientMode(ntpV4))
}