MCPcopy
hub / github.com/buger/jsonparser / TestGetStringEncodingSafety

Function TestGetStringEncodingSafety

obligation_property_test.go:478–505  ·  view source on GitHub ↗

============================================================================= Encoding safety tests ============================================================================= Verifies: SYS-REQ-092 MCDC SYS-REQ-092: getstring_input_has_escaped_unicode=T, getstring_decodes_and_preserves_semantics=T

(t *testing.T)

Source from the content-addressed store, hash-verified

476// Verifies: SYS-REQ-092
477// MCDC SYS-REQ-092: getstring_input_has_escaped_unicode=T, getstring_decodes_and_preserves_semantics=T => TRUE
478func TestGetStringEncodingSafety(t *testing.T) {
479 cases := []struct {
480 name string
481 jsonData string
482 key string
483 expected string
484 }{
485 {name: "basic latin escape", jsonData: `{"s":"\u0041"}`, key: "s", expected: "A"},
486 {name: "e-acute", jsonData: `{"s":"\u00e9"}`, key: "s", expected: "\u00e9"},
487 {name: "emoji surrogate pair", jsonData: `{"s":"\uD83D\uDE00"}`, key: "s", expected: "\U0001F600"},
488 {name: "newline escape", jsonData: `{"s":"line1\nline2"}`, key: "s", expected: "line1\nline2"},
489 {name: "tab escape", jsonData: `{"s":"col1\tcol2"}`, key: "s", expected: "col1\tcol2"},
490 {name: "backslash escape", jsonData: `{"s":"path\\to\\file"}`, key: "s", expected: `path\to\file`},
491 {name: "quote escape", jsonData: `{"s":"say \"hello\""}`, key: "s", expected: `say "hello"`},
492 {name: "solidus escape", jsonData: `{"s":"a\/b"}`, key: "s", expected: "a/b"},
493 }
494 for _, tc := range cases {
495 t.Run(tc.name, func(t *testing.T) {
496 val, err := GetString([]byte(tc.jsonData), tc.key)
497 if err != nil {
498 t.Fatalf("GetString returned error: %v", err)
499 }
500 if val != tc.expected {
501 t.Fatalf("GetString decoded %q, expected %q", val, tc.expected)
502 }
503 })
504 }
505}
506
507// Verifies: SYS-REQ-108
508// MCDC SYS-REQ-108: parsestring_input_has_standard_escapes=T, parsestring_roundtrip_preserves_semantics=T => TRUE

Callers

nothing calls this directly

Calls 1

GetStringFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…