aboutsummaryrefslogtreecommitdiffstats
path: root/testing (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Allow included templates to `extend`, `import`, and `macro`Libravatar max2024-01-176-0/+63
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Generator: make `normalize_identifier` faster (#946)Libravatar René Kijewski2024-01-122-0/+699
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `normalize_identifier` is called quite often in the generator, once for every variable name or path element that is written. This PR aims to speed up the function by * using a per-length input string length replacement map * binary searching the replacement map instead of a linear search Diffent, but functionally equivalent implementations were compared: ```text * linear search in one big map: 348.44 µs * binary search in one big map: 334.46 µs * linear search in a per-length map: 178.84 µs * binary search in a per-length map: 154.54 µs * perfect hashing: 170.87 µs ``` The winner of this competition is "binary search in a per-length map". It does not introduce new dependencies, but has the slight disadvantage that it uses one instance of `unsafe` code. I deem this disadvantage acceptable, though. Nb. It was also tested if a variant that only stores the replaced string would be faster. This "optimization" proved to be slower for all implementations except "binary search in a per-length map", for which it has the same runtime. Without a clear advantage to use the "optimized version", I chose to use the more easy to read slice of tuples variant. Obviously, for all measurements: YMMV.
* Add test for `as_ref` builtin filterLibravatar Guillaume Gomez2024-01-121-0/+14
|
* Revert "Add automatic borrowing to let statement"Libravatar Guillaume Gomez2024-01-101-14/+0
| | | | This reverts commit 3d52283b74573af509deb3c47cbabf7b7b58b1dd.
* Make the `markdown` filter compatible with `String`Libravatar Jakub Stachurski2024-01-091-0/+18
| | | | | | | | | | | | | | | | | This commit solves issue #719. This is done by making the markdown filter borrow the string and simplifying the filter to accept `&str` instead of `AsRef<str>` Add test for the markdown filter using as input Revert markdown filter changes Revert unnecessary changes Improve test_markdown_owned_string test Use cargo fmt
* Add automatic borrowing to let statementLibravatar max2023-12-131-0/+14
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Bugfix in `is_attr_self()`Libravatar max2023-12-131-0/+19
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Allow trailing comma in macro definition and callLibravatar Guillaume Gomez2023-12-071-0/+30
|
* Add macro test with only argument being passed as namedLibravatar Guillaume Gomez2023-12-071-0/+17
|
* build(deps): update comrak requirement from 0.18 to 0.20Libravatar dependabot[bot]2023-11-301-1/+1
| | | | | | | | | | | | | | Updates the requirements on [comrak](https://github.com/kivikakk/comrak) to permit the latest version. - [Release notes](https://github.com/kivikakk/comrak/releases) - [Changelog](https://github.com/kivikakk/comrak/blob/main/changelog.txt) - [Commits](https://github.com/kivikakk/comrak/compare/0.18.0...0.20.0) --- updated-dependencies: - dependency-name: comrak dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* Upgrade to comrak 0.19Libravatar Dirkjan Ochtman2023-11-302-10/+7
|
* Add tests for named arguments in macro callsLibravatar Guillaume Gomez2023-11-283-0/+117
|
* Add better support for rust-like number literals (#908)Libravatar PizzasBear2023-11-222-0/+34
| | | Signed-off-by: max <gmx.sht@gmail.com>
* Enhance match to include multiple targets (#911)Libravatar PizzasBear2023-11-222-0/+37
| | | Signed-off-by: max <gmx.sht@gmail.com>
* Add UI tests for macros error messageLibravatar Guillaume Gomez2023-11-202-0/+50
|
* Add UI test for `elif` error messageLibravatar Guillaume Gomez2023-10-252-0/+17
|
* Improve error for invalid name used in `endmacro`Libravatar Guillaume Gomez2023-10-251-1/+2
|
* Improve error for invalid name used in `endblock`Libravatar Guillaume Gomez2023-10-251-1/+2
|
* Add test specifically for named blocks, and named macrosLibravatar Guillaume Gomez2023-10-236-0/+53
|
* Add test for macro self argumentLibravatar max2023-10-122-0/+17
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Add MSRV checking in CILibravatar Dirkjan Ochtman2023-09-291-1/+1
| | | | Bump MSRV to 1.65 for the use of let .. else.
* Pass `Node` parsing level to expressionsLibravatar René Kijewski2023-09-281-2/+2
|
* Limit nesting in parser nodes, tooLibravatar René Kijewski2023-09-282-0/+129
|
* Fix parsing arraysLibravatar René Kijewski2023-07-312-7/+3
| | | | | | | | | | | | | | | | This change * allows using empty arrays `[]` in expessions, * adds a cut when the leading `[` was encountered, and * fixes the interaction between arrays and boolean OR. IMO the restriction that you couldn't use empty arrays is not needed. The missing cut made error messages slictly worse if you forget to add the closing `]`. Filter expressions must not have white spaces before the pipe `|`. The white space is used to tell a filter expressions, and `std::ops::Or` apart.
* Fix parsing callsLibravatar René Kijewski2023-07-311-2/+2
| | | | | | | This change: * adds a cut when the leading `(` was encountered, and * fixed the interaction between call expressions and boolean OR.
* Fix Rust macro invocations not accepting a path (#837)Libravatar Matthew Taylor2023-07-242-2/+23
|
* Allow macros to be defined and called without argumentsLibravatar mataha2023-06-122-0/+31
| | | | | | | | | | This commit introduces a shorthand for defining and calling macros when using them as a reusable substitute for variables assigned complex values (e.g. string literals with or without newline escapes). The use-case is formatting - from my experience it's easier to visually parse a `macro` `endmacro` block than a multiline variable assignment. Signed-off-by: mataha <mataha@users.noreply.github.com>
* Update criterion requirement from 0.4 to 0.5Libravatar dependabot[bot]2023-05-241-1/+1
| | | | | | | | | | | | | Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version. - [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/bheisler/criterion.rs/compare/0.4.0...0.5.0) --- updated-dependencies: - dependency-name: criterion dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* Upgrade to comrak 0.18Libravatar Dirkjan Ochtman2023-05-201-1/+1
|
* Update comrak to 0.17Libravatar Dirkjan Ochtman2023-03-281-1/+1
|
* Add tests for whitespace argument in template derive proc-macroLibravatar Guillaume Gomez2023-03-131-0/+24
|
* Update tests for whitespace characters handlingLibravatar Guillaume Gomez2023-03-093-437/+471
|
* Propogate size_hint from sub-blocks (#788)Libravatar Andrew Dona-Couch -- GitHub drop ICE2023-03-064-0/+52
| | | Closes #786
* Bump versions for Askama 0.12 (#784)Libravatar Dirkjan Ochtman2023-03-031-1/+1
|
* Update comrak dependency to 0.16Libravatar René Kijewski2023-01-301-1/+1
|
* Apply clippy suggestions for 1.67 (#769)Libravatar Dirkjan Ochtman2023-01-303-6/+6
|
* Update `ui` test for trybuild 1.0.76Libravatar René Kijewski2023-01-242-2/+2
| | | | | | | | In <https://github.com/dtolnay/trybuild/pull/219> the output of error messages was subtly changed, because they introduced a subdirectoy in their temp path. This PR fixes the mismatch between the expected and the actual output.
* Update comrak requirement from 0.14 to 0.15Libravatar dependabot[bot]2022-11-151-1/+1
| | | | | | | | | | | | | | Updates the requirements on [comrak](https://github.com/kivikakk/comrak) to permit the latest version. - [Release notes](https://github.com/kivikakk/comrak/releases) - [Changelog](https://github.com/kivikakk/comrak/blob/main/changelog.txt) - [Commits](https://github.com/kivikakk/comrak/compare/0.14.0...0.15.0) --- updated-dependencies: - dependency-name: comrak dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* chore: remove allow(clippy::disallowed_names)Libravatar Dirkjan Ochtman2022-11-074-7/+1
|
* chore: apply clippy suggestions for 1.65Libravatar Dirkjan Ochtman2022-11-074-4/+4
|
* Version bump in README and bookLibravatar Allan Zhang2022-10-211-1/+1
| | | | | | | | | I was going through the book when I saw the version was still 0.8. This commit ensures all references to Askama version are to 0.11.2. Most of them already were. Merge whenever appropriate for release, #722 related
* Update criterion requirement from 0.3 to 0.4 (#721)Libravatar dependabot[bot]2022-09-261-1/+1
| | | | | | | | | | | | | | | | | Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version. - [Release notes](https://github.com/bheisler/criterion.rs/releases) - [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.0...0.4.0) --- updated-dependencies: - dependency-name: criterion dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Remove support for deprecated `_parent` fieldLibravatar René Kijewski2022-07-251-4/+40
| | | | | | The support for the magic `_parent` field is deprecated since v0.8.0 or issue #180. It's bothersome to keep this feature alive, when no-one should be using it for 3 years.
* Update to comrak v0.14Libravatar René Kijewski2022-07-201-1/+1
|
* Update comrak requirement from 0.12 to 0.13Libravatar dependabot[bot]2022-06-071-1/+1
| | | | | | | | | | | | | | Updates the requirements on [comrak](https://github.com/kivikakk/comrak) to permit the latest version. - [Release notes](https://github.com/kivikakk/comrak/releases) - [Changelog](https://github.com/kivikakk/comrak/blob/main/changelog.txt) - [Commits](https://github.com/kivikakk/comrak/compare/0.12.0...0.13.0) --- updated-dependencies: - dependency-name: comrak dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* Allow `{% endmacro name %}`Libravatar Bastien Orivel2022-04-292-1/+13
| | | | | | Just migrated a repo from tera to askama and this was one of the only things that was different. This is also coherent with `{% block %}` for which I added the same feature years ago.
* Add test for "minimize" configLibravatar Guillaume Gomez2022-04-262-0/+45
|
* Rename `suppress_whitespace` into `whitespace` and update expected values to ↵Libravatar Guillaume Gomez2022-04-211-1/+1
| | | | "suppress" and "preserve"
* Add test for suppress_whitespace optionLibravatar Guillaume Gomez2022-04-213-19/+342
|
* Make json filter safeLibravatar René Kijewski2022-02-163-2/+64
| | | | | | | | | | | | | | | | | | | | | Previously the built-in json filter had an issue that made it unsafe to use in HTML data. When used in HTML attributes an attacker who is able to supply an arbitrary string that should be JSON encoded could close the containing HTML element e.g. with `"</div>"`, and write arbitrary HTML code afterwards as long as they use apostrophes instead of quotation marks. The programmer could make this use case safe by explicitly escaping the JSON result: `{{data|json|escape}}`. In a `<script>` context the json filter was not usable at all, because in scripts HTML escaped entities are not parsed outside of XHTML documents. Without using the safe filter an attacker could close the current script using `"</script>"`. This PR fixes the problem by always escaping less-than, greater-than, ampersand, and apostrophe characters using their JSON unicode escape sequence `\u00xx`. Unless the programmer explicitly uses the safe filter, quotation marks are HTML encoded as `&quot`. In scripts the programmer should use the safe filter, otherwise not.