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.

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