| 59 | } |
| 60 | |
| 61 | func TestNodeEscapePaths(t *testing.T) { |
| 62 | parent := NewNodeBase() |
| 63 | child1 := NewNodeBase(parent).SetName("child1.go") |
| 64 | child2 := NewNodeBase(parent).SetName("child1/child1") |
| 65 | child3 := NewNodeBase(parent).SetName("child1/child1.go") |
| 66 | schild2 := NewNodeBase(child2).SetName("subchild1") |
| 67 | assert.Len(t, parent.Children, 3) |
| 68 | assert.Equal(t, `/node-base/child1.go`, child1.Path()) |
| 69 | assert.Equal(t, `child1.go`, child1.PathFrom(parent)) |
| 70 | assert.Equal(t, `/node-base/child1\\child1`, child2.Path()) |
| 71 | assert.Equal(t, `/node-base/child1\\child1.go`, child3.Path()) |
| 72 | assert.Equal(t, `/node-base/child1\\child1/subchild1`, schild2.Path()) |
| 73 | assert.Equal(t, child1, parent.FindPath(child1.PathFrom(parent))) |
| 74 | assert.Equal(t, child3, parent.FindPath(child3.PathFrom(parent))) |
| 75 | assert.Equal(t, child3, parent.FindPath(child3.PathFrom(parent))) |
| 76 | assert.Equal(t, schild2, parent.FindPath(schild2.PathFrom(parent))) |
| 77 | assert.Equal(t, schild2, child2.FindPath(schild2.PathFrom(child2))) |
| 78 | } |
| 79 | |
| 80 | func TestNodePathFrom(t *testing.T) { |
| 81 | a := NewNodeBase().SetName("a") |