fork of https://github.com/sourcegraph/zoekt
1package languages
2
3import "testing"
4
5func TestGetLanguageByAlias(t *testing.T) {
6 tests := []struct {
7 name string
8 alias string
9 want string
10 wantOk bool
11 }{
12 {
13 name: "empty alias",
14 alias: "",
15 want: "",
16 wantOk: false,
17 },
18 {
19 name: "unknown alias",
20 alias: "unknown",
21 want: "",
22 wantOk: false,
23 },
24 {
25 name: "supported alias",
26 alias: "go",
27 want: "Go",
28 wantOk: true,
29 },
30 {
31 name: "unsupported by linguist alias",
32 alias: "magik",
33 want: "Magik",
34 wantOk: true,
35 },
36 {
37 name: "unsupported by linguist alias normalized",
38 alias: "mAgIk",
39 want: "Magik",
40 wantOk: true,
41 },
42 {
43 name: "apex example unsupported by linguist alias",
44 alias: "apex",
45 want: "Apex",
46 wantOk: true,
47 },
48 }
49
50 for _, tt := range tests {
51 t.Run(tt.name, func(t *testing.T) {
52 got, ok := GetLanguageByAlias(tt.alias)
53 if got != tt.want || ok != tt.wantOk {
54 t.Errorf("GetLanguageByAlias(%q) = %q, %t, want %q, %t", tt.alias, got, ok, tt.want, tt.wantOk)
55 }
56 })
57 }
58}
59
60func TestGetLanguage(t *testing.T) {
61 tests := []struct {
62 name string
63 filename string
64 content []byte
65 want string
66 }{
67 {
68 name: "empty filename",
69 filename: "",
70 content: []byte(""),
71 want: "",
72 },
73 {
74 name: "unknown extension",
75 filename: "file.unknown",
76 content: []byte(""),
77 want: "",
78 },
79 {
80 name: "supported extension",
81 filename: "file.go",
82 content: []byte("package main"),
83 want: "Go",
84 },
85 {
86 name: "magik: unsupported by linguist extension",
87 filename: "file.magik",
88 content: []byte(""),
89 want: "Magik",
90 },
91 {
92 name: "apex: unsupported by linguist extension",
93 filename: "file.apxc",
94 content: []byte(""),
95 want: "Apex",
96 },
97 }
98
99 for _, tt := range tests {
100 t.Run(tt.name, func(t *testing.T) {
101 got := GetLanguage(tt.filename, tt.content)
102 if got != tt.want {
103 t.Errorf("GetLanguage(%q, %q) = %q, want %q", tt.filename, tt.content, got, tt.want)
104 }
105 })
106 }
107}