Sha256: 0dc10fd4428d451536a203e6b1f65be7486744b73a8640554a62971a4e383f47

Contents?: true

Size: 1.58 KB

Versions: 2

Compression:

Stored size: 1.58 KB

Contents

# encoding: utf-8

require "test_helper"

require "sup/util"

describe "Sup's String extension" do
  describe "#display_length" do
    let :data do
      [
        ['some words', 10,],
        ['δΈ­ζ–‡', 4,],
        ['Γ€', 1,],
        ['😱', 2],
        #['πŸ³οΈβ€πŸŒˆ', 2],  # Emoji ZWJ sequence not yet supported (see PR #563)
      ]
    end

    it "calculates display length of a string" do
      data.each do |(str, length)|
        assert_equal length, str.display_length
      end
    end
  end

  describe "#slice_by_display_length(len)" do
    let :data do
      [
        ['some words', 6, 'some w'],
        ['δΈ­ζ–‡', 2, 'δΈ­'],
        ['Γ€lpha', 3, 'Γ€lp'],
        ['😱😱', 2, '😱'],
        #['πŸ³οΈβ€πŸŒˆ', 2, 'πŸ³οΈβ€πŸŒˆ'],  # Emoji ZWJ sequence not yet supported (see PR #563)
      ]
    end

    it "slices string by display length" do
      data.each do |(str, length, sliced)|
        assert_equal sliced, str.slice_by_display_length(length)
      end
    end
  end

  describe "#wrap" do
    let :data do
      [
        ['some words', 6, ['some', 'words']],
        ['some words', 80, ['some words']],
        ['δΈ­ζ–‡', 2, ['δΈ­', 'ζ–‡']],
        ['δΈ­ζ–‡', 5, ['δΈ­ζ–‡']],
        ['Γ€lpha', 3, ['Γ€lp', 'ha']],
        ['😱😱', 2, ['😱', '😱']],
        #['πŸ³οΈβ€πŸŒˆπŸ³οΈβ€πŸŒˆ', 2, ['πŸ³οΈβ€πŸŒˆ', 'πŸ³οΈβ€πŸŒˆ']],  # Emoji ZWJ sequence not yet supported (see PR #563)
      ]
    end

    it "wraps string by display length" do
      data.each do |(str, length, wrapped)|
        assert_equal wrapped, str.wrap(length)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sup-1.2 test/unit/util/test_string.rb
sup-1.1 test/unit/util/test_string.rb