diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-07-05 21:24:04 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-07-05 21:24:04 +0200 |
commit | cca9242085d73dff66a946af8a740a4f7419f84c (patch) | |
tree | c65c67f3990bc1bb2204cedbcfeff4919d3f565c /spec | |
parent | 1a581a6afcc3ac94dcc2208412bd80861dba84ab (diff) | |
parent | a8a4ca17e444c761ed9fc5dca4542cfec79abe55 (diff) | |
download | gitlab-ce-cca9242085d73dff66a946af8a740a4f7419f84c.tar.gz |
Merge commit 'a8a4ca17e444c761ed9fc5dca4542cfec79abe55' into 32815--Add-Custom-CI-Config-Path32815--Add-Custom-CI-Config-Path
* commit 'a8a4ca17e444c761ed9fc5dca4542cfec79abe55':
Remove IIFEs around several javascript classes
Handles realtime with 2 states for environments table
Revert "Merge branch '18000-remember-me-for-oauth-login' into 'master'"
Disable Flipper memoizer in tests to avoid transient failures
fix sidebar padding for full-width items (Time Tracking help)
Replace 'snippets/snippets.feature' spinach with rspec
32838 Add wells to admin dashboard overview to fix spacing problems
Diffstat (limited to 'spec')
-rw-r--r-- | spec/factories/personal_snippets.rb | 4 | ||||
-rw-r--r-- | spec/factories/project_snippets.rb | 5 | ||||
-rw-r--r-- | spec/factories/snippets.rb | 7 | ||||
-rw-r--r-- | spec/features/oauth_login_spec.rb | 112 | ||||
-rw-r--r-- | spec/features/snippets/user_creates_snippet_spec.rb (renamed from spec/features/snippets/create_snippet_spec.rb) | 6 | ||||
-rw-r--r-- | spec/features/snippets/user_deletes_snippet_spec.rb | 19 | ||||
-rw-r--r-- | spec/features/snippets/user_edits_snippet_spec.rb (renamed from spec/features/snippets/edit_snippet_spec.rb) | 26 | ||||
-rw-r--r-- | spec/javascripts/environments/environments_store_spec.js | 21 | ||||
-rw-r--r-- | spec/javascripts/fixtures/oauth_remember_me.html.haml | 5 | ||||
-rw-r--r-- | spec/javascripts/oauth_remember_me_spec.js | 26 | ||||
-rw-r--r-- | spec/support/capybara_helpers.rb | 5 | ||||
-rw-r--r-- | spec/support/login_helpers.rb | 13 |
12 files changed, 75 insertions, 174 deletions
diff --git a/spec/factories/personal_snippets.rb b/spec/factories/personal_snippets.rb deleted file mode 100644 index 0f13b2c1020..00000000000 --- a/spec/factories/personal_snippets.rb +++ /dev/null @@ -1,4 +0,0 @@ -FactoryGirl.define do - factory :personal_snippet, parent: :snippet, class: :PersonalSnippet do - end -end diff --git a/spec/factories/project_snippets.rb b/spec/factories/project_snippets.rb deleted file mode 100644 index e0fe1b36fd3..00000000000 --- a/spec/factories/project_snippets.rb +++ /dev/null @@ -1,5 +0,0 @@ -FactoryGirl.define do - factory :project_snippet, parent: :snippet, class: :ProjectSnippet do - project factory: :empty_project - end -end diff --git a/spec/factories/snippets.rb b/spec/factories/snippets.rb index 388f662e6e5..f6ce99d50f9 100644 --- a/spec/factories/snippets.rb +++ b/spec/factories/snippets.rb @@ -18,4 +18,11 @@ FactoryGirl.define do visibility_level Snippet::PRIVATE end end + + factory :project_snippet, parent: :snippet, class: :ProjectSnippet do + project factory: :empty_project + end + + factory :personal_snippet, parent: :snippet, class: :PersonalSnippet do + end end diff --git a/spec/features/oauth_login_spec.rb b/spec/features/oauth_login_spec.rb deleted file mode 100644 index 452b920307c..00000000000 --- a/spec/features/oauth_login_spec.rb +++ /dev/null @@ -1,112 +0,0 @@ -require 'spec_helper' - -feature 'OAuth Login', js: true do - def enter_code(code) - fill_in 'user_otp_attempt', with: code - click_button 'Verify code' - end - - def stub_omniauth_config(provider) - OmniAuth.config.add_mock(provider, OmniAuth::AuthHash.new(provider: provider.to_s, uid: "12345")) - Rails.application.env_config['devise.mapping'] = Devise.mappings[:user] - Rails.application.env_config['omniauth.auth'] = OmniAuth.config.mock_auth[provider] - end - - providers = [:github, :twitter, :bitbucket, :gitlab, :google_oauth2, - :facebook, :authentiq, :cas3, :auth0] - - before(:all) do - # The OmniAuth `full_host` parameter doesn't get set correctly (it gets set to something like `http://localhost` - # here), and causes integration tests to fail with 404s. We set the `full_host` by removing the request path (and - # anything after it) from the request URI. - @omniauth_config_full_host = OmniAuth.config.full_host - OmniAuth.config.full_host = ->(request) { request['REQUEST_URI'].sub(/#{request['REQUEST_PATH']}.*/, '') } - end - - after(:all) do - OmniAuth.config.full_host = @omniauth_config_full_host - end - - providers.each do |provider| - context "when the user logs in using the #{provider} provider" do - context 'when two-factor authentication is disabled' do - it 'logs the user in' do - stub_omniauth_config(provider) - user = create(:omniauth_user, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid') - - expect(current_path).to eq root_path - end - end - - context 'when two-factor authentication is enabled' do - it 'logs the user in' do - stub_omniauth_config(provider) - user = create(:omniauth_user, :two_factor, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid') - - enter_code(user.current_otp) - expect(current_path).to eq root_path - end - end - - context 'when "remember me" is checked' do - context 'when two-factor authentication is disabled' do - it 'remembers the user after a browser restart' do - stub_omniauth_config(provider) - user = create(:omniauth_user, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid', remember_me: true) - - clear_browser_session - - visit(root_path) - expect(current_path).to eq root_path - end - end - - context 'when two-factor authentication is enabled' do - it 'remembers the user after a browser restart' do - stub_omniauth_config(provider) - user = create(:omniauth_user, :two_factor, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid', remember_me: true) - enter_code(user.current_otp) - - clear_browser_session - - visit(root_path) - expect(current_path).to eq root_path - end - end - end - - context 'when "remember me" is not checked' do - context 'when two-factor authentication is disabled' do - it 'does not remember the user after a browser restart' do - stub_omniauth_config(provider) - user = create(:omniauth_user, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid', remember_me: false) - - clear_browser_session - - visit(root_path) - expect(current_path).to eq new_user_session_path - end - end - - context 'when two-factor authentication is enabled' do - it 'does not remember the user after a browser restart' do - stub_omniauth_config(provider) - user = create(:omniauth_user, :two_factor, extern_uid: 'my-uid', provider: provider.to_s) - login_via(provider.to_s, user, 'my-uid', remember_me: false) - enter_code(user.current_otp) - - clear_browser_session - - visit(root_path) - expect(current_path).to eq new_user_session_path - end - end - end - end - end -end diff --git a/spec/features/snippets/create_snippet_spec.rb b/spec/features/snippets/user_creates_snippet_spec.rb index ac5c14ed427..57dec14b480 100644 --- a/spec/features/snippets/create_snippet_spec.rb +++ b/spec/features/snippets/user_creates_snippet_spec.rb @@ -1,10 +1,12 @@ require 'rails_helper' -feature 'Create Snippet', :js, feature: true do +feature 'User creates snippet', :js, feature: true do include DropzoneHelper + let(:user) { create(:user) } + before do - gitlab_sign_in :user + sign_in(user) visit new_snippet_path end diff --git a/spec/features/snippets/user_deletes_snippet_spec.rb b/spec/features/snippets/user_deletes_snippet_spec.rb new file mode 100644 index 00000000000..162c2c9e730 --- /dev/null +++ b/spec/features/snippets/user_deletes_snippet_spec.rb @@ -0,0 +1,19 @@ +require 'rails_helper' + +feature 'User deletes snippet', feature: true do + let(:user) { create(:user) } + let(:content) { 'puts "test"' } + let(:snippet) { create(:personal_snippet, :public, content: content, author: user) } + + before do + sign_in(user) + + visit snippet_path(snippet) + end + + it 'deletes the snippet' do + first(:link, 'Delete').click + + expect(page).not_to have_content(snippet.title) + end +end diff --git a/spec/features/snippets/edit_snippet_spec.rb b/spec/features/snippets/user_edits_snippet_spec.rb index 860e1b156d6..cff64423873 100644 --- a/spec/features/snippets/edit_snippet_spec.rb +++ b/spec/features/snippets/user_edits_snippet_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -feature 'Edit Snippet', :js, feature: true do +feature 'User edits snippet', :js, feature: true do include DropzoneHelper let(:file_name) { 'test.rb' } @@ -10,7 +10,7 @@ feature 'Edit Snippet', :js, feature: true do let(:snippet) { create(:personal_snippet, :public, file_name: file_name, content: content, author: user) } before do - gitlab_sign_in(user) + sign_in(user) visit edit_snippet_path(snippet) wait_for_requests @@ -27,7 +27,7 @@ feature 'Edit Snippet', :js, feature: true do it 'updates the snippet with files attached' do dropzone_file Rails.root.join('spec', 'fixtures', 'banana_sample.gif') - expect(page.find_field("personal_snippet_description").value).to have_content('banana_sample') + expect(page.find_field('personal_snippet_description').value).to have_content('banana_sample') click_button('Save changes') wait_for_requests @@ -35,4 +35,24 @@ feature 'Edit Snippet', :js, feature: true do link = find('a.no-attachment-icon img[alt="banana_sample"]')['src'] expect(link).to match(%r{/uploads/personal_snippet/#{snippet.id}/\h{32}/banana_sample\.gif\z}) end + + it 'updates the snippet to make it internal' do + choose 'Internal' + + click_button 'Save changes' + wait_for_requests + + expect(page).to have_no_xpath("//i[@class='fa fa-lock']") + expect(page).to have_xpath("//i[@class='fa fa-shield']") + end + + it 'updates the snippet to make it public' do + choose 'Public' + + click_button 'Save changes' + wait_for_requests + + expect(page).to have_no_xpath("//i[@class='fa fa-lock']") + expect(page).to have_xpath("//i[@class='fa fa-globe']") + end end diff --git a/spec/javascripts/environments/environments_store_spec.js b/spec/javascripts/environments/environments_store_spec.js index 6e855530b21..f2c6ec24dd7 100644 --- a/spec/javascripts/environments/environments_store_spec.js +++ b/spec/javascripts/environments/environments_store_spec.js @@ -86,6 +86,16 @@ describe('Store', () => { store.toggleFolder(store.state.environments[1]); expect(store.state.environments[1].isOpen).toEqual(false); }); + + it('should keep folder open when environments are updated', () => { + store.storeEnvironments(serverData); + + store.toggleFolder(store.state.environments[1]); + expect(store.state.environments[1].isOpen).toEqual(true); + + store.storeEnvironments(serverData); + expect(store.state.environments[1].isOpen).toEqual(true); + }); }); describe('setfolderContent', () => { @@ -97,6 +107,17 @@ describe('Store', () => { expect(store.state.environments[1].children.length).toEqual(serverData.length); expect(store.state.environments[1].children[0].isChildren).toEqual(true); }); + + it('should keep folder content when environments are updated', () => { + store.storeEnvironments(serverData); + + store.setfolderContent(store.state.environments[1], serverData); + + expect(store.state.environments[1].children.length).toEqual(serverData.length); + // poll + store.storeEnvironments(serverData); + expect(store.state.environments[1].children.length).toEqual(serverData.length); + }); }); describe('store pagination', () => { diff --git a/spec/javascripts/fixtures/oauth_remember_me.html.haml b/spec/javascripts/fixtures/oauth_remember_me.html.haml deleted file mode 100644 index 7886e995e57..00000000000 --- a/spec/javascripts/fixtures/oauth_remember_me.html.haml +++ /dev/null @@ -1,5 +0,0 @@ -#oauth-container - %input#remember_me{ type: "checkbox" } - - %a.oauth-login.twitter{ href: "http://example.com/" } - %a.oauth-login.github{ href: "http://example.com/" } diff --git a/spec/javascripts/oauth_remember_me_spec.js b/spec/javascripts/oauth_remember_me_spec.js deleted file mode 100644 index f90e0093d25..00000000000 --- a/spec/javascripts/oauth_remember_me_spec.js +++ /dev/null @@ -1,26 +0,0 @@ -import OAuthRememberMe from '~/oauth_remember_me'; - -describe('OAuthRememberMe', () => { - preloadFixtures('static/oauth_remember_me.html.raw'); - - beforeEach(() => { - loadFixtures('static/oauth_remember_me.html.raw'); - - new OAuthRememberMe({ container: $('#oauth-container') }).bindEvents(); - }); - - it('adds the "remember_me" query parameter to all OAuth login buttons', () => { - $('#oauth-container #remember_me').click(); - - expect($('#oauth-container .oauth-login.twitter').attr('href')).toBe('http://example.com/?remember_me=1'); - expect($('#oauth-container .oauth-login.github').attr('href')).toBe('http://example.com/?remember_me=1'); - }); - - it('removes the "remember_me" query parameter from all OAuth login buttons', () => { - $('#oauth-container #remember_me').click(); - $('#oauth-container #remember_me').click(); - - expect($('#oauth-container .oauth-login.twitter').attr('href')).toBe('http://example.com/'); - expect($('#oauth-container .oauth-login.github').attr('href')).toBe('http://example.com/'); - }); -}); diff --git a/spec/support/capybara_helpers.rb b/spec/support/capybara_helpers.rb index 3eb7bea3227..b57a3493aff 100644 --- a/spec/support/capybara_helpers.rb +++ b/spec/support/capybara_helpers.rb @@ -35,11 +35,6 @@ module CapybaraHelpers visit 'about:blank' visit url end - - # Simulate a browser restart by clearing the session cookie. - def clear_browser_session - page.driver.remove_cookie('_gitlab_session') - end end RSpec.configure do |config| diff --git a/spec/support/login_helpers.rb b/spec/support/login_helpers.rb index 99e7806353d..4c88958264b 100644 --- a/spec/support/login_helpers.rb +++ b/spec/support/login_helpers.rb @@ -62,16 +62,6 @@ module LoginHelpers Thread.current[:current_user] = user end - def login_via(provider, user, uid, remember_me: false) - mock_auth_hash(provider, uid, user.email) - visit new_user_session_path - expect(page).to have_content('Sign in with') - - check 'Remember Me' if remember_me - - click_link "oauth-login-#{provider}" - end - def mock_auth_hash(provider, uid, email) # The mock_auth configuration allows you to set per-provider (or default) # authentication hashes to return during integration testing. @@ -118,7 +108,6 @@ module LoginHelpers end allow(Gitlab::OAuth::Provider).to receive_messages(providers: [:saml], config_for: mock_saml_config) stub_omniauth_setting(messages) - allow_any_instance_of(Object).to receive(:user_saml_omniauth_authorize_path).and_return('/users/auth/saml') - allow_any_instance_of(Object).to receive(:omniauth_authorize_path).with(:user, "saml").and_return('/users/auth/saml') + expect_any_instance_of(Object).to receive(:omniauth_authorize_path).with(:user, "saml").and_return('/users/auth/saml') end end |