summaryrefslogtreecommitdiffstats
path: root/models/forgefed/federationhost_test.go
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
commitdd136858f1ea40ad3c94191d647487fa4f31926c (patch)
tree58fec94a7b2a12510c9664b21793f1ed560c6518 /models/forgefed/federationhost_test.go
parentInitial commit. (diff)
downloadforgejo-debian.tar.xz
forgejo-debian.zip
Adding upstream version 9.0.0.HEADupstream/9.0.0upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'models/forgefed/federationhost_test.go')
-rw-r--r--models/forgefed/federationhost_test.go78
1 files changed, 78 insertions, 0 deletions
diff --git a/models/forgefed/federationhost_test.go b/models/forgefed/federationhost_test.go
new file mode 100644
index 0000000..ea5494c
--- /dev/null
+++ b/models/forgefed/federationhost_test.go
@@ -0,0 +1,78 @@
+// Copyright 2024 The Forgejo Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package forgefed
+
+import (
+ "strings"
+ "testing"
+ "time"
+
+ "code.gitea.io/gitea/modules/validation"
+)
+
+func Test_FederationHostValidation(t *testing.T) {
+ sut := FederationHost{
+ HostFqdn: "host.do.main",
+ NodeInfo: NodeInfo{
+ SoftwareName: "forgejo",
+ },
+ LatestActivity: time.Now(),
+ }
+ if res, err := validation.IsValid(sut); !res {
+ t.Errorf("sut should be valid but was %q", err)
+ }
+
+ sut = FederationHost{
+ HostFqdn: "",
+ NodeInfo: NodeInfo{
+ SoftwareName: "forgejo",
+ },
+ LatestActivity: time.Now(),
+ }
+ if res, _ := validation.IsValid(sut); res {
+ t.Errorf("sut should be invalid: HostFqdn empty")
+ }
+
+ sut = FederationHost{
+ HostFqdn: strings.Repeat("fill", 64),
+ NodeInfo: NodeInfo{
+ SoftwareName: "forgejo",
+ },
+ LatestActivity: time.Now(),
+ }
+ if res, _ := validation.IsValid(sut); res {
+ t.Errorf("sut should be invalid: HostFqdn too long (len=256)")
+ }
+
+ sut = FederationHost{
+ HostFqdn: "host.do.main",
+ NodeInfo: NodeInfo{},
+ LatestActivity: time.Now(),
+ }
+ if res, _ := validation.IsValid(sut); res {
+ t.Errorf("sut should be invalid: NodeInfo invalid")
+ }
+
+ sut = FederationHost{
+ HostFqdn: "host.do.main",
+ NodeInfo: NodeInfo{
+ SoftwareName: "forgejo",
+ },
+ LatestActivity: time.Now().Add(1 * time.Hour),
+ }
+ if res, _ := validation.IsValid(sut); res {
+ t.Errorf("sut should be invalid: Future timestamp")
+ }
+
+ sut = FederationHost{
+ HostFqdn: "hOst.do.main",
+ NodeInfo: NodeInfo{
+ SoftwareName: "forgejo",
+ },
+ LatestActivity: time.Now(),
+ }
+ if res, _ := validation.IsValid(sut); res {
+ t.Errorf("sut should be invalid: HostFqdn lower case")
+ }
+}