Sha256: 530504530f29df712618c2ef76484a54c63c6ce6ef8b07747f290bd6db9f888b

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

require 'text2svg/cli'

module Text2svgCLITest
  def check(t)
    out = capture do
      Text2svg::CLI.start
    end
    unless String === out
      t.error 'return value was break'
    end
    unless 0 < out.length
      t.error 'unsupported font?'
    end
    if out.strip[0, 4] != '<svg'
      t.error 'output format was break'
    end
  end

  def test_start(t)
    %w(left right center).each do |text_align|
      ARGV[0] = "Hello,\nWorld!"
      ARGV[1] = '--font=data/sporq.ttf'
      ARGV[2] = "--text-align=#{text_align}"

      check(t)
    end
  end

  def test_encoding(t)
    [
      ['utf-8', "\xEF\x82\x9B".force_encoding(Encoding::ASCII_8BIT)],
      ['utf-32', "\x00\x00\xFE\xFF\x00\x00\xF0\x9B".force_encoding(Encoding::ASCII_8BIT)],
    ].each do |(encoding, text)|
      ARGV[0] = text
      ARGV[1] = '--font=data/sporq.ttf'
      ARGV[2] = "--encoding=#{encoding}"
      check(t)
    end
  end

  def test_bold(t)
    ARGV[0] = 'Hello'
    ARGV[1] = '--font=data/sporq.ttf'
    ARGV[2] = '--bold'
    check(t)
  end

  def test_italic(t)
    ARGV[0] = 'Hello'
    ARGV[1] = '--font=data/sporq.ttf'
    ARGV[2] = '--italic'
    check(t)
  end

  def capture
    out = StringIO.new
    orig = $stdout
    $stdout = out
    yield
    out.string.dup
  ensure
    $stdout = orig
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
text2svg-0.5.1 lib/text2svg/cli_test.rb
text2svg-0.5.0 lib/text2svg/cli_test.rb
text2svg-0.4.3 lib/text2svg/cli_test.rb
text2svg-0.4.2 lib/text2svg/cli_test.rb
text2svg-0.4.1 lib/text2svg/cli_test.rb
text2svg-0.4.0 lib/text2svg/cli_test.rb
text2svg-0.3.6 lib/text2svg/cli_test.rb
text2svg-0.3.5 lib/text2svg/cli_test.rb