summaryrefslogtreecommitdiff
path: root/spec/features/admin
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-19 20:44:58 +0000
committerRémy Coutable <remy@rymai.me>2016-12-19 20:44:58 +0000
commit4298209a7ad0d55caf508e1b853d3457f1801b0a (patch)
tree01ca97e661ead4f0a20c658265689241dda760ba /spec/features/admin
parent46533a7d63570a5de7c9da2ff2f51963c0c9cd5f (diff)
parenta0c48ec62b64f3b836d8af04c46938d6951911ef (diff)
downloadgitlab-ce-4298209a7ad0d55caf508e1b853d3457f1801b0a.tar.gz
Merge branch 'move-admin-appearance-feature-to-rspec' into 'master'
Move Admin Appearance spinach feature to RSpec Part of #23036 See merge request !8063
Diffstat (limited to 'spec/features/admin')
-rw-r--r--spec/features/admin/admin_appearance_spec.rb76
1 files changed, 76 insertions, 0 deletions
diff --git a/spec/features/admin/admin_appearance_spec.rb b/spec/features/admin/admin_appearance_spec.rb
new file mode 100644
index 00000000000..96d715ef383
--- /dev/null
+++ b/spec/features/admin/admin_appearance_spec.rb
@@ -0,0 +1,76 @@
+require 'spec_helper'
+
+feature 'Admin Appearance', feature: true do
+ let!(:appearance) { create(:appearance) }
+
+ scenario 'Create new appearance' do
+ login_as :admin
+ visit admin_appearances_path
+
+ fill_in 'appearance_title', with: 'MyCompany'
+ fill_in 'appearance_description', with: 'dev server'
+ click_button 'Save'
+
+ expect(current_path).to eq admin_appearances_path
+ expect(page).to have_content 'Appearance settings'
+
+ expect(page).to have_field('appearance_title', with: 'MyCompany')
+ expect(page).to have_field('appearance_description', with: 'dev server')
+ expect(page).to have_content 'Last edit'
+ end
+
+ scenario 'Preview appearance' do
+ login_as :admin
+
+ visit admin_appearances_path
+ click_link "Preview"
+
+ expect_page_has_custom_appearance(appearance)
+ end
+
+ scenario 'Custom sign-in page' do
+ visit new_user_session_path
+ expect_page_has_custom_appearance(appearance)
+ end
+
+ scenario 'Appearance logo' do
+ login_as :admin
+ visit admin_appearances_path
+
+ attach_file(:appearance_logo, logo_fixture)
+ click_button 'Save'
+ expect(page).to have_css(logo_selector)
+
+ click_link 'Remove logo'
+ expect(page).not_to have_css(logo_selector)
+ end
+
+ scenario 'Header logos' do
+ login_as :admin
+ visit admin_appearances_path
+
+ attach_file(:appearance_header_logo, logo_fixture)
+ click_button 'Save'
+ expect(page).to have_css(header_logo_selector)
+
+ click_link 'Remove header logo'
+ expect(page).not_to have_css(header_logo_selector)
+ end
+
+ def expect_page_has_custom_appearance(appearance)
+ expect(page).to have_content appearance.title
+ expect(page).to have_content appearance.description
+ end
+
+ def logo_selector
+ '//img[@src^="/uploads/appearance/logo"]'
+ end
+
+ def header_logo_selector
+ '//img[@src^="/uploads/appearance/header_logo"]'
+ end
+
+ def logo_fixture
+ Rails.root.join('spec', 'fixtures', 'dk.png')
+ end
+end