diff options
author | Jacob Schatz <jschatz@gitlab.com> | 2016-10-25 02:47:27 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-10-25 15:20:34 +0200 |
commit | 67df786d4d627dfacc174c8b668885ce8ff14b95 (patch) | |
tree | 25848b2e49e9e06813c0fa3f114b0d70cab513ba | |
parent | 01bb7673ebb342d823dab7df0f56c7d49b127020 (diff) | |
download | gitlab-ce-67df786d4d627dfacc174c8b668885ce8ff14b95.tar.gz |
Merge branch 'register-tab' into 'master'
Only show register tab if signup enabled.
Fixes a regression where the register tab is activated, even if sign-up enabled is not activated in application_settings.
https://gitlab.com/gitlab-org/gitlab-ce/issues/23654
See merge request !7058
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | app/views/devise/shared/_tabs_normal.html.haml | 5 | ||||
-rw-r--r-- | spec/features/login_spec.rb | 65 |
3 files changed, 69 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 85cb85b772c..453e77fb840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Please view this file on the master branch, on stable branches it's out of date. - Remove extra line for empty issue description. !7045 - Fix error in generating labels. !7055 - Stop clearing the database cache on `rake cache:clear`. !7056 + - Only show register tab if signup enabled. !7058 ## 8.13.0 (2016-10-22) diff --git a/app/views/devise/shared/_tabs_normal.html.haml b/app/views/devise/shared/_tabs_normal.html.haml index 79b1d447a92..05246303fb6 100644 --- a/app/views/devise/shared/_tabs_normal.html.haml +++ b/app/views/devise/shared/_tabs_normal.html.haml @@ -1,5 +1,6 @@ %ul.nav-links.new-session-tabs.nav-tabs{ role: 'tablist'} %li.active{ role: 'presentation' } %a{ href: '#login-pane', data: { toggle: 'tab' }, role: 'tab'} Sign in - %li{ role: 'presentation'} - %a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab'} Register + - if signin_enabled? && signup_enabled? + %li{ role: 'presentation'} + %a{ href: '#register-pane', data: { toggle: 'tab' }, role: 'tab'} Register diff --git a/spec/features/login_spec.rb b/spec/features/login_spec.rb index 996f39ea06d..76bcfbe523a 100644 --- a/spec/features/login_spec.rb +++ b/spec/features/login_spec.rb @@ -215,4 +215,69 @@ feature 'Login', feature: true do end end end + + describe 'UI tabs and panes' do + context 'when no defaults are changed' do + it 'correctly renders tabs and panes' do + ensure_tab_pane_correctness + end + end + + context 'when signup is disabled' do + before do + stub_application_setting(signup_enabled: false) + end + + it 'correctly renders tabs and panes' do + ensure_tab_pane_correctness + end + end + + context 'when ldap is enabled' do + before do + visit new_user_session_path + allow(page).to receive(:form_based_providers).and_return([:ldapmain]) + allow(page).to receive(:ldap_enabled).and_return(true) + end + + it 'correctly renders tabs and panes' do + ensure_tab_pane_correctness(false) + end + end + + context 'when crowd is enabled' do + before do + visit new_user_session_path + allow(page).to receive(:form_based_providers).and_return([:crowd]) + allow(page).to receive(:crowd_enabled?).and_return(true) + end + + it 'correctly renders tabs and panes' do + ensure_tab_pane_correctness(false) + end + end + + def ensure_tab_pane_correctness(visit_path = true) + if visit_path + visit new_user_session_path + end + + ensure_tab_pane_counts + ensure_one_active_tab + ensure_one_active_pane + end + + def ensure_tab_pane_counts + tabs_count = page.all('[role="tab"]').size + expect(page).to have_selector('[role="tabpanel"]', count: tabs_count) + end + + def ensure_one_active_tab + expect(page).to have_selector('.nav-tabs > li.active', count: 1) + end + + def ensure_one_active_pane + expect(page).to have_selector('.tab-pane.active', count: 1) + end + end end |