mirror of
https://github.com/ddworken/hishtory.git
synced 2025-08-09 15:15:08 +02:00
* Add support for quoted searchs for exact matches, for #135 * Add support for quoting search queries * Fix spliteEscaped so that it works with escaping dashes and colons in search queries
This commit is contained in:
@ -257,7 +257,7 @@ func TestContainsUnescaped(t *testing.T) {
|
||||
for _, tc := range testcases {
|
||||
actual := containsUnescaped(tc.input, tc.token)
|
||||
if !reflect.DeepEqual(actual, tc.expected) {
|
||||
t.Fatalf("containsUnescaped failure for containsUnescaped(%#v, %#v), actual=%#v", tc.input, tc.token, actual)
|
||||
t.Fatalf("failure for containsUnescaped(%#v, %#v), actual=%#v", tc.input, tc.token, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -274,16 +274,30 @@ func TestSplitEscaped(t *testing.T) {
|
||||
{"foo bar baz", ' ', 3, []string{"foo", "bar", "baz"}},
|
||||
{"foo bar baz", ' ', 1, []string{"foo bar baz"}},
|
||||
{"foo bar baz", ' ', -1, []string{"foo", "bar", "baz"}},
|
||||
{"foo\\ bar baz", ' ', -1, []string{"foo\\ bar", "baz"}},
|
||||
{"foo\\bar baz", ' ', -1, []string{"foo\\bar", "baz"}},
|
||||
{"foo\\bar baz foob", ' ', 2, []string{"foo\\bar", "baz foob"}},
|
||||
{"foo\\ bar\\ baz", ' ', -1, []string{"foo\\ bar\\ baz"}},
|
||||
{"foo\\ bar\\ baz", ' ', -1, []string{"foo\\ bar\\ ", "baz"}},
|
||||
{"foo\\ bar baz", ' ', -1, []string{"foo bar", "baz"}},
|
||||
{"foo\\bar baz", ' ', -1, []string{"foobar", "baz"}},
|
||||
{"foo\\bar baz foob", ' ', 2, []string{"foobar", "baz foob"}},
|
||||
{"foo\\ bar\\ baz", ' ', -1, []string{"foo bar baz"}},
|
||||
{"foo\\ bar\\ baz", ' ', -1, []string{"foo bar ", "baz"}},
|
||||
{"\"foo bar\"", ' ', -1, []string{"foo bar"}},
|
||||
{"\"foo bar\" \" \"", ' ', -1, []string{"foo bar", " "}},
|
||||
{"\"foo bar baz\" and", ' ', -1, []string{"foo bar baz", "and"}},
|
||||
{"\"foo bar baz\" and", ' ', -1, []string{"foo bar baz", "and"}},
|
||||
{"\"foo bar baz", ' ', -1, []string{"foo bar baz"}},
|
||||
{"\"foo bar baz\\\"\"", ' ', -1, []string{"foo bar baz\""}},
|
||||
{"cwd:\"foo bar :baz\\\"\"", ':', -1, []string{"cwd", "foo bar :baz\""}},
|
||||
{"cwd:\"foo bar :baz\\\"\"", ' ', -1, []string{"cwd:foo bar :baz\""}},
|
||||
{"ls \\-foo", ' ', -1, []string{"ls", "\\-foo"}},
|
||||
{"ls \\-foo \\a \\\\", ' ', -1, []string{"ls", "\\-foo", "a", "\\\\"}},
|
||||
{"foo:bar", ':', -1, []string{"foo", "bar"}},
|
||||
{"foo:bar", ' ', -1, []string{"foo:bar"}},
|
||||
{"foo\\:bar", ':', -1, []string{"foo\\:bar"}},
|
||||
{"foo\\:bar", ' ', -1, []string{"foo\\:bar"}},
|
||||
}
|
||||
for _, tc := range testcases {
|
||||
actual := splitEscaped(tc.input, tc.char, tc.limit)
|
||||
if !reflect.DeepEqual(actual, tc.expected) {
|
||||
t.Fatalf("containsUnescaped failure for splitEscaped(%#v, %#v, %#v), actual=%#v", tc.input, string(tc.char), tc.limit, actual)
|
||||
t.Fatalf("failure for splitEscaped(%#v, %#v, %#v), actual=%#v", tc.input, string(tc.char), tc.limit, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user