| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package sub
- import (
- "reflect"
- "testing"
- )
- func TestSplitLinkLines(t *testing.T) {
- cases := []struct {
- name string
- in string
- want []string
- }{
- {"single_line", "vless://abc", []string{"vless://abc"}},
- {"two_lines", "vless://abc\nvmess://xyz", []string{"vless://abc", "vmess://xyz"}},
- {"trims_each_line", " vless://abc \n\tvmess://xyz\t", []string{"vless://abc", "vmess://xyz"}},
- {"skips_blank_lines", "vless://abc\n\n\nvmess://xyz\n", []string{"vless://abc", "vmess://xyz"}},
- }
- for _, c := range cases {
- t.Run(c.name, func(t *testing.T) {
- got := splitLinkLines(c.in)
- if !reflect.DeepEqual(got, c.want) {
- t.Fatalf("splitLinkLines(%q) = %#v, want %#v", c.in, got, c.want)
- }
- })
- }
- }
- func TestSplitLinkLines_EmptyInputIsNil(t *testing.T) {
- if got := splitLinkLines(""); got != nil {
- t.Fatalf("splitLinkLines(\"\") = %#v, want nil", got)
- }
- }
- func TestSplitLinkLines_WhitespaceOnlyHasNoEntries(t *testing.T) {
- got := splitLinkLines(" \n\t \n")
- if len(got) != 0 {
- t.Fatalf("splitLinkLines(whitespace) = %#v, want empty slice", got)
- }
- }
|