grim/convey

598a722a4678
Fix extends working outside of the working directory. Fixes #150
/*
* Convey
* Copyright 2016-2017 Gary Kramlich <grim@reaperworld.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package path
import (
"os"
"testing"
"github.com/aphistic/sweet"
junit "github.com/aphistic/sweet-junit"
. "github.com/onsi/gomega"
)
type pathSuite struct{}
func TestMain(m *testing.M) {
RegisterFailHandler(sweet.GomegaFail)
sweet.Run(m, func(s *sweet.S) {
s.RegisterPlugin(junit.NewPlugin())
s.AddSuite(&pathSuite{})
})
}
func (s *pathSuite) TestTraversed(t sweet.T) {
tests := map[string]bool{
"/": true,
"..": true,
".": false,
"bar": false,
"foo/../baz": false,
}
wd, err := os.Getwd()
Expect(err).To(BeNil())
for path, res := range tests {
_, err := TraversesNonExistent(wd, path)
if res {
Expect(err).ToNot(BeNil())
} else {
Expect(err).To(BeNil())
}
}
}
func (s *pathSuite) TestDot(t sweet.T) {
wd, err := os.Getwd()
Expect(err).To(BeNil())
path, err := Traverses(wd, ".")
Expect(path).To(Equal("."))
Expect(err).To(BeNil())
}