From 09c82c6fdc494de0d64cb58b4b61a86104ff1131 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 7 Jan 2016 10:33:07 +0100 Subject: Add spinach feature specs for build artifacts browser --- features/steps/project/builds.rb | 34 ++++++++++++++++++++++++++++++++++ features/steps/shared/builds.rb | 12 ++++++++++++ 2 files changed, 46 insertions(+) (limited to 'features/steps') diff --git a/features/steps/project/builds.rb b/features/steps/project/builds.rb index 769690dd79d..5ee6226a522 100644 --- a/features/steps/project/builds.rb +++ b/features/steps/project/builds.rb @@ -11,4 +11,38 @@ class Spinach::Features::ProjectBuilds < Spinach::FeatureSteps step 'I see build trace' do expect(page).to have_css '#build-trace' end + + step 'I click artifacts download button' do + page.within('.artifacts') { click_link 'Download' } + end + + step 'download of build artifacts archive starts' do + expect(page.response_headers['Content-Type']).to eq 'application/zip' + expect(page.response_headers['Content-Transfer-Encoding']).to eq 'binary' + end + + step 'I click artifacts browse button' do + page.within('.artifacts') { click_link 'Browse' } + end + + step 'I should see content of artifacts archive' do + page.within('.tree-table') do + expect(page).to have_no_content '..' + expect(page).to have_content 'other_artifacts_0.1.2' + expect(page).to have_content 'ci_artifacts.txt' + expect(page).to have_content 'rails_sample.jpg' + end + end + + step 'I click link to subdirectory within build artifacts' do + page.within('.tree-table') { click_link 'other_artifacts_0.1.2' } + end + + step 'I should see content of subdirectory within artifacts archive' do + page.within('.tree-table') do + expect(page).to have_content '..' + expect(page).to have_content 'another-subdirectory' + expect(page).to have_content 'doc_sample.txt' + end + end end diff --git a/features/steps/shared/builds.rb b/features/steps/shared/builds.rb index 6f9cd174729..a83d74e5946 100644 --- a/features/steps/shared/builds.rb +++ b/features/steps/shared/builds.rb @@ -13,4 +13,16 @@ module SharedBuilds step 'I visit recent build summary page' do visit namespace_project_build_path(@project.namespace, @project, @build) end + + step 'recent build has artifacts available' do + artifacts = Rails.root + 'spec/fixtures/ci_build_artifacts.zip' + archive = fixture_file_upload(artifacts, 'application/zip') + @build.update_attributes(artifacts_file: archive) + end + + step 'recent build has artifacts metadata available' do + metadata = Rails.root + 'spec/fixtures/ci_build_artifacts_metadata.gz' + gzip = fixture_file_upload(metadata, 'application/x-gzip') + @build.update_attributes(artifacts_metadata: gzip) + end end -- cgit v1.2.1