34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require "spec_helper"
 | 
						|
 | 
						|
RSpec.describe Gitlab::Unicode do
 | 
						|
  describe described_class::BIDI_REGEXP do
 | 
						|
    using RSpec::Parameterized::TableSyntax
 | 
						|
 | 
						|
    where(:bidi_string, :match) do
 | 
						|
      "\u2066"       | true # left-to-right isolate
 | 
						|
      "\u2067"       | true # right-to-left isolate
 | 
						|
      "\u2068"       | true # first strong isolate
 | 
						|
      "\u2069"       | true # pop directional isolate
 | 
						|
      "\u202a"       | true # left-to-right embedding
 | 
						|
      "\u202b"       | true # right-to-left embedding
 | 
						|
      "\u202c"       | true # pop directional formatting
 | 
						|
      "\u202d"       | true # left-to-right override
 | 
						|
      "\u202e"       | true # right-to-left override
 | 
						|
      "\u2066foobar" | true
 | 
						|
      ""             | false
 | 
						|
      "foo"          | false
 | 
						|
      "\u2713"       | false # checkmark
 | 
						|
    end
 | 
						|
 | 
						|
    with_them do
 | 
						|
      let(:utf8_string) { bidi_string.encode("utf-8") }
 | 
						|
 | 
						|
      it "matches only the bidi characters" do
 | 
						|
        expect(utf8_string.match?(subject)).to eq(match)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |