1package purell
2
3import (
4	"testing"
5)
6
7var (
8	safeUrl        = "HttPS://..iaMHost..Test:443/paTh^A%ef//./%41PaTH/..//?"
9	usuallySafeUrl = "HttPS://..iaMHost..Test:443/paTh^A%ef//./%41PaTH/../final/"
10	unsafeUrl      = "HttPS://..www.iaMHost..Test:443/paTh^A%ef//./%41PaTH/../final/index.html?t=val1&a=val4&z=val5&a=val1#fragment"
11	allDWORDUrl    = "HttPS://1113982867:/paTh^A%ef//./%41PaTH/../final/index.html?t=val1&a=val4&z=val5&a=val1#fragment"
12	allOctalUrl    = "HttPS://0102.0146.07.0223:/paTh^A%ef//./%41PaTH/../final/index.html?t=val1&a=val4&z=val5&a=val1#fragment"
13	allHexUrl      = "HttPS://0x42660793:/paTh^A%ef//./%41PaTH/../final/index.html?t=val1&a=val4&z=val5&a=val1#fragment"
14	allCombinedUrl = "HttPS://..0x42660793.:/paTh^A%ef//./%41PaTH/../final/index.html?t=val1&a=val4&z=val5&a=val1#fragment"
15)
16
17func BenchmarkSafe(b *testing.B) {
18	for i := 0; i < b.N; i++ {
19		NormalizeURLString(safeUrl, FlagsSafe)
20	}
21}
22
23func BenchmarkUsuallySafe(b *testing.B) {
24	for i := 0; i < b.N; i++ {
25		NormalizeURLString(usuallySafeUrl, FlagsUsuallySafeGreedy)
26	}
27}
28
29func BenchmarkUnsafe(b *testing.B) {
30	for i := 0; i < b.N; i++ {
31		NormalizeURLString(unsafeUrl, FlagsUnsafeGreedy)
32	}
33}
34
35func BenchmarkAllDWORD(b *testing.B) {
36	for i := 0; i < b.N; i++ {
37		NormalizeURLString(allDWORDUrl, FlagsAllGreedy)
38	}
39}
40
41func BenchmarkAllOctal(b *testing.B) {
42	for i := 0; i < b.N; i++ {
43		NormalizeURLString(allOctalUrl, FlagsAllGreedy)
44	}
45}
46
47func BenchmarkAllHex(b *testing.B) {
48	for i := 0; i < b.N; i++ {
49		NormalizeURLString(allHexUrl, FlagsAllGreedy)
50	}
51}
52
53func BenchmarkAllCombined(b *testing.B) {
54	for i := 0; i < b.N; i++ {
55		NormalizeURLString(allCombinedUrl, FlagsAllGreedy)
56	}
57}
58