@@ -6,6 +6,7 @@ package integrations
6
6
7
7
import (
8
8
"net/http"
9
+ "net/url"
9
10
"path"
10
11
"testing"
11
12
@@ -83,7 +84,7 @@ func TestNonasciiBranches(t *testing.T) {
83
84
},
84
85
{
85
86
from : "Plus+Is+Not+Space/Файл.md" ,
86
- to : "branch/Plus+Is+Not+Space/%d0%a4%d0%b0%d0%b9%d0%bb .md" ,
87
+ to : "branch/Plus+Is+Not+Space/%D0%A4%D0%B0%D0%B9%D0%BB .md" ,
87
88
status : http .StatusOK ,
88
89
},
89
90
{
@@ -114,7 +115,7 @@ func TestNonasciiBranches(t *testing.T) {
114
115
},
115
116
{
116
117
from : "タグ/ファイル.md" ,
117
- to : "tag/%e3%82%bf%e3%82%b0/%e3 %83%95%e3 %82%a1%e3 %82%a4%e3 %83%ab .md" ,
118
+ to : "tag/%e3%82%bf%e3%82%b0/%E3 %83%95%E3 %82%A1%E3 %82%A4%E3 %83%AB .md" ,
118
119
status : http .StatusOK ,
119
120
},
120
121
// Files
@@ -125,12 +126,12 @@ func TestNonasciiBranches(t *testing.T) {
125
126
},
126
127
{
127
128
from : "Файл.md" ,
128
- to : "branch/Plus+Is+Not+Space/%d0%a4%d0%b0%d0%b9%d0%bb .md" ,
129
+ to : "branch/Plus+Is+Not+Space/%D0%A4%D0%B0%D0%B9%D0%BB .md" ,
129
130
status : http .StatusOK ,
130
131
},
131
132
{
132
133
from : "ファイル.md" ,
133
- to : "branch/Plus+Is+Not+Space/%e3 %83%95%e3 %82%a1%e3 %82%a4%e3 %83%ab .md" ,
134
+ to : "branch/Plus+Is+Not+Space/%E3 %83%95%E3 %82%A1%E3 %82%A4%E3 %83%AB .md" ,
134
135
status : http .StatusNotFound , // it's not on default branch
135
136
},
136
137
// Same but url-encoded (few tests)
@@ -146,7 +147,7 @@ func TestNonasciiBranches(t *testing.T) {
146
147
},
147
148
{
148
149
from : "%D0%A4%D0%B0%D0%B9%D0%BB.md" ,
149
- to : "branch/Plus+Is+Not+Space/%d0%a4%d0%b0%d0%b9%d0%bb .md" ,
150
+ to : "branch/Plus+Is+Not+Space/%D0%A4%D0%B0%D0%B9%D0%BB .md" ,
150
151
status : http .StatusOK ,
151
152
},
152
153
{
@@ -159,6 +160,41 @@ func TestNonasciiBranches(t *testing.T) {
159
160
to : "tag/%d0%81/%e4%ba%ba" ,
160
161
status : http .StatusOK ,
161
162
},
163
+ {
164
+ from : "Plus+Is+Not+Space/%25%252525mightnotplaywell" ,
165
+ to : "branch/Plus+Is+Not+Space/%25%252525mightnotplaywell" ,
166
+ status : http .StatusOK ,
167
+ },
168
+ {
169
+ from : "Plus+Is+Not+Space/%25253Fisnotaquestion%25253F" ,
170
+ to : "branch/Plus+Is+Not+Space/%25253Fisnotaquestion%25253F" ,
171
+ status : http .StatusOK ,
172
+ },
173
+ {
174
+ from : "Plus+Is+Not+Space/" + url .PathEscape ("%3Fis?and#afile" ),
175
+ to : "branch/Plus+Is+Not+Space/" + url .PathEscape ("%3Fis?and#afile" ),
176
+ status : http .StatusOK ,
177
+ },
178
+ {
179
+ from : "Plus+Is+Not+Space/10%25.md" ,
180
+ to : "branch/Plus+Is+Not+Space/10%25.md" ,
181
+ status : http .StatusOK ,
182
+ },
183
+ {
184
+ from : "Plus+Is+Not+Space/" + url .PathEscape ("This+file%20has 1space" ),
185
+ to : "branch/Plus+Is+Not+Space/" + url .PathEscape ("This+file%20has 1space" ),
186
+ status : http .StatusOK ,
187
+ },
188
+ {
189
+ from : "Plus+Is+Not+Space/" + url .PathEscape ("This+file%2520has 2 spaces" ),
190
+ to : "branch/Plus+Is+Not+Space/" + url .PathEscape ("This+file%2520has 2 spaces" ),
191
+ status : http .StatusOK ,
192
+ },
193
+ {
194
+ from : "Plus+Is+Not+Space/" + url .PathEscape ("£15&$6.txt" ),
195
+ to : "branch/Plus+Is+Not+Space/" + url .PathEscape ("£15&$6.txt" ),
196
+ status : http .StatusOK ,
197
+ },
162
198
}
163
199
164
200
defer prepareTestEnv (t )()
0 commit comments