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
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/carrierwave_direct/test/capybara_helpers.rb', line 21
def upload_directly(uploader, button_locator, **options)
options[:success] = true unless options[:success] == false
options[:success] &&= !options[:fail]
if options[:success]
redirect_url = URI.parse(page.find("input[name='success_action_redirect']", visible: false).value)
unless options[:redirect_key]
sample_key_args = [{:base => find_key, :filename => File.basename(find_upload_path)}]
sample_key_args.unshift(uploader) if method(:sample_key).arity == -2
options[:redirect_key] = sample_key(*sample_key_args)
end
redirect_url_params = Rack::Utils.parse_nested_query(redirect_url.query)
redirect_url.query = Rack::Utils.build_nested_query({
:bucket => uploader.fog_directory,
:key => options[:redirect_key],
:etag => "\"d41d8cd98f00b204e9800998ecf8427\""
}.merge(redirect_url_params))
click_button button_locator
visit redirect_url.to_s
else
click_button button_locator
end
end
|