aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-09-24 08:56:31 +0930
committerMatthew Draper <matthew@trebex.net>2016-09-24 09:04:13 +0930
commite4fcc58529c9659b5d0d35479a9a6acf8edb9e36 (patch)
tree76dcd49c7f4b037d5d12649284615e1e51abda9d /actionpack/lib/action_dispatch
parent780058ba1e781afdd76fb6c0732b5b883aa8daae (diff)
downloadrails-e4fcc58529c9659b5d0d35479a9a6acf8edb9e36.tar.gz
rails-e4fcc58529c9659b5d0d35479a9a6acf8edb9e36.tar.bz2
rails-e4fcc58529c9659b5d0d35479a9a6acf8edb9e36.zip
Only search fixture_path for files that can't be found directly
When passed an already-valid file name, prepending the path is likely to create problems. This is particularly relevant for #26384, which adds fixture_path handling to test classes that previously didn't have it: any existing caller must have been manually locating the file, and we don't want to break them.
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/testing/test_process.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/testing/test_process.rb b/actionpack/lib/action_dispatch/testing/test_process.rb
index 1456a0afcf..8b03b776fa 100644
--- a/actionpack/lib/action_dispatch/testing/test_process.rb
+++ b/actionpack/lib/action_dispatch/testing/test_process.rb
@@ -34,7 +34,8 @@ module ActionDispatch
#
# post :change_avatar, avatar: fixture_file_upload('files/spongebob.png', 'image/png', :binary)
def fixture_file_upload(path, mime_type = nil, binary = false)
- if self.class.respond_to?(:fixture_path) && self.class.fixture_path
+ if self.class.respond_to?(:fixture_path) && self.class.fixture_path &&
+ !File.exist?(path)
path = File.join(self.class.fixture_path, path)
end
Rack::Test::UploadedFile.new(path, mime_type, binary)