aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/regexp_ext_test.rb
blob: cc3f07d5c5c478c45e3b74bb08c4c5f738b87b05 (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
27
28
29
require 'abstract_unit'
require 'active_support/core_ext/regexp'

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_equal true, //m.multiline?
    assert_equal false, //.multiline?
    assert_equal false, /(?m:)/.multiline?
  end

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

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