summaryrefslogtreecommitdiff
path: root/spec/ruby/core/regexp/fixed_encoding_spec.rb
blob: 8a11de957538826145b6198f9d2ee295b2af101d (plain)
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
# -*- encoding: utf-8 -*-
require File.expand_path('../../../spec_helper', __FILE__)

describe "Regexp#fixed_encoding?" do
  it "returns false by default" do
    /needle/.fixed_encoding?.should be_false
  end

  it "returns false if the 'n' modifier was supplied to the Regexp" do
    /needle/n.fixed_encoding?.should be_false
  end

  it "returns true if the 'u' modifier was supplied to the Regexp" do
    /needle/u.fixed_encoding?.should be_true
  end

  it "returns true if the 's' modifier was supplied to the Regexp" do
    /needle/s.fixed_encoding?.should be_true
  end

  it "returns true if the 'e' modifier was supplied to the Regexp" do
    /needle/e.fixed_encoding?.should be_true
  end

  it "returns true if the Regexp contains a \\u escape" do
    /needle \u{8768}/.fixed_encoding?.should be_true
  end

  it "returns true if the Regexp contains a UTF-8 literal" do
    /文字化け/.fixed_encoding?.should be_true
  end

  it "returns true if the Regexp was created with the Regexp::FIXEDENCODING option" do
    Regexp.new("", Regexp::FIXEDENCODING).fixed_encoding?.should be_true
  end
end