summaryrefslogtreecommitdiff
path: root/spec/features/admin/admin_appearance_spec.rb
diff options
context:
space:
mode:
authorAlexis Reigel <alexis.reigel.ext@siemens.com>2017-12-06 21:04:53 +0100
committerAlexis Reigel <mail@koffeinfrei.org>2018-06-05 16:20:21 +0200
commit9e14f437b6ed205744d916f5566ee2c11e52b734 (patch)
tree5c4bf1237cfc4a6cf73f30f942d25e0ab4f0973c /spec/features/admin/admin_appearance_spec.rb
parent5202c3f0c8da618e2d3821917f6f5d48ae8ae3c2 (diff)
downloadgitlab-ce-9e14f437b6ed205744d916f5566ee2c11e52b734.tar.gz
create favicon overlay on the client
the initial reason for this change was that graphicsmagick does not support writing to ico files. this fact lead to a chain of changes: 1. use png instead of ico (browser support is good enough) 2. render the overlays on the client using the canvas API. this way we only need to store the original favion and generate the overlay versions dynamically. this change also enables (next step) to simplify the handling of the stock favicons as well, as we don't need to generate all the versions upfront.
Diffstat (limited to 'spec/features/admin/admin_appearance_spec.rb')
-rw-r--r--spec/features/admin/admin_appearance_spec.rb27
1 files changed, 4 insertions, 23 deletions
diff --git a/spec/features/admin/admin_appearance_spec.rb b/spec/features/admin/admin_appearance_spec.rb
index ffffd14752e..0ac4f111c52 100644
--- a/spec/features/admin/admin_appearance_spec.rb
+++ b/spec/features/admin/admin_appearance_spec.rb
@@ -76,38 +76,19 @@ feature 'Admin Appearance' do
expect(page).not_to have_css(header_logo_selector)
end
- scenario 'Favicon' do
+ scenario 'Favicon', :js do
sign_in(create(:admin))
visit admin_appearances_path
attach_file(:appearance_favicon, logo_fixture)
click_button 'Save'
- expect(page).to have_css('//img[data-src$="/default_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_canceled_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_created_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_failed_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_manual_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_not_found_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_pending_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_running_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_skipped_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_success_dk.ico"]')
- expect(page).to have_css('//img[data-src$="/status_warning_dk.ico"]')
+ # 11 = 1 original + 10 overlay variations
+ expect(page).to have_css('.appearance-light-logo-preview', count: 11)
click_link 'Remove favicon'
- expect(page).not_to have_css('//img[data-src$="/default_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_canceled_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_created_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_failed_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_manual_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_not_found_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_pending_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_running_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_skipped_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_success_dk.ico"]')
- expect(page).not_to have_css('//img[data-src$="/status_warning_dk.ico"]')
+ expect(page).not_to have_css('.appearance-light-logo-preview')
# allowed file types
attach_file(:appearance_favicon, Rails.root.join('spec', 'fixtures', 'sanitized.svg'))