Skip to content

Commit

Permalink
Merge pull request #1252 from json-api-dotnet/filter-fix
Browse files Browse the repository at this point in the history
Fixed: fail on non-leading whitespace in field chains
  • Loading branch information
maurei committed Feb 5, 2023
2 parents 1664331 + 6bb377f commit 5ffa4fb
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public IEnumerable<Token> EnumerateTokens()
}
else
{
if (_textBuffer.Length == 0 && ch == ' ' && !_isInQuotedSection)
if (ch == ' ' && !_isInQuotedSection)
{
throw new QueryParseException("Unexpected whitespace.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,16 @@ public void Reader_Is_Enabled(JsonApiQueryStringParameters parametersDisabled, b
[InlineData("filter[posts]", "equals(author,'some')", "Attribute 'author' does not exist on resource type 'blogPosts'.")]
[InlineData("filter[posts]", "lessThan(author,null)", "Attribute 'author' does not exist on resource type 'blogPosts'.")]
[InlineData("filter", " ", "Unexpected whitespace.")]
[InlineData("filter", "contains(owner.displayName ,)", "Unexpected whitespace.")]
[InlineData("filter", "contains(owner.displayName, )", "Unexpected whitespace.")]
[InlineData("filter", "some", "Filter function expected.")]
[InlineData("filter", "equals", "( expected.")]
[InlineData("filter", "equals'", "Unexpected ' outside text.")]
[InlineData("filter", "equals(", "Count function or field name expected.")]
[InlineData("filter", "equals('1'", "Count function or field name expected.")]
[InlineData("filter", "equals(count(posts),", "Count function, value between quotes, null or field name expected.")]
[InlineData("filter", "equals(owner..displayName,'')", "Count function or field name expected.")]
[InlineData("filter", "equals(owner.displayName.,'')", "Count function or field name expected.")]
[InlineData("filter", "equals(title,')", "' expected.")]
[InlineData("filter", "equals(title,null", ") expected.")]
[InlineData("filter", "equals(null", "Field 'null' does not exist on resource type 'blogs'.")]
Expand Down

0 comments on commit 5ffa4fb

Please sign in to comment.