(t *testing.T)
| 331 | } |
| 332 | |
| 333 | func TestHTTPClientSanitizeJSONControlCharactersC0(t *testing.T) { |
| 334 | ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 335 | issue := Issue{ |
| 336 | Title: "\u001B[31mRed Title\u001B[0m", |
| 337 | 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", |
| 338 | Author: Author{ |
| 339 | ID: "1", |
| 340 | 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", |
| 341 | Login: "monalisa \\u00\u001b", |
| 342 | }, |
| 343 | ActiveLockReason: "Escaped \u001B \\u001B \\\u001B \\\\u001B", |
| 344 | } |
| 345 | responseData, _ := json.Marshal(issue) |
| 346 | w.Header().Set("Content-Type", "application/json; charset=utf-8") |
| 347 | fmt.Fprint(w, string(responseData)) |
| 348 | })) |
| 349 | defer ts.Close() |
| 350 | |
| 351 | client, err := NewHTTPClient(HTTPClientOptions{}) |
| 352 | require.NoError(t, err) |
| 353 | req, err := http.NewRequest("GET", ts.URL, nil) |
| 354 | require.NoError(t, err) |
| 355 | res, err := client.Do(req) |
| 356 | require.NoError(t, err) |
| 357 | body, err := io.ReadAll(res.Body) |
| 358 | res.Body.Close() |
| 359 | require.NoError(t, err) |
| 360 | var issue Issue |
| 361 | err = json.Unmarshal(body, &issue) |
| 362 | require.NoError(t, err) |
| 363 | assert.Equal(t, "^[[31mRed Title^[[0m", issue.Title) |
| 364 | 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) |
| 365 | 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) |
| 366 | assert.Equal(t, "monalisa \\u00^[", issue.Author.Login) |
| 367 | assert.Equal(t, "Escaped ^[ \\^[ \\^[ \\\\^[", issue.ActiveLockReason) |
| 368 | } |
| 369 | |
| 370 | func TestHTTPClientSanitizeControlCharactersC1(t *testing.T) { |
| 371 | ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
nothing calls this directly
no test coverage detected