Sha256: c5e4e0fda9eff388ac257dfb080e42bed24a96d2106d923c693c384a9a75da25

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

###
### $Rev: 117 $
### $Release: 3.1.0 $
### copyright(c) 2004-2006 kuwata-lab.com all rights reserved
###

require 'test/unit/testcase'
require 'tempfile'


class Test::Unit::TestCase  # :nodoc:

  def assert_text_equal(expected, actual, message=nil, options={}) # :nodoc:
    diffopt  = options[:diffopt] || '-u'
    flag_cut = options.key?(:cut) ? options[:key] : true

    if expected == actual
      assert(true)
      return
    end
    if expected[-1] != ?\n || actual[-1] != ?\n
      expected += "\n"
      actual   += "\n"
    end
    begin
      expfile = Tempfile.new(".expected.")
      expfile.write(expected); expfile.flush()
      actfile = Tempfile.new(".actual.")
      actfile.write(actual);   actfile.flush()
      diff = `diff #{diffopt} #{expfile.path} #{actfile.path}`
    ensure
      expfile.close(true) if expfile
      actfile.close(true) if actfile
    end
    # cut 1st & 2nd lines
    message = (flag_cut ? diff.gsub(/\A.*\n.*\n/, '') : diff) unless message
    #raise Test::Unit::AssertionFailedError.new(message)
    assert_block(message) { false }  # or assert(false, message)
  end

  alias assert_equal_with_diff assert_text_equal    # for compatibility
  alias assert_text_equals     assert_text_equal    # for typo

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kwartz-3.1.0 lib/kwartz/util/assert-text-equal.rb