tobi / liquid

Liquid markup language. Save, customer facing template language for flexible web apps.

This URL has Read+Write access

liquid / test / regexp_test.rb
100644 45 lines (35 sloc) 1.557 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require File.dirname(__FILE__) + '/helper'
   
class RegexpTest < Test::Unit::TestCase
  include Liquid
 
  def test_empty
    assert_equal [], ''.scan(QuotedFragment)
  end
  
  def test_quote
    assert_equal ['"arg 1"'], '"arg 1"'.scan(QuotedFragment)
  end
  
  def test_words
    assert_equal ['arg1', 'arg2'], 'arg1 arg2'.scan(QuotedFragment)
  end
  
  def test_tags
    assert_equal ['<tr>', '</tr>'], '<tr> </tr>'.scan(QuotedFragment)
    assert_equal ['<tr></tr>'], '<tr></tr>'.scan(QuotedFragment)
    assert_equal ['<style', 'class="hello">', '</style>'], %|<style class="hello">' </style>|.scan(QuotedFragment)
  end
 
  def test_quoted_words
    assert_equal ['arg1', 'arg2', '"arg 3"'], 'arg1 arg2 "arg 3"'.scan(QuotedFragment)
  end
 
  def test_quoted_words
    assert_equal ['arg1', 'arg2', "'arg 3'"], 'arg1 arg2 \'arg 3\''.scan(QuotedFragment)
  end
 
  def test_quoted_words_in_the_middle
    assert_equal ['arg1', 'arg2', '"arg 3"', 'arg4'], 'arg1 arg2 "arg 3" arg4 '.scan(QuotedFragment)
  end
  
  def test_variable_parser
    assert_equal ['var'], 'var'.scan(VariableParser)
    assert_equal ['var', 'method'], 'var.method'.scan(VariableParser)
    assert_equal ['var', '[method]'], 'var[method]'.scan(VariableParser)
    assert_equal ['var', '[method]', '[0]'], 'var[method][0]'.scan(VariableParser)
    assert_equal ['var', '["method"]', '[0]'], 'var["method"][0]'.scan(VariableParser)
    assert_equal ['var', '[method]', '[0]', 'method'], 'var[method][0].method'.scan(VariableParser)
  end
 
end