test_helpers.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package handler
  2. import (
  3. "github.com/mkaminski/goaim/server"
  4. "time"
  5. )
  6. // sessOptWarning sets a warning level on the session object
  7. func sessOptWarning(level uint16) func(session *server.Session) {
  8. return func(session *server.Session) {
  9. session.IncreaseWarning(level)
  10. }
  11. }
  12. // sessOptCannedID sets a canned session ID ("user-sess-id") on the session
  13. // object
  14. func sessOptCannedID(session *server.Session) {
  15. session.SetID("user-sess-id")
  16. }
  17. // sessOptCannedID sets a canned session ID ("user-sess-id") on the session
  18. // object
  19. func sessOptID(ID string) func(session *server.Session) {
  20. return func(session *server.Session) {
  21. session.SetID(ID)
  22. }
  23. }
  24. // sessOptCannedAwayMessage sets a canned away message ("this is my away
  25. // message!") on the session object
  26. func sessOptCannedAwayMessage(session *server.Session) {
  27. session.SetAwayMessage("this is my away message!")
  28. }
  29. // sessOptCannedSignonTime sets a canned sign-on time (1696790127565) on the
  30. // session object
  31. func sessOptCannedSignonTime(session *server.Session) {
  32. session.SetSignonTime(time.UnixMilli(1696790127565))
  33. }
  34. // sessOptCannedSignonTime sets the invisible flag to true on the session
  35. // object
  36. func sessOptInvisible(session *server.Session) {
  37. session.SetInvisible(true)
  38. }
  39. // newTestSession creates a session object with 0 or more functional options
  40. // applied
  41. func newTestSession(screenName string, options ...func(session *server.Session)) *server.Session {
  42. s := server.NewSession()
  43. s.SetScreenName(screenName)
  44. for _, op := range options {
  45. op(s)
  46. }
  47. return s
  48. }