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