(t *testing.T)
| 244 | } |
| 245 | |
| 246 | func TestHTTPClientSanitizeJSONControlCharactersC0(t *testing.T) { |
| 247 | ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 248 | issue := Issue{ |
| 249 | Title: "\u001B[31mRed Title\u001B[0m", |
| 250 | Body: "1\u0001 2\u0002 3\u0003 4\u0004 5\u0005 6\u0006 7\u0007 8\u0008 9\t A\r\n B\u000b C\u000c D\r\n E\u000e F\u000f", |
| 251 | Author: Author{ |
| 252 | ID: "1", |
| 253 | Name: "10\u0010 11\u0011 12\u0012 13\u0013 14\u0014 15\u0015 16\u0016 17\u0017 18\u0018 19\u0019 1A\u001a 1B\u001b 1C\u001c 1D\u001d 1E\u001e 1F\u001f", |
| 254 | Login: "monalisa \\u00\u001b", |
| 255 | }, |
| 256 | ActiveLockReason: "Escaped \u001B \\u001B \\\u001B \\\\u001B", |
| 257 | } |
| 258 | responseData, _ := json.Marshal(issue) |
| 259 | w.Header().Set("Content-Type", "application/json; charset=utf-8") |
| 260 | fmt.Fprint(w, string(responseData)) |
| 261 | })) |
| 262 | defer ts.Close() |
| 263 | |
| 264 | client, err := NewHTTPClient(HTTPClientOptions{}) |
| 265 | require.NoError(t, err) |
| 266 | req, err := http.NewRequest("GET", ts.URL, nil) |
| 267 | require.NoError(t, err) |
| 268 | res, err := client.Do(req) |
| 269 | require.NoError(t, err) |
| 270 | body, err := io.ReadAll(res.Body) |
| 271 | res.Body.Close() |
| 272 | require.NoError(t, err) |
| 273 | var issue Issue |
| 274 | err = json.Unmarshal(body, &issue) |
| 275 | require.NoError(t, err) |
| 276 | assert.Equal(t, "^[[31mRed Title^[[0m", issue.Title) |
| 277 | assert.Equal(t, "1^A 2^B 3^C 4^D 5^E 6^F 7^G 8\b 9\t A\r\n B\v C\f D\r\n E^N F^O", issue.Body) |
| 278 | assert.Equal(t, "10^P 11^Q 12^R 13^S 14^T 15^U 16^V 17^W 18^X 19^Y 1A^Z 1B^[ 1C^\\ 1D^] 1E^^ 1F^_", issue.Author.Name) |
| 279 | assert.Equal(t, "monalisa \\u00^[", issue.Author.Login) |
| 280 | assert.Equal(t, "Escaped ^[ \\^[ \\^[ \\\\^[", issue.ActiveLockReason) |
| 281 | } |
| 282 | |
| 283 | func TestHTTPClientSanitizeControlCharactersC1(t *testing.T) { |
| 284 | ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
nothing calls this directly
no test coverage detected