jasmine-headless-webkit/spec/spec_helper.rb

114 lines
2.3 KiB
Ruby
Raw Normal View History

if ENV['COVERAGE']
require 'simplecov'
SimpleCov.start
end
2011-11-29 14:45:23 +00:00
if ENV['PROFILE']
require 'perftools'
PerfTools::CpuProfiler.start("/tmp/jhw-profile")
end
require 'jasmine-headless-webkit'
require 'fakefs/spec_helpers'
2011-06-10 14:04:21 +00:00
RSpec.configure do |c|
c.mock_with :mocha
c.backtrace_clean_patterns = []
2011-09-01 14:39:29 +00:00
c.before(:each) do
Jasmine::Headless::CacheableAction.enabled = false
Jasmine::Headless::FilesList.reset!
2011-09-01 14:39:29 +00:00
end
2011-11-25 21:18:06 +00:00
c.before(:each, :type => :integration) do
let(:report) { 'spec/report.txt' }
before do
FileUtils.rm_f report
end
after do
FileUtils.rm_f report
end
end
2011-06-10 14:04:21 +00:00
end
specrunner = 'ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner'
if !File.file?(specrunner)
Dir.chdir File.split(specrunner).first do
system %{ruby extconf.rb}
end
end
2011-11-21 15:32:49 +00:00
class FakeFS::File
class << self
def fnmatch?(pattern, file)
RealFile.fnmatch?(pattern, file)
end
end
class Stat
def file?
File.file?(@file)
end
end
2011-11-21 15:32:49 +00:00
end
module RSpec::Matchers
define :be_a_report_containing do |total, failed, used_console|
match do |filename|
report(filename)
report.total.should == total
report.failed.should == failed
report.has_used_console?.should == used_console
true
end
failure_message_for_should do |filename|
"expected #{filename} to be a report containing (#{total}, #{failed}, #{used_console.inspect})"
end
def report(filename = nil)
@report ||= Jasmine::Headless::Report.load(filename)
end
end
define :contain_a_failing_spec do |*parts|
match do |filename|
report(filename).should have_failed_on(parts.join(" "))
end
def report(filename)
@report ||= Jasmine::Headless::Report.load(filename)
end
end
define :be_a_file do
match do |file|
File.file?(file)
end
end
2011-11-18 03:16:04 +00:00
define :contain_in_order_in_file_list do |*files|
match do |lines|
file_list = files.dup
lines.each do |line|
next if !file_list.first
if line[file_list.first]
file_list.shift
end
end
file_list.length == 0
end
failure_message_for_should do |lines|
%{expected\n#{lines.join("\n")}\nto contain the following files, in order:\n#{files.join("\n")}}
end
2011-11-18 03:16:04 +00:00
end
2011-06-16 13:51:49 +00:00
end
2011-11-18 03:16:04 +00:00