WIP
This commit is contained in:
33
spec/requests/acl_spec.rb
Normal file
33
spec/requests/acl_spec.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require 'support/request_helpers'
|
||||
require 'support/examples/acl'
|
||||
|
||||
RSpec.describe 'acl', type: :request do
|
||||
before(:context) do
|
||||
Calligraphy::FileResource.setup
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
skip_authentication
|
||||
end
|
||||
|
||||
after(:context) do
|
||||
Calligraphy::FileResource.cleanup
|
||||
end
|
||||
|
||||
context "for #{Calligraphy::FileResource}" do
|
||||
describe 'acl' do
|
||||
before(:each) do
|
||||
Calligraphy::FileResource.create resource: 'top'
|
||||
end
|
||||
|
||||
it 'grants the proper privileges' do
|
||||
acl '/webdav/top', headers: {
|
||||
RAW_POST_DATA: Support::Examples::Acl.rfc3744_8_1_2
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -56,5 +56,45 @@ RSpec.describe 'OPTIONS', type: :request do
|
||||
expect(response.headers['DAV']).to include('extended-mkcol')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when not using access control support' do
|
||||
before(:each) do
|
||||
allow_any_instance_of(Calligraphy::FileResource).to receive(
|
||||
:enable_access_control?
|
||||
).and_return(false)
|
||||
end
|
||||
|
||||
it 'advertises support for all 3 WebDAV classes' do
|
||||
options '/webdav/special'
|
||||
|
||||
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
|
||||
end
|
||||
|
||||
it 'does not advertise support for access control' do
|
||||
options '/webdav/special'
|
||||
|
||||
expect(response.headers['DAV']).to_not include('access-control')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when using access control support' do
|
||||
before(:each) do
|
||||
allow_any_instance_of(Calligraphy::FileResource).to receive(
|
||||
:enable_access_control?
|
||||
).and_return(true)
|
||||
end
|
||||
|
||||
it 'advertises support for all 3 WebDAV classes' do
|
||||
options '/webdav/special'
|
||||
|
||||
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
|
||||
end
|
||||
|
||||
it 'advertises support for access control' do
|
||||
options '/webdav/special'
|
||||
|
||||
expect(response.headers['DAV']).to include('access-control')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user