69 Commits
Author SHA1 Message Date
Justin Li 3080f95a4f Make render_length tests stricter 2014-12-11 10:41:47 -05:00
Justin Li cc57908c03 Add test for render_length persisting between block bodies 2014-12-11 10:38:47 -05:00
Justin Li 4df4f218cf Use same template instance 2014-12-09 17:25:15 -05:00
Justin Li 1593b784a7 Simplify interface for setting template resource limits 2014-12-04 16:18:21 -05:00
Justin Li db00ec8b32 Move resource limit tracking to its own class 2014-12-04 16:18:09 -05:00
Justin Li 737be1a0c1 Use Timeout#timeout for warnings tests 2014-11-12 17:03:48 -05:00
Justin Li 422bafd66a Fix #warnings taking exponential time to compute 2014-11-12 16:12:00 -05:00
Justin Li 95b031ee04 Add quirks test for extra dots in ranges 2014-11-05 11:41:12 -05:00
Justin Li 4d97a714a9 Add quirks test for variables with number prefixes 2014-11-05 10:56:58 -05:00
Dylan Thacker-SmithandJustin Li 2fd8ad08c0 Remove unused local variable that was accidentally added. 2014-11-03 17:07:42 -05:00
Dylan Thacker-SmithandJustin Li 73fcd42403 Create a BlockBody class to decouple block body parsing from tags. 2014-11-03 17:07:42 -05:00
Justin Li fcb23a4cd2 Disallow filters with no variable in strict mode 2014-10-27 13:34:27 -04:00
Justin Li a206c8301d Fix test leaking error_mode, fix equality check for VariableLookup 2014-10-22 15:40:41 -04:00
Justin Li 887b05e6ed Clarify test name 2014-10-21 14:06:30 -04:00
Justin Li 5d68e8803f Ensure nil works as a variable name 2014-10-21 14:03:10 -04:00
Justin Li dedd1d3dc0 Fix case where a variable name is falsy 2014-10-21 12:09:26 -04:00
Dylan Thacker-Smith b9ac3fef8f Remove the quotes from the partial string in the profiler timing objects. 2014-10-18 16:26:18 -04:00
Dylan Thacker-Smith d84870d7a5 Test line number of errors in nested blocks. 2014-10-03 16:25:12 -05:00
Florian Weingarten 584b492e70 Line numbers for all parse errors 2014-10-03 21:00:31 +00:00
Dylan Thacker-Smith cf5ccede50 Avoid modifying the default resources limits hash. 2014-10-01 18:51:06 -05:00
Evan Huus 23622a9739 Merge pull request #440 from Shopify/drop-tainting
Variable tainting
2014-09-22 13:43:35 -04:00
Florian Weingarten be3d261e11 Regression test for including assignments 2014-09-18 10:37:44 +00:00
Evan Huus eeb061ef44 Address code review comments
- clean up comment wording
- fix potentially leaky tests
2014-09-16 17:23:26 +00:00
Evan Huus 67b2c320a1 Add tainting tests 2014-09-16 17:23:26 +00:00
Dylan Thacker-Smith a5717a3f8d Fix flaky test which assumes total_render_time can't be 0.
jruby has millisecond precision for Time.now, so total_render_time can be 0
due to this lack of precision.
2014-09-15 17:26:55 -04:00
Jason Hiltz-Laforge aafdf4adb0 Fix JRuby builds 2014-09-08 20:41:22 +00:00
Florian Weingarten c83e1c7b6d prefix for Liquid::Error instances 2014-09-05 14:12:30 +00:00
Florian Weingarten 17cc8fdbb3 put line number in parentheses 2014-09-05 14:12:30 +00:00
Tristan HumeandFlorian Weingarten 27c1019385 Add line numbers to warnings 2014-09-05 14:12:30 +00:00
Florian Weingarten 5eff375094 Optional line numbers for liquid errors 2014-09-05 14:12:29 +00:00
Tristan Hume 68af2d6e2a Pass options to include tags 2014-08-26 10:50:25 -04:00
Derrick Reimer 0b847e553c Add url_encode standard filter 2014-08-15 08:45:40 -07:00
Florian Weingarten c2663258be Merge pull request #364 from collectiveidea/instrument-rendering-with-hooks
Profiling the rendering of a liquid template
2014-08-13 23:04:29 +02:00
Florian Weingarten 35808390ee Merge pull request #414 from Shopify/to_liquid_context
Call to_liquid in Context invoke
2014-08-12 22:05:52 +02:00
Florian Weingarten 1678c07548 Call to_liquid in Context invoke 2014-08-12 19:54:12 +00:00
Jason Roelofs 173a58d36a Profile liquid rendering
Add a simple profiling system to liquid rendering. Each
liquid tag ({{ }} and {% %}) is processed through this profiling,
keeping track of the partial name (in the case of {% include %}), line
number, and the time it took to render the tag. In the case of {%
include %}, the profiler keeps track of the name of the partial and
properly links back tag rendering to the partial and line number for
easy lookup and dive down. With this, it's now possible to track down
exactly how long each tag takes to render.

