module Utils

def take_screenshot(scenario, driver)
  dt = Time.new
  path = "#{Dir.pwd}/features/results"
  date_dir = "#{dt.year}#{dt.month}#{dt.day}"
  create_directory(path, date_dir)
  screenshot_name = "#{ENV['PLATFORM']}_#{ENV['DEVICE']}_#{scenario.name.gsub(' ', '_').gsub(/[^0-9A-Za-z_]/, '')}_#{dt.hour}_#{dt.min}_#{dt.sec}.png"
  screenshot = Dir.pwd + '/features/results/' + date_dir + '/' + screenshot_name
  save_and_embed_image(screenshot, driver)
end

def save_screenshot_locally(name, driver)
  dt = Time.new
  screenshot_name = "#{name}_#{dt.day}_#{dt.hour}_#{dt.min}_#{dt.sec}.png"
  dir = Dir.home + '/Screenshots'
  Dir.mkdir(dir) unless Dir.exist?(dir)
  screenshot = dir + '/' + screenshot_name
  driver.save_screenshot(screenshot)
end

def create_directory(path, dir_name)
  dir = "#{path}/#{dir_name}"
  Dir.mkdir(path) unless Dir.exist? path
  Dir.mkdir(dir) unless Dir.exist? dir
end

def email_results
  #TODO
end

def ios_settings
  setup = YAML.load_file(Dir.pwd + '/features/support/settings/ios.yml')
  setup[:app_path] = ENV['IOS_DERIVED_DATA_PATH']+'/'+setup[:app] if setup[:app_path].nil?
  setup
end

def android_settings
  YAML.load_file(Dir.pwd + '/features/support/settings/android.yml')
end

private
def save_and_embed_image(path, driver)
  driver.save_screenshot(path)
  embed(path, "image/png")
end

end