56 lines
1.1 KiB
Ruby
56 lines
1.1 KiB
Ruby
require 'rubygems'
|
|
require 'test-unit'
|
|
require 'uri'
|
|
require 'http/cookie'
|
|
|
|
module Test
|
|
module Unit
|
|
module Assertions
|
|
def assert_warn(pattern, message = nil, &block)
|
|
class << (output = "")
|
|
alias write <<
|
|
end
|
|
stderr, $stderr = $stderr, output
|
|
yield
|
|
assert_match(pattern, output, message)
|
|
ensure
|
|
$stderr = stderr
|
|
end
|
|
|
|
def assert_warning(pattern, message = nil, &block)
|
|
verbose, $VERBOSE = $VERBOSE, true
|
|
assert_warn(pattern, message, &block)
|
|
ensure
|
|
$VERBOSE = verbose
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
module Enumerable
|
|
def combine
|
|
masks = inject([[], 1]){|(ar, m), e| [ar << m, m << 1 ] }[0]
|
|
all = masks.inject(0){ |al, m| al|m }
|
|
|
|
result = []
|
|
for i in 1..all do
|
|
tmp = []
|
|
each_with_index do |e, idx|
|
|
tmp << e unless (masks[idx] & i) == 0
|
|
end
|
|
result << tmp
|
|
end
|
|
result
|
|
end
|
|
end
|
|
|
|
def test_file(filename)
|
|
File.expand_path(filename, File.dirname(__FILE__))
|
|
end
|
|
|
|
def sleep_until(time)
|
|
if (s = time - Time.now) > 0
|
|
sleep s
|
|
end
|
|
end
|