55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
|
package realpath
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
var symlinkTests []symlinkTest
|
||
|
|
||
|
type symlinkTest struct {
|
||
|
path []byte
|
||
|
start int
|
||
|
link string
|
||
|
after string
|
||
|
expect []byte
|
||
|
}
|
||
|
|
||
|
func (t symlinkTest) expecting(result []byte) bool {
|
||
|
return string(result) == string(t.expect)
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
symlinkTests = []symlinkTest{
|
||
|
symlinkTest{
|
||
|
path: []byte("/absolute/path/link/test"),
|
||
|
start: 14,
|
||
|
link: "/another/absolute/path",
|
||
|
after: "/test",
|
||
|
expect: []byte("/another/absolute/path/test"),
|
||
|
},
|
||
|
symlinkTest{
|
||
|
path: []byte("/absolute/path/link/test"),
|
||
|
start: 14,
|
||
|
link: "./relative/path2",
|
||
|
after: "/test",
|
||
|
expect: []byte("/absolute/path/relative/path2/test"),
|
||
|
},
|
||
|
symlinkTest{
|
||
|
path: []byte("/absolute/path/link/test"),
|
||
|
start: 14,
|
||
|
link: "../relative/path2",
|
||
|
after: "/test",
|
||
|
expect: []byte("/absolute/relative/path2/test"),
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSwitchSymlinkCom(t *testing.T) {
|
||
|
for i, tt := range symlinkTests {
|
||
|
if r := switchSymlinkCom(tt.path, tt.start, tt.link, tt.after); !tt.expecting(r) {
|
||
|
t.Errorf("Failed test %d.\nExpected: \"%s\"\nActually: \"%s\"",
|
||
|
i, tt.expect, r)
|
||
|
}
|
||
|
}
|
||
|
}
|