| 88 | } |
| 89 | |
| 90 | func (s *ParserSuite) TestParseWithValidExpression(c *C) { |
| 91 | tim, _ := time.Parse("2006-01-02T15:04:05Z", "2016-12-16T21:42:47Z") |
| 92 | |
| 93 | datas := map[string]Revisioner{ |
| 94 | "@": []Revisioner{Ref("HEAD")}, |
| 95 | "@~3": []Revisioner{ |
| 96 | Ref("HEAD"), |
| 97 | TildePath{3}, |
| 98 | }, |
| 99 | "@{2016-12-16T21:42:47Z}": []Revisioner{AtDate{tim}}, |
| 100 | "@{1}": []Revisioner{AtReflog{1}}, |
| 101 | "@{-1}": []Revisioner{AtCheckout{1}}, |
| 102 | "master@{upstream}": []Revisioner{ |
| 103 | Ref("master"), |
| 104 | AtUpstream{}, |
| 105 | }, |
| 106 | "@{upstream}": []Revisioner{ |
| 107 | AtUpstream{}, |
| 108 | }, |
| 109 | "@{u}": []Revisioner{ |
| 110 | AtUpstream{}, |
| 111 | }, |
| 112 | "master@{push}": []Revisioner{ |
| 113 | Ref("master"), |
| 114 | AtPush{}, |
| 115 | }, |
| 116 | "master@{2016-12-16T21:42:47Z}": []Revisioner{ |
| 117 | Ref("master"), |
| 118 | AtDate{tim}, |
| 119 | }, |
| 120 | "HEAD^": []Revisioner{ |
| 121 | Ref("HEAD"), |
| 122 | CaretPath{1}, |
| 123 | }, |
| 124 | "master~3": []Revisioner{ |
| 125 | Ref("master"), |
| 126 | TildePath{3}, |
| 127 | }, |
| 128 | "v0.99.8^{commit}": []Revisioner{ |
| 129 | Ref("v0.99.8"), |
| 130 | CaretType{"commit"}, |
| 131 | }, |
| 132 | "v0.99.8^{}": []Revisioner{ |
| 133 | Ref("v0.99.8"), |
| 134 | CaretType{"tag"}, |
| 135 | }, |
| 136 | "HEAD^{/fix nasty bug}": []Revisioner{ |
| 137 | Ref("HEAD"), |
| 138 | CaretReg{regexp.MustCompile("fix nasty bug"), false}, |
| 139 | }, |
| 140 | ":/fix nasty bug": []Revisioner{ |
| 141 | ColonReg{regexp.MustCompile("fix nasty bug"), false}, |
| 142 | }, |
| 143 | "HEAD:README": []Revisioner{ |
| 144 | Ref("HEAD"), |
| 145 | ColonPath{"README"}, |
| 146 | }, |
| 147 | ":README": []Revisioner{ |