lib/calabash-cucumber/tests_helpers.rb in calabash-cucumber-0.9.96 vs lib/calabash-cucumber/tests_helpers.rb in calabash-cucumber-0.9.100

- old
+ new

@@ -31,29 +31,47 @@ def check_view_with_mark_exists(expected_mark) check_element_exists("view marked:'#{expected_mark}'") end - def screenshot_and_raise(msg, prefix=nil, name=nil) - screenshot(prefix, name) + def screenshot_and_raise(msg, options={:prefix => nil, :name => nil, :label => nil}) + screenshot_embed(options) raise(msg) end - def fail(msg="Error. Check log for details.", prefix=nil, name=nil) - screenshot_and_raise(msg, prefix, name) + def fail(msg="Error. Check log for details.", options={:prefix => nil, :name => nil, :label => nil}) + screenshot_and_raise(msg, options) end - def screenshot(prefix=nil, name=nil) + + def screenshot_embed(options={:prefix => nil, :name => nil, :label => nil}) + path = screenshot(options) + embed(path, "image/png", options[:label] || File.basename(path)) + end + + def screenshot(options={:prefix => nil, :name => nil}) + prefix = options[:prefix] + name = options[:name] + + @@screenshot_count ||= 0 res = http({:method => :get, :path => 'screenshot'}) prefix = prefix || ENV['SCREENSHOT_PATH'] || "" - name = "screenshot_#{CALABASH_COUNT[:step_line]}.png" if name.nil? - path = "#{prefix}#{name}" + if name.nil? + name = "screenshot" + else + if File.extname(name).downcase == ".png" + name = name.split(".png")[0] + end + end + + path = "#{prefix}#{name}_#{@@screenshot_count}.png" File.open(path, 'wb') do |f| f.write res end - puts "Saved screenshot: #{path}" + @@screenshot_count += 1 path end + end end end