1
- # plugins/vault/test/functional/key_files_controller_test.rb
2
1
require File . expand_path ( '../../test_helper' , __FILE__ )
2
+ require 'fileutils'
3
+ require 'byebug'
3
4
4
- class KeyFilesControllerTest < ActionController ::TestCase
5
- fixtures :projects , :users , :key_files
5
+ class KeyFilesControllerTest < Vault ::ControllerTest
6
+ fixtures :projects , :users , :roles , :members , :member_roles
7
+ plugin_fixtures :keys , :vault_tags , :keys_vault_tags
6
8
7
9
def setup
8
- @controller = KeyFilesController . new
9
- @request = ActionController ::TestRequest . create
10
- @response = ActionController ::TestResponse . create
11
- @project = projects ( :one )
12
- @key_file = key_files ( :one )
13
- @user = users ( :one )
14
- @request . session [ :user_id ] = @user . id
10
+ Role . find ( 1 ) . add_permission! :view_keys
11
+ Role . find ( 1 ) . add_permission! :edit_keys
12
+ Role . find ( 1 ) . add_permission! :download_keys
13
+ Project . find ( 1 ) . enabled_module_names = [ :keys ]
14
+ Setting . plugin_vault [ 'use_null_encryption' ] = 'on'
15
+ FileUtils . cp 'plugins/vault/test/fixtures/keyfile.txt' , "#{ Vault ::KEYFILES_DIR } /server.key"
15
16
end
16
17
17
18
def test_download_keyfile
18
- get :download , params : { project_id : @project . id , id : @key_file . id }
19
+ @request . session [ :user_id ] = 2
20
+
21
+ get :download , project_id : 1 , id : 3
22
+
19
23
assert_response :success
24
+ assert_equal 'application/octet-stream' , response . content_type
25
+ assert_equal "This is file for tests\n " , response . body
26
+ assert_equal 'attachment; filename="ssh_access"' , response . header [ "Content-Disposition" ]
20
27
end
21
- end
28
+
29
+ end
0 commit comments