Module: Closer::Helpers::Capture
- Defined in:
- lib/closer/helpers/capture.rb
Constant Summary collapse
- IMAGE_DIR =
File.join(feature_dir, 'reports', 'images')
- @@_screen_count =
0
- @@_images =
[]
Instance Method Summary collapse
- #capture(options = {}) ⇒ Object
- #flash_image_tags ⇒ Object
- #normalize_options(options) ⇒ Object
- #resize_window(width, height) ⇒ Object
- #with_capture(options = {}) ⇒ Object
Instance Method Details
#capture(options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/closer/helpers/capture.rb', line 17 def capture( = {}) = () unless .fetch(:force, false) return if ENV['FORMAT'] == 'junit' end url = Rack::Utils.unescape(current_url) @@_screen_count += 1 image = File.join(IMAGE_DIR, "#{@@_screen_count}.png") page.driver.save_screenshot(image, full: true) attrs = { class: 'screenshot', src: "#{File.basename(IMAGE_DIR)}/#{File.basename(image)}", alt: url } attrs[:title] = [:title] if [:title] image_tag = "<img #{attrs.map{|k, v| "#{k}=\"#{v}\"" }.join(' ')} />" if [:flash] log(image_tag) else @@_images << image_tag end end |
#flash_image_tags ⇒ Object
63 64 65 66 67 68 |
# File 'lib/closer/helpers/capture.rb', line 63 def if @@_images.size > 0 log(@@_images.join("\n")) @@_images.clear end end |
#normalize_options(options) ⇒ Object
70 71 72 73 74 |
# File 'lib/closer/helpers/capture.rb', line 70 def () ||= {} = {:title => } if .is_a?(String) end |
#resize_window(width, height) ⇒ Object
59 60 61 |
# File 'lib/closer/helpers/capture.rb', line 59 def resize_window(width, height) page.driver.browser.manage.window.resize_to(width, height) end |
#with_capture(options = {}) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/closer/helpers/capture.rb', line 47 def with_capture( = {}) = () begin yield rescue Exception => e = .merge(:force => true) unless .has_key?(:force) raise e ensure capture() end end |