620 lines
13 KiB
Go
620 lines
13 KiB
Go
package activitypub
|
|
|
|
import (
|
|
"bytes"
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func Test_JSONWrite(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
c []byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteActivity(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
a Activity
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteActivityValue(tt.args.b, tt.args.a); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteActivityValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteBoolProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
t bool
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteBoolProp(tt.args.b, tt.args.n, tt.args.t); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteBoolProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteComma(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteDurationProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
d time.Duration
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteDurationProp(tt.args.b, tt.args.n, tt.args.d); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteDurationProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteFloatProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
f float64
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteFloatProp(tt.args.b, tt.args.n, tt.args.f); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteFloatProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteIRIProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
i LinkOrIRI
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteIRIProp(tt.args.b, tt.args.n, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteIRIProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteIntProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
d int64
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteIntProp(tt.args.b, tt.args.n, tt.args.d); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteIntProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteIntransitiveActivity(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
i IntransitiveActivity
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteIntransitiveActivityValue(tt.args.b, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteIntransitiveActivityValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteItemCollection(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
col ItemCollection
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteItemCollectionValue(tt.args.b, tt.args.col, true); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteItemCollectionValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteItemCollectionProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
col ItemCollection
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteItemCollectionProp(tt.args.b, tt.args.n, tt.args.col, true); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteItemCollectionProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteItemProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
i Item
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteItemProp(tt.args.b, tt.args.n, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteItemProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteNaturalLanguageProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
nl NaturalLanguageValues
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteNaturalLanguageProp(tt.args.b, tt.args.n, tt.args.nl); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteNaturalLanguageProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteObjectValue(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
o Object
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteObjectValue(tt.args.b, tt.args.o); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteObjectValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
name string
|
|
val []byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteProp(tt.args.b, tt.args.name, tt.args.val); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWritePropName(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWritePropName(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWritePropName() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteQuestionValue(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
q Question
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteQuestionValue(tt.args.b, tt.args.q); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteQuestionValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteStringValue(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteStringValue(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteStringProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteStringProp(tt.args.b, tt.args.n, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteStringProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteTimeProp(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
n string
|
|
t time.Time
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteTimeProp(tt.args.b, tt.args.n, tt.args.t); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteTimeProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_JSONWriteValue(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
s []byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantNotEmpty bool
|
|
}{
|
|
// TODO: Add test cases.
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if gotNotEmpty := JSONWriteValue(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func mockOb(id IRI, typ ActivityVocabularyType) LinkOrIRI {
|
|
ob := ObjectNew(typ)
|
|
ob.ID = id
|
|
return ob
|
|
}
|
|
|
|
func TestMarshalJSON(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
arg LinkOrIRI
|
|
want []byte
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "empty",
|
|
arg: nil,
|
|
want: []byte("null"),
|
|
},
|
|
{
|
|
name: "Link to example.com",
|
|
arg: LinkNew("https://example.com", MentionType),
|
|
want: []byte(`{"id":"https://example.com","type":"Mention"}`),
|
|
},
|
|
{
|
|
name: "Note",
|
|
arg: mockOb("https://example.com", NoteType),
|
|
want: []byte(`{"id":"https://example.com","type":"Note"}`),
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := MarshalJSON(tt.arg)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("MarshalJSON() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("MarshalJSON() got = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestJSONWriteValue(t *testing.T) {
|
|
buff := func(s int) *[]byte {
|
|
b := make([]byte, 0, s)
|
|
return &b
|
|
}
|
|
type args struct {
|
|
b *[]byte
|
|
s []byte
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want []byte
|
|
wantNotEmpty bool
|
|
}{
|
|
{
|
|
name: "empty",
|
|
args: args{
|
|
b: buff(0),
|
|
},
|
|
wantNotEmpty: false,
|
|
},
|
|
{
|
|
name: "do not escape quotes at start-end",
|
|
args: args{
|
|
b: buff(20),
|
|
s: []byte(`"https://example.com"`),
|
|
},
|
|
want: []byte(`"https://example.com"`),
|
|
wantNotEmpty: true,
|
|
},
|
|
{
|
|
name: "escape quotes inside string",
|
|
args: args{
|
|
b: buff(80),
|
|
s: []byte(`"application/ld+json; profile="https://www.w3.org/ns/activitystreams""`),
|
|
},
|
|
want: []byte(`"application/ld+json; profile="https://www.w3.org/ns/activitystreams""`),
|
|
wantNotEmpty: true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
gotNotEmpty := JSONWriteValue(tt.args.b, tt.args.s)
|
|
if gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
if tt.wantNotEmpty && !bytes.Equal(*tt.args.b, tt.want) {
|
|
t.Errorf("JSONWriteValue() = %s, want %s", *tt.args.b, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func buff(l int) *[]byte {
|
|
b := make([]byte, 0, l)
|
|
return &b
|
|
}
|
|
|
|
func TestJSONWriteStringValue(t *testing.T) {
|
|
type args struct {
|
|
b *[]byte
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
wantNotEmpty bool
|
|
}{
|
|
{
|
|
name: "empty",
|
|
args: args{},
|
|
want: "",
|
|
wantNotEmpty: false,
|
|
},
|
|
{
|
|
name: "escaped quote",
|
|
args: args{
|
|
b: buff(10),
|
|
s: `ana"are`,
|
|
},
|
|
want: `"ana\"are"`,
|
|
wantNotEmpty: true,
|
|
},
|
|
{
|
|
name: "already escaped quote",
|
|
args: args{
|
|
b: buff(10),
|
|
s: `ana\"are`,
|
|
},
|
|
want: `"ana\"are"`,
|
|
wantNotEmpty: true,
|
|
},
|
|
{
|
|
name: "already escaped quote and multiple other quotes",
|
|
args: args{
|
|
b: buff(10),
|
|
s: `ana\"""are`,
|
|
},
|
|
want: `"ana\"\"\"are"`,
|
|
wantNotEmpty: true,
|
|
},
|
|
{
|
|
name: "quote at the end",
|
|
args: args{
|
|
b: buff(10),
|
|
s: `anaare"`,
|
|
},
|
|
want: `"anaare\""`,
|
|
wantNotEmpty: true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
gotNotEmpty := JSONWriteStringValue(tt.args.b, tt.args.s)
|
|
if gotNotEmpty != tt.wantNotEmpty {
|
|
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
|
|
}
|
|
if tt.wantNotEmpty && tt.want != string(*tt.args.b) {
|
|
t.Errorf("JSONWriteStringValue() = %s, want %s", *tt.args.b, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|