parser_error_test.go 941 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package jsonparser
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. var testPaths = [][]string{
  7. []string{"test"},
  8. []string{"these"},
  9. []string{"keys"},
  10. []string{"please"},
  11. }
  12. func testIter(data []byte) (err error) {
  13. EachKey(data, func(idx int, value []byte, vt ValueType, iterErr error) {
  14. if iterErr != nil {
  15. err = fmt.Errorf("Error parsing json: %s", iterErr.Error())
  16. }
  17. }, testPaths...)
  18. return err
  19. }
  20. func TestPanickingErrors(t *testing.T) {
  21. if err := testIter([]byte(`{"test":`)); err == nil {
  22. t.Error("Expected error...")
  23. }
  24. if err := testIter([]byte(`{"test":0}some":[{"these":[{"keys":"some"}]}]}some"}]}],"please":"some"}`)); err == nil {
  25. t.Error("Expected error...")
  26. }
  27. if _, _, _, err := Get([]byte(`{"test":`), "test"); err == nil {
  28. t.Error("Expected error...")
  29. }
  30. if _, _, _, err := Get([]byte(`{"some":0}some":[{"some":[{"some":"some"}]}]}some"}]}],"some":"some"}`), "x"); err == nil {
  31. t.Error("Expected error...")
  32. }
  33. }