You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

modes_test.go 851B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright (c) 2017 Daniel Oaks
  2. // released under the MIT license
  3. package irc
  4. import (
  5. "reflect"
  6. "testing"
  7. "github.com/oragono/oragono/irc/modes"
  8. )
  9. func TestParseDefaultChannelModes(t *testing.T) {
  10. nt := "+nt"
  11. n := "+n"
  12. empty := ""
  13. tminusi := "+t -i"
  14. var parseTests = []struct {
  15. raw *string
  16. expected modes.Modes
  17. }{
  18. {&nt, modes.Modes{modes.NoOutside, modes.OpOnlyTopic}},
  19. {&n, modes.Modes{modes.NoOutside}},
  20. {&empty, modes.Modes{}},
  21. {&tminusi, modes.Modes{modes.OpOnlyTopic}},
  22. {nil, modes.Modes{modes.NoOutside, modes.OpOnlyTopic}},
  23. }
  24. var config Config
  25. for _, testcase := range parseTests {
  26. config.Channels.DefaultModes = testcase.raw
  27. result := ParseDefaultChannelModes(&config)
  28. if !reflect.DeepEqual(result, testcase.expected) {
  29. t.Errorf("expected modes %s, got %s", testcase.expected, result)
  30. }
  31. }
  32. }