2023-11-15 15:07:23 +01:00
|
|
|
// Copyright 2023 The forgejo Authors. All rights reserved.
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
|
|
package activitypub
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2023-11-22 16:40:28 +01:00
|
|
|
func TestActorParserEmpty(t *testing.T) {
|
|
|
|
item := ""
|
|
|
|
want := ActorID{}
|
|
|
|
|
|
|
|
got, _ := ParseActorID(item)
|
|
|
|
|
|
|
|
if got != want {
|
|
|
|
t.Errorf("ParseActorID returned non empty actor id for empty input.")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestActorParserValid(t *testing.T) {
|
|
|
|
item := "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1"
|
|
|
|
want := ActorID{
|
|
|
|
schema: "https",
|
|
|
|
userId: "1",
|
|
|
|
path: "/api/v1/activitypub/user-id/1",
|
|
|
|
host: "repo.prod.meissa.de",
|
|
|
|
port: "",
|
|
|
|
}
|
|
|
|
|
|
|
|
got, _ := ParseActorID(item)
|
|
|
|
|
|
|
|
if got != want {
|
2023-11-23 14:17:35 +01:00
|
|
|
t.Errorf("ParseActorID did not return want: %v.", want)
|
2023-11-22 16:40:28 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValid(t *testing.T) {
|
|
|
|
item := ActorID{
|
|
|
|
schema: "https",
|
|
|
|
userId: "1",
|
|
|
|
path: "/api/v1/activitypub/user-id/1",
|
|
|
|
host: "repo.prod.meissa.de",
|
|
|
|
port: "",
|
2023-11-15 15:07:23 +01:00
|
|
|
}
|
|
|
|
|
2023-11-22 16:40:28 +01:00
|
|
|
if err := item.Validate(); err != nil {
|
2023-11-23 14:17:35 +01:00
|
|
|
t.Errorf("Validating actor returned non nil with valid input.")
|
2023-11-15 15:07:23 +01:00
|
|
|
}
|
2023-11-22 16:40:28 +01:00
|
|
|
}
|
2023-11-15 15:07:23 +01:00
|
|
|
|
2023-11-22 16:40:28 +01:00
|
|
|
func TestValidateInvalid(t *testing.T) {
|
|
|
|
item := "123456"
|
2023-11-15 15:07:23 +01:00
|
|
|
|
2023-11-22 16:40:28 +01:00
|
|
|
actor, _ := ParseActorID(item)
|
2023-11-16 16:03:05 +01:00
|
|
|
|
2023-11-22 16:40:28 +01:00
|
|
|
if err := actor.Validate(); err == nil {
|
2023-11-23 14:17:35 +01:00
|
|
|
t.Errorf("Validating actor returned nil with false input.")
|
2023-11-15 15:07:23 +01:00
|
|
|
}
|
|
|
|
}
|
2023-11-23 17:02:54 +01:00
|
|
|
|
|
|
|
func TestGetHostAndPort(t *testing.T) {
|
|
|
|
item := ActorID{
|
|
|
|
schema: "https",
|
|
|
|
userId: "1",
|
|
|
|
path: "/api/v1/activitypub/user-id/1",
|
|
|
|
host: "repo.prod.meissa.de",
|
|
|
|
port: "80",
|
|
|
|
}
|
|
|
|
want := "repo.prod.meissa.de:80"
|
|
|
|
|
|
|
|
hostAndPort := item.GetHostAndPort()
|
|
|
|
|
|
|
|
if hostAndPort != want {
|
|
|
|
t.Errorf("GetHostAndPort did not return correct host and port combination: %v", hostAndPort)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|