aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/regexp_ext_test.rb
blob: f71099856d97329843fa8e59cd55e357f0bf355a (plain) (blame)
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
class RegexpExtAccessTests < Test::Unit::TestCase
  def test_number_of_captures
    assert_equal 0, //.number_of_captures
    assert_equal 1, /.(.)./.number_of_captures
    assert_equal 2, /.(.).(?:.).(.)/.number_of_captures
    assert_equal 3, /.((.).(?:.).(.))/.number_of_captures
  end

  def test_multiline
    assert   //m.multiline?
    assert ! //.multiline?
    assert ! /(?m:)/.multiline?
  end

  def test_optionalize
    assert "a?", Regexp.optionalize("a")
    assert "(?:foo)?", Regexp.optionalize("foo")
    assert "", Regexp.optionalize("")
  end

  def test_unoptionalize
    assert "a", Regexp.unoptionalize("a?")
    assert "foo", Regexp.unoptionalize("(?:foo)")
    assert "", Regexp.unoptionalize("")
  end
end