Sha256: d6c0f12c87c372179805995954ac070b43015113e9e97c39f0ea8f276ccbf3e1

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

###
### $Rev$
### $Release: 3.2.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.2.0 lib/kwartz/util/assert-text-equal.rb