session_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package handlers
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/mk6i/open-oscar-server/state"
  6. )
  7. func TestBuildMyInfo_UserTypeAndService(t *testing.T) {
  8. tests := []struct {
  9. name string
  10. screenName string
  11. wantType string
  12. wantSvc string
  13. }{
  14. {"aim screen name", "mikekelly", "aim", "AIM"},
  15. {"icq uin", "123456789", "icq", "ICQ"},
  16. }
  17. for _, tt := range tests {
  18. t.Run(tt.name, func(t *testing.T) {
  19. mi := buildMyInfo(state.DisplayScreenName(tt.screenName), "online", "")
  20. assert.Equal(t, tt.wantType, mi["userType"])
  21. assert.Equal(t, tt.wantSvc, mi["service"])
  22. })
  23. }
  24. }
  25. func TestBuildMyInfo_BuddyIcon(t *testing.T) {
  26. t.Run("included when set", func(t *testing.T) {
  27. mi := buildMyInfo(state.DisplayScreenName("mikekelly"), "away", "http://x/icon")
  28. assert.Equal(t, "http://x/icon", mi["buddyIcon"])
  29. })
  30. t.Run("omitted when empty so the client merge preserves the current icon", func(t *testing.T) {
  31. mi := buildMyInfo(state.DisplayScreenName("mikekelly"), "away", "")
  32. _, ok := mi["buddyIcon"]
  33. assert.False(t, ok)
  34. })
  35. }