Add test for extracting unwritable files.
This commit is contained in:
parent
347bc4535f
commit
fa2d917dec
@ -28,10 +28,12 @@ describe UnpackStrategy do
|
|||||||
|
|
||||||
context "when extracting a directory with nested directories" do
|
context "when extracting a directory with nested directories" do
|
||||||
let(:directories) { "A/B/C" }
|
let(:directories) { "A/B/C" }
|
||||||
|
let(:writable) { true }
|
||||||
let(:path) {
|
let(:path) {
|
||||||
(mktmpdir/"file.tar").tap do |path|
|
(mktmpdir/"file.tar").tap do |path|
|
||||||
mktmpdir do |dir|
|
mktmpdir do |dir|
|
||||||
(dir/directories).mkpath
|
(dir/directories).mkpath
|
||||||
|
FileUtils.chmod "-w", (dir/directories) unless writable
|
||||||
system "tar", "--create", "--file", path, "--directory", dir, "A/"
|
system "tar", "--create", "--file", path, "--directory", dir, "A/"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -41,6 +43,17 @@ describe UnpackStrategy do
|
|||||||
strategy.extract_nestedly(to: unpack_dir)
|
strategy.extract_nestedly(to: unpack_dir)
|
||||||
expect(Pathname.glob(unpack_dir/"**/*")).to include unpack_dir/directories
|
expect(Pathname.glob(unpack_dir/"**/*")).to include unpack_dir/directories
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "which are not writable" do
|
||||||
|
let(:writable) { false }
|
||||||
|
|
||||||
|
it "makes them writable but not world-writable" do
|
||||||
|
strategy.extract_nestedly(to: unpack_dir)
|
||||||
|
|
||||||
|
expect(unpack_dir/directories).to be_writable
|
||||||
|
expect(unpack_dir/directories).not_to be_world_writable
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when extracting a nested archive" do
|
context "when extracting a nested archive" do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user