diff options
author | Stan Hu <stanhu@gmail.com> | 2018-07-25 15:12:24 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-07-25 15:12:24 +0300 |
commit | 537f87a169576544b26347b5b3a6ab22d2cbfc00 (patch) | |
tree | 58cb66cf9639ef46acc4927fef0b4e0a84269568 /spec/controllers | |
parent | f94b52256d1bedfe6b01ef31f0bed0615b10d918 (diff) | |
parent | d22db4f492d5ae676bea6bc699203d2fc120fe96 (diff) |
Merge branch 'master' into sh-support-bitbucket-server-import
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/wikis_controller_spec.rb | 37 | ||||
-rw-r--r-- | spec/controllers/users_controller_spec.rb | 64 |
2 files changed, 93 insertions, 8 deletions
diff --git a/spec/controllers/projects/wikis_controller_spec.rb b/spec/controllers/projects/wikis_controller_spec.rb index 92addf30307..fed6677935e 100644 --- a/spec/controllers/projects/wikis_controller_spec.rb +++ b/spec/controllers/projects/wikis_controller_spec.rb @@ -1,8 +1,35 @@ require 'spec_helper' describe Projects::WikisController do - let(:project) { create(:project_empty_repo, :public) } + let(:project) { create(:project, :public, :repository) } let(:user) { create(:user) } + let(:wiki) { ProjectWiki.new(project, user) } + + describe 'GET #show' do + let(:wiki_title) { 'page-title-test' } + + render_views + + before do + create_page(wiki_title, 'hello world') + end + + it 'limits the retrieved pages for the sidebar' do + sign_in(user) + + expect(controller).to receive(:load_wiki).and_return(wiki) + + # empty? call + expect(wiki).to receive(:pages).with(limit: 1).and_call_original + # Sidebar entries + expect(wiki).to receive(:pages).with(limit: 15).and_call_original + + get :show, namespace_id: project.namespace, project_id: project, id: wiki_title + + expect(response).to have_http_status(:ok) + expect(response.body).to include(wiki_title) + end + end describe 'POST #preview_markdown' do it 'renders json in a correct format' do @@ -13,4 +40,12 @@ describe Projects::WikisController do expect(JSON.parse(response.body).keys).to match_array(%w(body references)) end end + + def create_page(name, content) + project.wiki.wiki.write_page(name, :markdown, content, commit_details(name)) + end + + def commit_details(name) + Gitlab::Git::Wiki::CommitDetails.new(user.id, user.username, user.name, user.email, "created page #{name}") + end end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index b0acf4a49ac..071f96a729e 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -2,6 +2,8 @@ require 'spec_helper' describe UsersController do let(:user) { create(:user) } + let(:private_user) { create(:user, private_profile: true) } + let(:public_user) { create(:user) } describe 'GET #show' do context 'with rendered views' do @@ -98,16 +100,47 @@ describe UsersController do expect(assigns(:events)).to be_empty end + + it 'hides events if the user has a private profile' do + Gitlab::DataBuilder::Push.build_sample(project, private_user) + + get :show, username: private_user.username, format: :json + + expect(assigns(:events)).to be_empty + end end end describe 'GET #calendar' do - it 'renders calendar' do - sign_in(user) + context 'for user' do + let(:project) { create(:project) } + + before do + sign_in(user) + project.add_developer(user) + end + + context 'with public profile' do + it 'renders calendar' do + push_data = Gitlab::DataBuilder::Push.build_sample(project, public_user) + EventCreateService.new.push(project, public_user, push_data) + + get :calendar, username: public_user.username, format: :json - get :calendar, username: user.username, format: :json + expect(response).to have_gitlab_http_status(200) + end + end + + context 'with private profile' do + it 'does not render calendar' do + push_data = Gitlab::DataBuilder::Push.build_sample(project, private_user) + EventCreateService.new.push(project, private_user, push_data) - expect(response).to have_gitlab_http_status(200) + get :calendar, username: private_user.username, format: :json + + expect(response).to have_gitlab_http_status(:not_found) + end + end end context 'forked project' do @@ -150,9 +183,26 @@ describe UsersController do expect(assigns(:calendar_date)).to eq(Date.parse('2014-07-31')) end - it 'renders calendar_activities' do - get :calendar_activities, username: user.username - expect(response).to render_template('calendar_activities') + context 'for user' do + context 'with public profile' do + it 'renders calendar_activities' do + push_data = Gitlab::DataBuilder::Push.build_sample(project, public_user) + EventCreateService.new.push(project, public_user, push_data) + + get :calendar_activities, username: public_user.username + expect(assigns[:events]).not_to be_empty + end + end + + context 'with private profile' do + it 'does not render calendar_activities' do + push_data = Gitlab::DataBuilder::Push.build_sample(project, private_user) + EventCreateService.new.push(project, private_user, push_data) + + get :calendar_activities, username: private_user.username + expect(response).to have_gitlab_http_status(:not_found) + end + end end end |