require 'jasmine-headless-webkit' require 'fakefs/spec_helpers' RSpec.configure do |c| c.mock_with :mocha c.before(:each) do Jasmine::Headless::CacheableAction.enabled = false Jasmine::Headless::FilesList.instance_variable_set(:@vendor_asset_paths, nil) end 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 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 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 end end