rb/spec/unicode_spec.rb (23 lines of code) (raw):

# Copyright 2018 Twitter, Inc. # Licensed under the Apache License, Version 2.0 # http://www.apache.org/licenses/LICENSE-2.0 # encoding: utf-8 require File.dirname(__FILE__) + '/spec_helper' describe Twitter::TwitterText::Unicode do it "should lazy-init constants" do expect(Twitter::TwitterText::Unicode.const_defined?(:UFEB6)).to eq(false) expect(Twitter::TwitterText::Unicode::UFEB6).to_not be_nil expect(Twitter::TwitterText::Unicode::UFEB6).to be_kind_of(String) expect(Twitter::TwitterText::Unicode.const_defined?(:UFEB6)).to eq(true) end it "should return corresponding character" do expect(Twitter::TwitterText::Unicode::UFEB6).to be == [0xfeb6].pack('U') end it "should allow lowercase notation" do expect(Twitter::TwitterText::Unicode::Ufeb6).to be == Twitter::TwitterText::Unicode::UFEB6 expect(Twitter::TwitterText::Unicode::Ufeb6).to be === Twitter::TwitterText::Unicode::UFEB6 end it "should allow underscore notation" do expect(Twitter::TwitterText::Unicode::U_FEB6).to be == Twitter::TwitterText::Unicode::UFEB6 expect(Twitter::TwitterText::Unicode::U_FEB6).to be === Twitter::TwitterText::Unicode::UFEB6 end it "should raise on invalid codepoints" do expect(lambda { Twitter::TwitterText::Unicode::FFFFFF }).to raise_error(NameError) end end