test

package
v0.0.0-...-2154053 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2024 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ServerKeyFile is the name of the file holding the matrix server private key.
	ServerKeyFile = "server_key.pem"
	// TLSCertFile is the name of the file holding the TLS certificate used for federation.
	TLSCertFile = "tls_cert.pem"
	// TLSKeyFile is the name of the file holding the TLS key used for federation.
	TLSKeyFile = "tls_key.pem"
)

Variables

View Source
var (

	// private keys that tests can use
	PrivateKeyA = ed25519.NewKeyFromSeed([]byte{
		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, 77,
	})
	PrivateKeyB = ed25519.NewKeyFromSeed([]byte{
		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, 66,
	})
)
View Source
var Quiet = false
View Source
var Required = os.Getenv("DENDRITE_TEST_SKIP_NODB") == ""

Functions

func AssertEventIDsEqual

func AssertEventIDsEqual(t *testing.T, gotEventIDs []string, wants []*gomatrixserverlib.HeaderedEvent)

func AssertEventsEqual

func AssertEventsEqual(t *testing.T, gots, wants []*gomatrixserverlib.HeaderedEvent)

func ListenAndServe

func ListenAndServe(t *testing.T, router http.Handler, withTLS bool) (apiURL string, cancel func())

ListenAndServe will listen on a random high-numbered port and attach the given router. Returns the base URL to send requests to. Call `cancel` to shutdown the server, which will block until it has closed.

func NewMatrixKey

func NewMatrixKey(matrixKeyPath string) (err error)

NewMatrixKey generates a new ed25519 matrix server key and writes it to a file.

func NewRequest

func NewRequest(t *testing.T, method, path string, opts ...HTTPRequestOpt) *http.Request

func NewTLSKey

func NewTLSKey(tlsKeyPath, tlsCertPath string) error

NewTLSKey generates a new RSA TLS key and certificate and writes it to a file.

func NewTLSKeyWithAuthority

func NewTLSKeyWithAuthority(serverName, tlsKeyPath, tlsCertPath, authorityKeyPath, authorityCertPath string) error

func PrepareDBConnectionString

func PrepareDBConnectionString(t *testing.T, dbType DBType) (connStr string, close func())

Prepare a sqlite or postgres connection string for testing. Returns the connection string to use and a close function which must be called when the test finishes. Calling this function twice will return the same database, which will have data from previous tests unless close() is called. TODO: namespace for concurrent package tests

func Reversed

Reverse a list of events

func RoomPreset

func RoomPreset(p Preset) roomModifier

func RoomVersion

func RoomVersion(ver gomatrixserverlib.RoomVersion) roomModifier

func UnsortedStringSliceEqual

func UnsortedStringSliceEqual(first, second []string) bool

UnsortedStringSliceEqual returns true if the slices have same length & elements. Does not modify the given slice.

func WithAllDatabases

func WithAllDatabases(t *testing.T, testFn func(t *testing.T, db DBType))

Creates subtests with each known DBType

func WithKeyID

func WithKeyID(keyID gomatrixserverlib.KeyID) eventModifier

func WithOrigin

func WithOrigin(origin gomatrixserverlib.ServerName) eventModifier

func WithPrivateKey

func WithPrivateKey(pkey ed25519.PrivateKey) eventModifier

func WithStateKey

func WithStateKey(skey string) eventModifier

func WithTimestamp

func WithTimestamp(ts time.Time) eventModifier

func WithUnsigned

func WithUnsigned(unsigned interface{}) eventModifier

Types

type DBType

type DBType int
var DBTypePostgres DBType = 2
var DBTypeSQLite DBType = 1

type HTTPRequestOpt

type HTTPRequestOpt func(req *http.Request)

func WithJSONBody

func WithJSONBody(t *testing.T, body interface{}) HTTPRequestOpt

func WithQueryParams

func WithQueryParams(qps map[string]string) HTTPRequestOpt

type NopJSONVerifier

type NopJSONVerifier struct {
}

NopJSONVerifier is a JSONVerifier that verifies nothing and returns no errors.

func (*NopJSONVerifier) VerifyJSONs

type Preset

type Preset int
var (
	PresetNone               Preset = 0
	PresetPrivateChat        Preset = 1
	PresetPublicChat         Preset = 2
	PresetTrustedPrivateChat Preset = 3
)

type Room

type Room struct {
	ID      string
	Version gomatrixserverlib.RoomVersion
	// contains filtered or unexported fields
}

func NewRoom

func NewRoom(t *testing.T, creator *User, modifiers ...roomModifier) *Room

Create a new test room. Automatically creates the initial create events.

func (*Room) CreateAndInsert

func (r *Room) CreateAndInsert(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *gomatrixserverlib.HeaderedEvent

func (*Room) CreateEvent

func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *gomatrixserverlib.HeaderedEvent

Create an event in this room but do not insert it. Does not modify the room in any way (depth, fwd extremities, etc) so is thread-safe.

func (*Room) CurrentState

func (r *Room) CurrentState() []*gomatrixserverlib.HeaderedEvent

func (*Room) Events

func (r *Room) Events() []*gomatrixserverlib.HeaderedEvent

func (*Room) ForwardExtremities

func (r *Room) ForwardExtremities() []string

func (*Room) InsertEvent

func (r *Room) InsertEvent(t *testing.T, he *gomatrixserverlib.HeaderedEvent)

Add a new event to this room DAG. Not thread-safe.

func (*Room) MustGetAuthEventRefsForEvent

func (r *Room) MustGetAuthEventRefsForEvent(t *testing.T, needed gomatrixserverlib.StateNeeded) []gomatrixserverlib.EventReference

type User

type User struct {
	ID string
	// contains filtered or unexported fields
}

func NewUser

func NewUser(t *testing.T, opts ...UserOpt) *User

type UserOpt

type UserOpt func(*User)

func WithSigningServer

func WithSigningServer(srvName gomatrixserverlib.ServerName, keyID gomatrixserverlib.KeyID, privKey ed25519.PrivateKey) UserOpt

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL