PNG  IHDR pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F@8N ' p @8N@8}' p '#@8N@8N pQ9p!i~}|6-ӪG` VP.@*j>[ K^<֐Z]@8N'KQ<Q(`s" 'hgpKB`R@Dqj '  'P$a ( `D$Na L?u80e J,K˷NI'0eݷ(NI'؀ 2ipIIKp`:O'`ʤxB8Ѥx Ѥx $ $P6 :vRNb 'p,>NB 'P]-->P T+*^h& p '‰a ‰ (ĵt#u33;Nt̵'ޯ; [3W ~]0KH1q@8]O2]3*̧7# *p>us p _6]/}-4|t'|Smx= DoʾM×M_8!)6lq':l7!|4} '\ne t!=hnLn (~Dn\+‰_4k)0e@OhZ`F `.m1} 'vp{F`ON7Srx 'D˸nV`><;yMx!IS钦OM)Ե٥x 'DSD6bS8!" ODz#R >S8!7ّxEh0m$MIPHi$IvS8IN$I p$O8I,sk&I)$IN$Hi$I^Ah.p$MIN$IR8I·N "IF9Ah0m$MIN$IR8IN$I 3jIU;kO$ɳN$+ q.x* tEXtComment

Viewing File: /opt/go/pkg/mod/github.com/asaskevich/govalidator@v0.0.0-20230301143203-a9d515a09cc2/utils_test.go

package govalidator

import (
	"reflect"
	"testing"
)

func TestContains(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected bool
	}{
		{"abacada", "", true},
		{"abacada", "ritir", false},
		{"abacada", "a", true},
		{"abacada", "aca", true},
	}
	for _, test := range tests {
		actual := Contains(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Contains(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestMatches(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected bool
	}{
		{"123456789", "[0-9]+", true},
		{"abacada", "cab$", false},
		{"111222333", "((111|222|333)+)+", true},
		{"abacaba", "((123+]", false},
	}
	for _, test := range tests {
		actual := Matches(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Matches(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestLeftTrim(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "foo  \r\n\t   "},
		{"010100201000", "01", "201000"},
	}
	for _, test := range tests {
		actual := LeftTrim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected LeftTrim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestRightTrim(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "  \r\n\tfoo"},
		{"010100201000", "01", "0101002"},
	}
	for _, test := range tests {
		actual := RightTrim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected RightTrim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestTrim(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "foo"},
		{"010100201000", "01", "2"},
		{"1234567890987654321", "1-8", "909"},
	}
	for _, test := range tests {
		actual := Trim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Trim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestWhiteList(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"abcdef", "abc", "abc"},
		{"aaaaaaaaaabbbbbbbbbb", "abc", "aaaaaaaaaabbbbbbbbbb"},
		{"a1b2c3", "abc", "abc"},
		{"   ", "abc", ""},
		{"a3a43a5a4a3a2a23a4a5a4a3a4", "a-z", "aaaaaaaaaaaa"},
	}
	for _, test := range tests {
		actual := WhiteList(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected WhiteList(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestBlackList(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"abcdef", "abc", "def"},
		{"aaaaaaaaaabbbbbbbbbb", "abc", ""},
		{"a1b2c3", "abc", "123"},
		{"   ", "abc", "   "},
		{"a3a43a5a4a3a2a23a4a5a4a3a4", "a-z", "34354322345434"},
	}
	for _, test := range tests {
		actual := BlackList(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected BlackList(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestStripLow(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   bool
		expected string
	}{
		{"foo\x00", false, "foo"},
		{"\x7Ffoo\x02", false, "foo"},
		{"\x01\x09", false, ""},
		{"foo\x0A\x0D", false, "foo"},
		{"perch\u00e9", false, "perch\u00e9"},
		{"\u20ac", false, "\u20ac"},
		{"\u2206\x0A", false, "\u2206"},
		{"foo\x0A\x0D", true, "foo\x0A\x0D"},
		{"\x03foo\x0A\x0D", true, "foo\x0A\x0D"},
	}
	for _, test := range tests {
		actual := StripLow(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected StripLow(%q,%t) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestReplacePattern(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		param3   string
		expected string
	}{
		{"ab123ba", "[0-9]+", "aca", "abacaba"},
		{"abacaba", "[0-9]+", "aca", "abacaba"},
		{"httpftp://github.comio", "(ftp|io)", "", "http://github.com"},
		{"aaaaaaaaaa", "a", "", ""},
		{"http123123ftp://git534543hub.comio", "(ftp|io|[0-9]+)", "", "http://github.com"},
	}
	for _, test := range tests {
		actual := ReplacePattern(test.param1, test.param2, test.param3)
		if actual != test.expected {
			t.Errorf("Expected ReplacePattern(%q,%q,%q) to be %v, got %v", test.param1, test.param2, test.param3, test.expected, actual)
		}
	}
}

func TestEscape(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{`<img alt="foo&bar">`, "&lt;img alt=&#34;foo&amp;bar&#34;&gt;"},
	}
	for _, test := range tests {
		actual := Escape(test.param)
		if actual != test.expected {
			t.Errorf("Expected Escape(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestUnderscoreToCamelCase(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{"a_b_c", "ABC"},
		{"my_func", "MyFunc"},
		{"1ab_cd", "1abCd"},
	}
	for _, test := range tests {
		actual := UnderscoreToCamelCase(test.param)
		if actual != test.expected {
			t.Errorf("Expected UnderscoreToCamelCase(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestCamelCaseToUnderscore(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{"MyFunc", "my_func"},
		{"ABC", "a_b_c"},
		{"1B", "1_b"},
		{"foo_bar", "foo_bar"},
		{"FooV2Bar", "foo_v2_bar"},
	}
	for _, test := range tests {
		actual := CamelCaseToUnderscore(test.param)
		if actual != test.expected {
			t.Errorf("Expected CamelCaseToUnderscore(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestReverse(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{"abc", "cba"},
		{"カタカナ", "ナカタカ"},
	}
	for _, test := range tests {
		actual := Reverse(test.param)
		if actual != test.expected {
			t.Errorf("Expected Reverse(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestGetLines(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected []string
	}{
		{"abc", []string{"abc"}},
		{"a\nb\nc", []string{"a", "b", "c"}},
	}
	for _, test := range tests {
		actual := GetLines(test.param)
		if !reflect.DeepEqual(actual, test.expected) {
			t.Errorf("Expected GetLines(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestGetLine(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   int
		expected string
	}{
		{"abc", 0, "abc"},
		{"a\nb\nc", 0, "a"},
		{"abc", -1, ""},
		{"abacaba\n", 1, ""},
		{"abc", 3, ""},
	}
	for _, test := range tests {
		actual, _ := GetLine(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected GetLine(%q, %d) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}

func TestRemoveTags(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{"abc", "abc"},
		{"<!-- Test -->", ""},
		{"<div><div><p><a>Text</a></p></div></div>", "Text"},
		{`<a href="#">Link</a>`, "Link"},
	}
	for _, test := range tests {
		actual := RemoveTags(test.param)
		if actual != test.expected {
			t.Errorf("Expected RemoveTags(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestSafeFileName(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{"abc", "abc"},
		{"123456789     '_-?ASDF@£$%£%^é.html", "123456789-asdf.html"},
		{"ReadMe.md", "readme.md"},
		{"file:///c:/test.go", "test.go"},
		{"../../../Hello World!.txt", "hello-world.txt"},
	}
	for _, test := range tests {
		actual := SafeFileName(test.param)
		if actual != test.expected {
			t.Errorf("Expected SafeFileName(%q) to be %v, got %v", test.param, test.expected, actual)
		}
	}
}

func TestNormalizeEmail(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param    string
		expected string
	}{
		{`test@me.com`, `test@me.com`},
		{`some.name@gmail.com`, `somename@gmail.com`},
		{`some.name@googlemail.com`, `somename@gmail.com`},
		{`some.name+extension@gmail.com`, `somename@gmail.com`},
		{`some.name+extension@googlemail.com`, `somename@gmail.com`},
		{`some.name.middlename+extension@gmail.com`, `somenamemiddlename@gmail.com`},
		{`some.name.middlename+extension@googlemail.com`, `somenamemiddlename@gmail.com`},
		{`some.name.midd.lena.me.+extension@gmail.com`, `somenamemiddlename@gmail.com`},
		{`some.name.midd.lena.me.+extension@googlemail.com`, `somenamemiddlename@gmail.com`},
		{`some.name+extension@unknown.com`, `some.name+extension@unknown.com`},
		// TODO: {`hans@m端ller.com`, `hans@m端ller.com`},
		{`hans`, ``},
	}
	for _, test := range tests {
		actual, err := NormalizeEmail(test.param)
		if actual != test.expected {
			t.Errorf("Expected NormalizeEmail(%q) to be %v, got %v, err %v", test.param, test.expected, actual, err)
		}
	}
}

func TestTruncate(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   int
		param3   string
		expected string
	}{
		{`Lorem ipsum dolor sit amet, consectetur adipiscing elit.`, 25, `...`, `Lorem ipsum dolor sit amet...`},
		{`Measuring programming progress by lines of code is like measuring aircraft building progress by weight.`, 35, ` new born babies!`, `Measuring programming progress by new born babies!`},
		{`Testestestestestestestestestest testestestestestestestestest`, 7, `...`, `Testestestestestestestestestest...`},
		{`Testing`, 7, `...`, `Testing`},
	}
	for _, test := range tests {
		actual := Truncate(test.param1, test.param2, test.param3)
		if actual != test.expected {
			t.Errorf("Expected Truncate(%q, %d, %q) to be %v, got %v", test.param1, test.param2, test.param3, test.expected, actual)
		}
	}
}

func TestPadLeft(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		param3   int
		expected string
	}{
		{"こんにちは", "xyz", 12, "xyzxyzxこんにちは"},
		{"こんにちは", "xyz", 11, "xyzxyzこんにちは"},
		{"abc", "x", 5, "xxabc"},
		{"abc", "xyz", 5, "xyabc"},
		{"abcde", "xyz", 5, "abcde"},
		{"abcde", "xyz", 4, "abcde"},
	}
	for _, test := range tests {
		actual := PadLeft(test.param1, test.param2, test.param3)
		if actual != test.expected {
			t.Errorf("Expected PadLeft(%q,%q,%q) to be %v, got %v", test.param1, test.param2, test.param3, test.expected, actual)
		}
	}
}

func TestPadRight(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		param3   int
		expected string
	}{
		{"こんにちは", "xyz", 12, "こんにちはxyzxyzx"},
		{"こんにちは", "xyz", 11, "こんにちはxyzxyz"},
		{"abc", "x", 5, "abcxx"},
		{"abc", "xyz", 5, "abcxy"},
		{"abcde", "xyz", 5, "abcde"},
		{"abcde", "xyz", 4, "abcde"},
	}
	for _, test := range tests {
		actual := PadRight(test.param1, test.param2, test.param3)
		if actual != test.expected {
			t.Errorf("Expected PadRight(%q,%q,%q) to be %v, got %v", test.param1, test.param2, test.param3, test.expected, actual)
		}
	}
}

func TestPadBoth(t *testing.T) {
	t.Parallel()

	var tests = []struct {
		param1   string
		param2   string
		param3   int
		expected string
	}{
		{"こんにちは", "xyz", 12, "xyzこんにちはxyzx"},
		{"こんにちは", "xyz", 11, "xyzこんにちはxyz"},
		{"abc", "x", 5, "xabcx"},
		{"abc", "xyz", 5, "xabcx"},
		{"abcde", "xyz", 5, "abcde"},
		{"abcde", "xyz", 4, "abcde"},
	}
	for _, test := range tests {
		actual := PadBoth(test.param1, test.param2, test.param3)
		if actual != test.expected {
			t.Errorf("Expected PadBoth(%q,%q,%q) to be %v, got %v", test.param1, test.param2, test.param3, test.expected, actual)
		}
	}
}
Back to Directory=ceiIENDB`