mirror of
https://github.com/peco/peco.git
synced 2026-09-10 07:16:29 -04:00
Merge pull request #686 from peco/fix-error-handling-minor
tweak handling
This commit is contained in:
commit
22439d1b69
3
query.go
3
query.go
|
|
@ -72,6 +72,9 @@ func (q *Query) RuneSlice() []rune {
|
|||
func (q *Query) RuneAt(where int) rune {
|
||||
q.mutex.Lock()
|
||||
defer q.mutex.Unlock()
|
||||
if where < 0 || where >= len(q.query) {
|
||||
return 0
|
||||
}
|
||||
return q.query[where]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -152,6 +152,25 @@ func TestQueryRuneAtUnicode(t *testing.T) {
|
|||
require.Equal(t, 'う', q.RuneAt(2))
|
||||
}
|
||||
|
||||
func TestQueryRuneAtOutOfBounds(t *testing.T) {
|
||||
t.Parallel()
|
||||
var q Query
|
||||
q.Set("hello")
|
||||
|
||||
// Out-of-bounds index returns zero rune without panicking
|
||||
require.Equal(t, rune(0), q.RuneAt(5))
|
||||
require.Equal(t, rune(0), q.RuneAt(100))
|
||||
|
||||
// Negative index returns zero rune without panicking
|
||||
require.Equal(t, rune(0), q.RuneAt(-1))
|
||||
require.Equal(t, rune(0), q.RuneAt(-100))
|
||||
|
||||
// Empty query: any index returns zero rune
|
||||
var empty Query
|
||||
require.Equal(t, rune(0), empty.RuneAt(0))
|
||||
require.Equal(t, rune(0), empty.RuneAt(-1))
|
||||
}
|
||||
|
||||
func TestQueryInsertAt(t *testing.T) {
|
||||
t.Parallel()
|
||||
tests := []struct {
|
||||
|
|
|
|||
Loading…
Reference in a new issue