argo-cd/util/security/path_traversal_test.go
Simon Behar ef2501f4b1
Add support for hidden directories with directory enforcer (#2821)
* Add support for hidden directories with directory enforcer

* Refactor

* Lint

* Rework done, still needs tests

* WIP

* Should be done

* Fix test

* Helm Charts
2019-12-10 13:50:20 -08:00

26 lines
867 B
Go

package security
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestEnforceToCurrentRoot(t *testing.T) {
cleanDir, err := EnforceToCurrentRoot("/home/argo/helmapp/", "/home/argo/helmapp/values.yaml")
assert.NoError(t, err)
assert.Equal(t, "/home/argo/helmapp/values.yaml", cleanDir)
// File is outside current working directory
_, err = EnforceToCurrentRoot("/home/argo/helmapp/", "/home/values.yaml")
assert.Error(t, err)
// File is outside current working directory
_, err = EnforceToCurrentRoot("/home/argo/helmapp/", "/home/argo/helmapp/../differentapp/values.yaml")
assert.Error(t, err)
// Goes back and forth, but still legal
cleanDir, err = EnforceToCurrentRoot("/home/argo/helmapp/", "/home/argo/helmapp/../../argo/helmapp/values.yaml")
assert.NoError(t, err)
assert.Equal(t, "/home/argo/helmapp/values.yaml", cleanDir)
}