+ def default_ping_opts
+ {ping_secret: '', service_ssl_flag: false, service_port: 1234}
+ end
+
+ test "add keep disk with admin token" do
+ authorize_with :admin
+ post :ping, params: default_ping_opts.
+ merge(filesystem_uuid: 'eb1e77a1-db84-4193-b6e6-ca2894f67d5f')
+ assert_response :success
+ assert_not_nil assigns(:object)
+ new_keep_disk = JSON.parse(@response.body)
+ assert_not_nil new_keep_disk['uuid']
+ assert_not_nil new_keep_disk['ping_secret']
+ assert_not_equal '', new_keep_disk['ping_secret']
+ end
+
+ [
+ {},
+ {filesystem_uuid: ''},
+ ].each do |opts|
+ test "add keep disk with[out] filesystem_uuid #{opts}" do
+ authorize_with :admin
+ post :ping, params: default_ping_opts.merge(opts)
+ assert_response :success
+ assert_not_nil JSON.parse(@response.body)['uuid']
+ end
+ end
+
+ test "refuse to add keep disk without admin token" do
+ post :ping, params: default_ping_opts
+ assert_response 404
+ end
+
+ test "ping keep disk" do
+ post :ping, params: default_ping_opts.
+ merge(id: keep_disks(:nonfull).uuid,
+ ping_secret: keep_disks(:nonfull).ping_secret,
+ filesystem_uuid: keep_disks(:nonfull).filesystem_uuid)
+ assert_response :success
+ assert_not_nil assigns(:object)
+ keep_disk = JSON.parse(@response.body)
+ assert_not_nil keep_disk['uuid']
+ assert_not_nil keep_disk['ping_secret']
+ end
+
+ test "admin should get index with ping_secret" do