mirror of
https://github.com/rclone/rclone.git
synced 2026-05-13 02:44:21 -04:00
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package ls
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/rclone/rclone/fs/config"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func resetFilterFlags() {
|
|
filterName = ""
|
|
filterType = ""
|
|
filterSource = ""
|
|
filterDescription = ""
|
|
}
|
|
|
|
func TestTypeFilterDefaultIsFuzzy(t *testing.T) {
|
|
resetFilterFlags()
|
|
filterType = "box"
|
|
t.Cleanup(resetFilterFlags)
|
|
|
|
filters, err := compileFilters("", false)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, includeRemote(config.Remote{Type: "box"}, filters))
|
|
assert.True(t, includeRemote(config.Remote{Type: "dropbox"}, filters))
|
|
}
|
|
|
|
func TestTypeFilterExactMatchesWholeValue(t *testing.T) {
|
|
resetFilterFlags()
|
|
filterType = "box"
|
|
t.Cleanup(resetFilterFlags)
|
|
|
|
filters, err := compileFilters("", true)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, includeRemote(config.Remote{Type: "box"}, filters))
|
|
assert.True(t, includeRemote(config.Remote{Type: "BoX"}, filters))
|
|
assert.False(t, includeRemote(config.Remote{Type: "dropbox"}, filters))
|
|
}
|
|
|
|
func TestPositionalFilterExactAlsoMatchesWholeValue(t *testing.T) {
|
|
resetFilterFlags()
|
|
t.Cleanup(resetFilterFlags)
|
|
|
|
filters, err := compileFilters("box", true)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, includeRemote(config.Remote{Type: "box"}, filters))
|
|
assert.False(t, includeRemote(config.Remote{Name: "mybox"}, filters))
|
|
assert.False(t, includeRemote(config.Remote{Description: "my dropbox remote"}, filters))
|
|
}
|