Sha256: 16a8bc36680e05e6939d90bd317f50efb407a53ba72d9bfffe2ad7c7dda1bce3

Contents?: true

Size: 1.86 KB

Versions: 27

Compression:

Stored size: 1.86 KB

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

require 'spec_helper'

describe TwitterCldr::Shared::PropertyNormalizer do
  let(:database) { TwitterCldr::Shared::PropertiesDatabase.new }
  let(:normalizer) { described_class.new(database) }

  describe '#normalize' do
    it 'correctly normalizes just property names' do
      name, value = normalizer.normalize('IDS')
      expect(name).to eq('ID_Start')
      expect(value).to be_nil
    end

    it 'correctly normalizes property names and values' do
      %w(age Age).each do |name|
        %w(1.1 V1_1).each do |value|
          cur_name, cur_value = normalizer.normalize(name, value)
          expect(cur_name).to eq('Age')
          expect(cur_value).to eq('1.1')
        end
      end
    end

    it 'correctly normalizes properties that support numeric values' do
      %w(ccc Canonical_Combining_Class).each do |name|
        %w(0 NR Not_Reordered).each do |value|
          cur_name, cur_value = normalizer.normalize(name, value)
          expect(cur_name).to eq('Canonical_Combining_Class')
          expect(cur_value).to eq('0')
        end
      end
    end

    it "returns a blank property when the name and value can't be found" do
      name, value = normalizer.normalize('foo', 'bar')
      expect(name).to be_nil
      expect(value).to be_nil
    end

    it 'handles valid name but invalid value' do
      name, value = normalizer.normalize('ideographic', 'ideographic')
      expect(name).to be_nil
      expect(value).to be_nil
    end

    it 'fixes casing of property names' do
      name, value = normalizer.normalize('ideographic')
      expect(name).to eq('Ideographic')
    end

    it 'fixes casing of property names and values' do
      name, value = normalizer.normalize('sc', 'han')
      expect(name).to eq('Script')
      expect(value).to eq('Han')
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
twitter_cldr-6.12.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.5 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.4 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.3 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.2 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.1 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.11.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.10.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.9.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.8.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.7.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.6.2 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.6.1 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.6.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.5.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.4.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.3.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.2.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.1.0 spec/shared/property_normalizer_spec.rb
twitter_cldr-6.0.2 spec/shared/property_normalizer_spec.rb