Class: Selenium::RSpec::Reporting::FilePathStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/rspec/reporting/file_path_strategy.rb

Constant Summary collapse

REPORT_DEFAULT_FILE_PATH =
File.join(Dir::tmpdir, "selenium_test_report", "index.html")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(final_report_file_path) ⇒ FilePathStrategy

Returns a new instance of FilePathStrategy.



10
11
12
13
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 10

def initialize(final_report_file_path)
  @final_report_file_path = final_report_file_path || REPORT_DEFAULT_FILE_PATH
  @relative_dir = nil
end

Instance Attribute Details

#final_report_file_pathObject (readonly)

Returns the value of attribute final_report_file_path.



6
7
8
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 6

def final_report_file_path
  @final_report_file_path
end

Instance Method Details

#base_report_dirObject



15
16
17
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 15

def base_report_dir
  @base_report_dir ||= File.dirname(File.expand_path(@final_report_file_path))
end

#file_path(relative_file_path) ⇒ Object



66
67
68
69
70
71
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 66

def file_path(relative_file_path)
  the_file_path = base_report_dir + "/" + relative_file_path
  parent_dir = File.dirname(the_file_path)
  FileUtils.mkdir_p(parent_dir) unless File.directory?(parent_dir)
  the_file_path
end

#file_path_for_browser_network_traffic(example) ⇒ Object



62
63
64
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 62

def file_path_for_browser_network_traffic(example)
  file_path relative_file_path_for_browser_network_traffic(example)
end

#file_path_for_html_capture(example) ⇒ Object



46
47
48
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 46

def file_path_for_html_capture(example)
  file_path relative_file_path_for_html_capture(example)
end

#file_path_for_page_screenshot(example) ⇒ Object



54
55
56
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 54

def file_path_for_page_screenshot(example)
  file_path relative_file_path_for_page_screenshot(example)
end

#file_path_for_remote_control_logs(example) ⇒ Object



58
59
60
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 58

def file_path_for_remote_control_logs(example)
  file_path relative_file_path_for_remote_control_logs(example)
end

#file_path_for_system_screenshot(example) ⇒ Object



50
51
52
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 50

def file_path_for_system_screenshot(example)
  file_path relative_file_path_for_system_screenshot(example)
end

#relative_dirObject



19
20
21
22
23
24
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 19

def relative_dir
  return @relative_dir if @relative_dir
  
  file_name_without_extension = File.basename(@final_report_file_path).sub(/\.[^\.]*$/, "")
  @relative_dir ||=  "resources/" + file_name_without_extension
end

#relative_file_path_for_browser_network_traffic(example) ⇒ Object



42
43
44
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 42

def relative_file_path_for_browser_network_traffic(example)
  "#{relative_dir}/example_#{example.reporting_uid}_browser_network_traffic.log"
end

#relative_file_path_for_html_capture(example) ⇒ Object



26
27
28
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 26

def relative_file_path_for_html_capture(example)
  "#{relative_dir}/example_#{example.reporting_uid}.html"
end

#relative_file_path_for_page_screenshot(example) ⇒ Object



34
35
36
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 34

def relative_file_path_for_page_screenshot(example)
  "#{relative_dir}/example_#{example.reporting_uid}_page_screenshot.png"
end

#relative_file_path_for_remote_control_logs(example) ⇒ Object



38
39
40
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 38

def relative_file_path_for_remote_control_logs(example)
  "#{relative_dir}/example_#{example.reporting_uid}_remote_control.log"
end

#relative_file_path_for_system_screenshot(example) ⇒ Object



30
31
32
# File 'lib/selenium/rspec/reporting/file_path_strategy.rb', line 30

def relative_file_path_for_system_screenshot(example)
  "#{relative_dir}/example_#{example.reporting_uid}_system_screenshot.png"
end