These hooks get installed and uninstalled on an as-need basis so by
default there is no impact on the overall liquid execution speed.
2014-08-12 15:37:21 -04:00
Tristan Hume f31e309770 Merge pull request #416 from Shopify/filter-quirks
Make Filter Quirks Tests Actual Integration Tests
2014-08-12 10:08:05 -04:00
Tristan Hume ffe1036e15 Make tests actual integration tests 2014-08-12 09:27:46 -04:00
Tristan Hume d5e57a8ea4 Merge pull request #412 from Shopify/assign-strict
Pass through options on assign tag
2014-08-11 15:37:49 -04:00
Tristan Hume 4db22be8ba Add tests for assign tag fix 2014-08-11 13:06:01 -04:00
Tristan Hume dc58a4d648 Add quirks test for unanchored filter args 2014-08-11 11:58:36 -04:00
Jean Boussier df6b442816 Cast input to string before spliting 2014-08-07 14:01:44 -04:00
Florian Weingarten fb6f9c1c13 Slice filter for arrays. 2014-08-05 17:59:31 +00:00
Florian Weingarten 66ae7f3ec0 Merge pull request #406 from Shopify/slice_filter
slice filter
2014-08-05 17:14:01 +02:00
Florian Weingarten e5b0487fef Merge pull request #312 from Shopify/uniq_filter
uniq filter
2014-08-05 16:22:48 +02:00
Florian Weingarten baea0a6bf7 slice filter 2014-08-04 16:47:08 +00:00
Florian WeingartenandFlorian Weingarten 33e7b8e373 uniq filter 2014-07-29 13:09:34 +00:00
Florian Weingarten a2f0f2547d with_global_filter test helper 2014-07-28 19:28:22 +00:00
Ken DreyerandFlorian Weingarten 57d5426eed tests: reset Strainer's filters after modification
Three tests in the test suite use the Liquid::Template.register_filter
function to register custom filters with Liquid::Strainer. The problem
is that these register_filter calls leave the Liquid::Strainer object in
an altered state.

As an example, the FiltersTest's test_local_filter relies on the default
behavior of Liquid::Strainer operator, and the test was failing if
register_function had been called earlier. The same thing was happening
with FiltersInTemplate's test_local_global.

The problem was present when the Filters test classes were loaded inside
a single ruby process that also loaded HashOrderingTest. One example is
"rake test", which runs "require" on every test file. Another basic
example is the following command:

  ruby -Itest -e "require 'integration/hash_ordering_test';
  require 'integration/filter_test'"

Update the tests to always reset Liquid::Strainer's filters back to the
default list of filters.

With this change, FiltersTest and FiltersInTemplate now pass.
2014-07-28 16:36:43 +00:00
Ken DreyerandFlorian Weingarten 3e3a415457 tests: fix whitespace in hash_ordering_test
Indent two spaces, not one.
2014-07-28 16:36:43 +00:00