summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-01-07 10:33:07 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-01-14 12:48:15 +0100
commit09c82c6fdc494de0d64cb58b4b61a86104ff1131 (patch)
treee97caf67c160686f23d376213a85b77178d58a7a /features
parentcfffc9eff2c394259000090fb8c4c116863c9199 (diff)
downloadgitlab-ce-09c82c6fdc494de0d64cb58b4b61a86104ff1131.tar.gz
Add spinach feature specs for build artifacts browser
Diffstat (limited to 'features')
-rw-r--r--features/project/builds.feature21
-rw-r--r--features/steps/project/builds.rb34
-rw-r--r--features/steps/shared/builds.rb12
3 files changed, 67 insertions, 0 deletions
diff --git a/features/project/builds.feature b/features/project/builds.feature
index 3f005b5133c..14c9b6c9a35 100644
--- a/features/project/builds.feature
+++ b/features/project/builds.feature
@@ -9,3 +9,24 @@ Feature: Project Builds
When I visit recent build summary page
Then I see summary for build
And I see build trace
+
+ Scenario: I download build artifacts
+ Given recent build has artifacts available
+ When I visit recent build summary page
+ And I click artifacts download button
+ Then download of build artifacts archive starts
+
+ Scenario: I browse build artifacts
+ Given recent build has artifacts available
+ And recent build has artifacts metadata available
+ When I visit recent build summary page
+ And I click artifacts browse button
+ Then I should see content of artifacts archive
+
+ Scenario: I browse subdirectory of build artifacts
+ Given recent build has artifacts available
+ And recent build has artifacts metadata available
+ When I visit recent build summary page
+ And I click artifacts browse button
+ And I click link to subdirectory within build artifacts
+ Then I should see content of subdirectory within artifacts archive
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