2024-04-12 13:52:26 +02:00
|
|
|
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
2024-01-12 15:34:34 +01:00
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
|
|
package forgefed
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
2024-01-13 14:17:11 +01:00
|
|
|
"time"
|
2024-01-12 15:34:34 +01:00
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/validation"
|
|
|
|
)
|
|
|
|
|
2024-01-19 16:26:16 +01:00
|
|
|
func Test_FederationHostValidation(t *testing.T) {
|
|
|
|
sut := FederationHost{
|
2024-01-12 15:34:34 +01:00
|
|
|
HostFqdn: "host.do.main",
|
|
|
|
NodeInfo: NodeInfo{
|
|
|
|
Source: "forgejo",
|
|
|
|
},
|
2024-01-13 14:17:11 +01:00
|
|
|
LatestActivity: time.Now(),
|
2024-01-12 15:34:34 +01:00
|
|
|
}
|
|
|
|
if res, err := validation.IsValid(sut); !res {
|
|
|
|
t.Errorf("sut should be valid but was %q", err)
|
|
|
|
}
|
2024-01-12 16:12:54 +01:00
|
|
|
|
2024-01-19 16:26:16 +01:00
|
|
|
sut = FederationHost{
|
2024-01-12 16:12:54 +01:00
|
|
|
HostFqdn: "host.do.main",
|
|
|
|
NodeInfo: NodeInfo{},
|
2024-01-13 14:17:11 +01:00
|
|
|
LatestActivity: time.Now(),
|
2024-01-12 16:12:54 +01:00
|
|
|
}
|
|
|
|
if res, _ := validation.IsValid(sut); res {
|
|
|
|
t.Errorf("sut should be invalid")
|
|
|
|
}
|
2024-01-14 14:53:00 +01:00
|
|
|
|
2024-01-19 16:26:16 +01:00
|
|
|
sut = FederationHost{
|
2024-01-14 14:53:00 +01:00
|
|
|
HostFqdn: "host.do.main",
|
|
|
|
NodeInfo: NodeInfo{
|
|
|
|
Source: "forgejo",
|
|
|
|
},
|
|
|
|
LatestActivity: time.Now().Add(1 * time.Hour),
|
|
|
|
}
|
|
|
|
if res, _ := validation.IsValid(sut); res {
|
2024-02-07 14:30:17 +01:00
|
|
|
t.Errorf("sut should be invalid: Future timestamp")
|
|
|
|
}
|
|
|
|
|
|
|
|
sut = FederationHost{
|
|
|
|
HostFqdn: "hOst.do.main",
|
|
|
|
NodeInfo: NodeInfo{
|
|
|
|
Source: "forgejo",
|
|
|
|
},
|
|
|
|
LatestActivity: time.Now(),
|
|
|
|
}
|
|
|
|
if res, _ := validation.IsValid(sut); res {
|
|
|
|
t.Errorf("sut should be invalid: HostFqdn lower case")
|
2024-01-14 14:53:00 +01:00
|
|
|
}
|
2024-01-12 15:34:34 +01:00
|
|
|
}
|