31 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|  | # frozen_string_literal: true | ||
|  | 
 | ||
|  | require 'rails_helper' | ||
|  | 
 | ||
|  | describe ApplicationController, type: :controller do | ||
|  |   controller do | ||
|  |     include ObfuscateFilename | ||
|  | 
 | ||
|  |     obfuscate_filename :file | ||
|  | 
 | ||
|  |     def file | ||
|  |       render plain: params[:file]&.original_filename | ||
|  |     end | ||
|  |   end | ||
|  | 
 | ||
|  |   before do | ||
|  |     routes.draw { get 'file' => 'anonymous#file' } | ||
|  |   end | ||
|  | 
 | ||
|  |   it 'obfusticates filename if the given parameter is specified' do | ||
|  |     file = fixture_file_upload('files/imports.txt', 'text/plain') | ||
|  |     post 'file', params: { file: file } | ||
|  |     expect(response.body).to end_with '.txt' | ||
|  |     expect(response.body).not_to include 'imports' | ||
|  |   end | ||
|  | 
 | ||
|  |   it 'does nothing if the given parameter is not specified' do | ||
|  |     post 'file' | ||
|  |   end | ||
|  | end |