-
Notifications
You must be signed in to change notification settings - Fork 1
/
utm_test.go
62 lines (54 loc) · 1.68 KB
/
utm_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package main
import (
"net/url"
"testing"
)
func TestParseUtm1(t *testing.T) {
u := getURL("https://www.google.com")
utm := parseUTM(u)
if utm.UtmValid || utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func TestParseUtm2(t *testing.T) {
u := getURL("https://www.example.com?Utm_SOURCE=source&utm_medium=medium&utm_campaign=sale1&utm_id=id&utm_term=keyword1&utm_content=content")
utm := parseUTM(u)
if !utm.UtmValid || !utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func TestParseUtm3(t *testing.T) {
sampleName := " This IS <>\"' for Name"
u := getURL("https://www.example.com?Utm_SOURCE=source&utm_medium=medium&utm_campaign=" + sampleName + "&utm_id=id&utm_term=keyword1&utm_content=content")
utm := parseUTM(u)
if !utm.UtmValid || !utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func TestParseUtm4(t *testing.T) {
sampleName := " This IS <>\"' for Name"
u := getURL("https://www.example.com/?utm_source=source&utm_medium=medium&utm_campaign=" + url.QueryEscape(sampleName) + "&utm_id=id&utm_term=keyword1&utm_content=content")
utm := parseUTM(u)
if !utm.UtmValid || !utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func TestParseUtm5(t *testing.T) {
u := getURL("https://www.example.com?Utm_SOURCE=source&utm_medium=medium")
utm := parseUTM(u)
if utm.UtmValid || !utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func TestParseUtm6(t *testing.T) {
utm := parseUTM(nil)
if utm.UtmValid || utm.UtmExist {
t.Errorf("invalid utm parse")
}
}
func BenchmarkParseUtm(b *testing.B) {
u := getURL("https://www.example.com?Utm_SOURCE=source&utm_medium=medium&utm_campaign=sale1&utm_id=id&utm_term=keyword1&utm_content=content")
for n := 0; n < b.N; n++ {
parseUTM(u)
}
}