require File.join(File.dirname(__FILE__), 'support', 'spec_helper') require 'albacore/zipdirectory' require 'albacore/unzip' require 'ziptestdata' describe ZipDirectory, 'when zipping a directory of files' do before :each do zip = ZipDirectory.new zip.directories_to_zip ZipTestData.folder zip.output_file = "test.zip" zip.execute end it "should produce a zip file" do File.exist?(File.join(ZipTestData.folder, "test.zip")).should be_true end end describe ZipDirectory, 'when zipping a directory with string exclusions' do before :each do zip = ZipDirectory.new zip.directories_to_zip ZipTestData.folder zip.output_file = 'test.zip' zip.exclusions File.join(ZipTestData.folder, 'files', 'testfile.txt') zip.execute unzip = Unzip.new unzip.file = File.join(ZipTestData.folder, 'test.zip') unzip.destination = ZipTestData.output_folder unzip.execute end after :each do FileUtils.rm_rf ZipTestData.output_folder if File.exist? ZipTestData.output_folder end it 'should not zip files with the same name as any exclusions' do File.exist?(File.join(ZipTestData.output_folder, 'files', 'testfile.txt')).should be_false end end describe ZipDirectory, 'when zipping a directory of files with regexp exclusions' do before :each do zip = ZipDirectory.new zip.directories_to_zip ZipTestData.folder zip.output_file = 'test.zip' zip.exclusions /testfile/ zip.execute unzip = Unzip.new unzip.file = File.join(ZipTestData.folder, 'test.zip') unzip.destination = ZipTestData.output_folder unzip.execute end after :each do FileUtils.rm_rf ZipTestData.output_folder if File.exist? ZipTestData.output_folder end it 'should not zip files that match any of the exclusions regexps' do File.exist?(File.join(ZipTestData.output_folder, 'files', 'testfile.txt')).should be_false end end describe ZipDirectory, 'when zipping a directory of files with glob string exclusions' do before :each do zip = ZipDirectory.new zip.directories_to_zip ZipTestData.folder zip.output_file = 'test.zip' zip.exclusions "**/subfolder/*" zip.execute unzip = Unzip.new unzip.file = File.join(ZipTestData.folder, 'test.zip') unzip.destination = ZipTestData.output_folder unzip.execute end after :each do FileUtils.rm_rf ZipTestData.output_folder if File.exists? ZipTestData.output_folder end it 'should not zip files that match the expanded globs' do File.exist?(File.join(ZipTestData.output_folder, 'files', 'subfolder', 'sub file.txt')).should be_false end it 'should zip the files that don\'t match the globs' do File.exist?(File.join(ZipTestData.output_folder, 'files', 'subfolder')).should be_true File.exist?(File.join(ZipTestData.output_folder, 'files', 'testfile.txt')).should be_true end end describe ZipDirectory, "when providing configuration" do let :zip do Albacore.configure do |config| config.zip.output_file = "configured" end zip = ZipDirectory.new end it "should use the configured values" do zip.output_file.should == "configured" end end