// Tests for the core parser using new Papa.Parser().parse() (CSV to JSON)
// Tests for the core parser using new Papa.Parser().parse() (CSV to JSON)
varCORE_PARSER_TESTS=[
varCORE_PARSER_TESTS=[
{
{
@ -194,7 +249,7 @@ var CORE_PARSER_TESTS = [
"code":"MissingQuotes",
"code":"MissingQuotes",
"message":"Quoted field unterminated",
"message":"Quoted field unterminated",
"row":0,
"row":0,
"index":3
"index":2
}]
}]
}
}
},
},
@ -209,7 +264,23 @@ var CORE_PARSER_TESTS = [
"code":"InvalidQuotes",
"code":"InvalidQuotes",
"message":"Trailing quote on quoted field is malformed",
"message":"Trailing quote on quoted field is malformed",
"row":0,
"row":0,
"index":1
"index":0
}]
}
},
{
description:"Quoted field has invalid trailing quote after delimiter with a valid closer",
input:'"a,"b,c"\nd,e,f',
notes:"The input is malformed, opening quotes identified, trailing quote is malformed. Trailing quote should be escaped or followed by valid new line or delimiter to be valid",
config:{strictQuote:true},
expected:{
data:[['"a','b,c'],['d','e','f']],
errors:[{
"type":"Quotes",
"code":"InvalidQuotes",
"message":"Trailing quote on quoted field is malformed",
"row":0,
"index":0
}]
}]
}
}
},
},
@ -224,14 +295,14 @@ var CORE_PARSER_TESTS = [
"code":"InvalidQuotes",
"code":"InvalidQuotes",
"message":"Trailing quote on quoted field is malformed",
"message":"Trailing quote on quoted field is malformed",
"row":0,
"row":0,
"index":3
"index":2
},
},
{
{
"type":"Quotes",
"type":"Quotes",
"code":"MissingQuotes",
"code":"MissingQuotes",
"message":"Quoted field unterminated",
"message":"Quoted field unterminated",
"row":0,
"row":0,
"index":3
"index":2
}]
}]
}
}
},
},
@ -246,14 +317,14 @@ var CORE_PARSER_TESTS = [
"code":"InvalidQuotes",
"code":"InvalidQuotes",
"message":"Trailing quote on quoted field is malformed",
"message":"Trailing quote on quoted field is malformed",
"row":0,
"row":0,
"index":3
"index":2
},
},
{
{
"type":"Quotes",
"type":"Quotes",
"code":"MissingQuotes",
"code":"MissingQuotes",
"message":"Quoted field unterminated",
"message":"Quoted field unterminated",
"row":0,
"row":0,
"index":3
"index":2
}]
}]
}
}
},
},
@ -268,14 +339,14 @@ var CORE_PARSER_TESTS = [
"code":"InvalidQuotes",
"code":"InvalidQuotes",
"message":"Trailing quote on quoted field is malformed",
"message":"Trailing quote on quoted field is malformed",
"row":0,
"row":0,
"index":3
"index":2
},
},
{
{
"type":"Quotes",
"type":"Quotes",
"code":"MissingQuotes",
"code":"MissingQuotes",
"message":"Quoted field unterminated",
"message":"Quoted field unterminated",
"row":0,
"row":0,
"index":3
"index":2
}]
}]
}
}
},
},
@ -288,6 +359,15 @@ var CORE_PARSER_TESTS = [
errors:[]
errors:[]
}
}
},
},
{
description:"Quoted field has valid trailing quote via delimiter and contains delimiter",
input:'a,"b,",c\nd,e,f',
notes:"Trailing quote is valid due to trailing delimiter",
expected:{
data:[['a','b,','c'],['d','e','f']],
errors:[]
}
},
{
{
description:"Quoted field has valid trailing quote via \\n",
description:"Quoted field has valid trailing quote via \\n",
input:'a,b,"c"\nd,e,f',
input:'a,b,"c"\nd,e,f',
@ -297,6 +377,15 @@ var CORE_PARSER_TESTS = [
errors:[]
errors:[]
}
}
},
},
{
description:"Quoted field has valid trailing quote via \\n and contains delimiter and newline",
input:'a,b,"c,\n"\nd,e,f',
notes:"Trailing quote is valid due to trailing new line delimiter",
expected:{
data:[['a','b','c,\n'],['d','e','f']],
errors:[]
}
},
{
{
description:"Quoted field has valid trailing quote via EOF",
description:"Quoted field has valid trailing quote via EOF",