From cb2be3ce0ab27ac9aa25f0c3eb59047ad5a0153a Mon Sep 17 00:00:00 2001 From: Gabor Liptak Date: Wed, 19 Sep 2012 13:36:00 -0500 Subject: Don't email omniauth created users --- spec/observers/user_observer_spec.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'spec') diff --git a/spec/observers/user_observer_spec.rb b/spec/observers/user_observer_spec.rb index 0420a250c8a..8ce0b577ec8 100644 --- a/spec/observers/user_observer_spec.rb +++ b/spec/observers/user_observer_spec.rb @@ -13,17 +13,25 @@ describe UserObserver do end context 'when a new user is created' do - let(:user) { double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local') } let(:notification) { double :notification } - it 'sends an email' do + it 'sends an email unless external' do + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false) notification.should_receive(:deliver) Notify.should_receive(:new_user_email).with(user.id, user.password).and_return(notification) subject.after_create(user) end + it 'no email for external' do + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: true) + Notify.should_not_receive(:new_user_email) + + subject.after_create(user) + end + it 'trigger logger' do + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false) Gitlab::AppLogger.should_receive(:info) subject.after_create(user) end -- cgit v1.2.3 From e6d2e5696186cc81b7d9a12af25e00528ca2cc30 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Wed, 23 Jan 2013 18:13:28 +0400 Subject: Issue tracker field added to projects --- spec/helpers/gitlab_markdown_helper_spec.rb | 1 + spec/lib/issues_tracker_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 spec/lib/issues_tracker_spec.rb (limited to 'spec') diff --git a/spec/helpers/gitlab_markdown_helper_spec.rb b/spec/helpers/gitlab_markdown_helper_spec.rb index 1b067972c81..1f5fabfbb8e 100644 --- a/spec/helpers/gitlab_markdown_helper_spec.rb +++ b/spec/helpers/gitlab_markdown_helper_spec.rb @@ -2,6 +2,7 @@ require "spec_helper" describe GitlabMarkdownHelper do include ApplicationHelper + include IssuesHelper let!(:project) { create(:project) } diff --git a/spec/lib/issues_tracker_spec.rb b/spec/lib/issues_tracker_spec.rb new file mode 100644 index 00000000000..f0bbd8839ad --- /dev/null +++ b/spec/lib/issues_tracker_spec.rb @@ -0,0 +1,16 @@ +require 'spec_helper' + +describe IssuesTracker do + let(:project) { double('project') } + + before do + @project = project + project.stub(repository: stub(ref_names: ['master', 'foo/bar/baz', 'v1.0.0', 'v2.0.0'])) + project.stub(path_with_namespace: 'gitlab/gitlab-ci') + end + + it 'returns url for issue' do + ololo + end +end + -- cgit v1.2.3 From 68a7ecdaaf0959d5087d08ef3c94bb201e6dd166 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Mon, 11 Feb 2013 15:41:12 +0400 Subject: Project issue tracker functions refactored --- spec/factories.rb | 4 ++++ spec/lib/issues_tracker_spec.rb | 16 ---------------- spec/models/project_spec.rb | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 16 deletions(-) delete mode 100644 spec/lib/issues_tracker_spec.rb (limited to 'spec') diff --git a/spec/factories.rb b/spec/factories.rb index b81984b5d53..b846f0a4325 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -29,6 +29,10 @@ FactoryGirl.define do creator end + factory :redmine_project, parent: :project do + issues_tracker { "redmine" } + end + factory :group do sequence(:name) { |n| "group#{n}" } path { name.downcase.gsub(/\s/, '_') } diff --git a/spec/lib/issues_tracker_spec.rb b/spec/lib/issues_tracker_spec.rb deleted file mode 100644 index f0bbd8839ad..00000000000 --- a/spec/lib/issues_tracker_spec.rb +++ /dev/null @@ -1,16 +0,0 @@ -require 'spec_helper' - -describe IssuesTracker do - let(:project) { double('project') } - - before do - @project = project - project.stub(repository: stub(ref_names: ['master', 'foo/bar/baz', 'v1.0.0', 'v2.0.0'])) - project.stub(path_with_namespace: 'gitlab/gitlab-ci') - end - - it 'returns url for issue' do - ololo - end -end - diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 48432eac147..c5603f52f6a 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -190,4 +190,37 @@ describe Project do Project.new(path: "empty").repository.should be_nil end end + + describe :issue_exists? do + let(:project) { create(:project) } + let(:existed_issue) { create(:issue, project: project) } + let(:not_existed_issue) { create(:issue) } + let(:ext_project) { create(:redmine_project) } + + it "should be true or if used internal tracker and issue exists" do + project.issue_exists?(existed_issue.id).should be_true + end + + it "should be false or if used internal tracker and issue not exists" do + project.issue_exists?(not_existed_issue.id).should be_false + end + + it "should always be true if used other tracker" do + ext_project.issue_exists?(rand(100)).should be_true + end + end + + describe :used_default_issues_tracker? do + let(:project) { create(:project) } + let(:ext_project) { create(:redmine_project) } + + it "should be true if used internal tracker" do + project.used_default_issues_tracker?.should be_true + end + + it "should be false if used other tracker" do + ext_project.used_default_issues_tracker?.should be_false + end + end + end -- cgit v1.2.3 From 0afdf39dbcc50eb5889be08e5b1aaefe162e456c Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Mon, 11 Feb 2013 18:17:43 +0400 Subject: New field added --- spec/factories.rb | 1 + spec/models/project_spec.rb | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) (limited to 'spec') diff --git a/spec/factories.rb b/spec/factories.rb index b846f0a4325..41766859468 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -31,6 +31,7 @@ FactoryGirl.define do factory :redmine_project, parent: :project do issues_tracker { "redmine" } + issues_tracker_id { "project_name_in_redmine" } end factory :group do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index c5603f52f6a..44f4cd4a737 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -60,6 +60,7 @@ describe Project do it { should ensure_inclusion_of(:wall_enabled).in_array([true, false]) } it { should ensure_inclusion_of(:merge_requests_enabled).in_array([true, false]) } it { should ensure_inclusion_of(:wiki_enabled).in_array([true, false]) } + it { should ensure_length_of(:issues_tracker_id).is_within(0..255) } it "should not allow new projects beyond user limits" do project.stub(:creator).and_return(double(can_create_project?: false, projects_limit: 1)) @@ -223,4 +224,24 @@ describe Project do end end + describe :can_have_issues_tracker_id? do + let(:project) { create(:project) } + let(:ext_project) { create(:redmine_project) } + + it "should be true for projects with external issues tracker if issues enabled" do + ext_project.can_have_issues_tracker_id?.should be_true + end + + it "should be false for projects with internal issue tracker if issues enabled" do + project.can_have_issues_tracker_id?.should be_false + end + + it "should be always false if issues disbled" do + project.issues_enabled = false + ext_project.issues_enabled = false + + project.can_have_issues_tracker_id?.should be_false + ext_project.can_have_issues_tracker_id?.should be_false + end + end end -- cgit v1.2.3 From 16c720fd966ccb70a7642c59b81b23f74f00c122 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Mon, 11 Feb 2013 17:32:29 +0400 Subject: Issues helper improved --- spec/helpers/issues_helper_spec.rb | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 spec/helpers/issues_helper_spec.rb (limited to 'spec') diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb new file mode 100644 index 00000000000..7d2ac8c7d84 --- /dev/null +++ b/spec/helpers/issues_helper_spec.rb @@ -0,0 +1,54 @@ +require "spec_helper" + +describe IssuesHelper do + let(:project) { create(:project) } + let(:issue) { create(:issue, project: project) } + let(:ext_project) { create(:redmine_project) } + + describe :title_for_issue do + it "should return issue title if used internal tracker" do + @project = project + title_for_issue(issue.id).should eq issue.title + end + + it "should always return empty string if used external tracker" do + @project = ext_project + title_for_issue(rand(100)).should eq "" + end + + it "should always return empty string if project nil" do + @project = nil + + title_for_issue(rand(100)).should eq "" + end + end + + describe :url_for_issue do + let(:issue_id) { 3 } + let(:issues_url) { "http://redmine/:project_id/:issues_tracker_id/:id" } + let(:ext_expected) do + issues_url.gsub(':id', issue_id.to_s) + .gsub(':project_id', ext_project.id.to_s) + .gsub(':issues_tracker_id', ext_project.issues_tracker_id.to_s) + end + let(:int_expected) { polymorphic_path([project, issue]) } + + it "should return internal path if used internal tracker" do + @project = project + url_for_issue(issue.id).should match(int_expected) + end + + it "should return path to external tracker" do + @project = ext_project + Settings[:issues_tracker][ext_project.issues_tracker]["issues_url"] = issues_url + + url_for_issue(issue_id).should match(ext_expected) + end + + it "should return empty string if project nil" do + @project = nil + + url_for_issue(issue.id).should eq "" + end + end +end -- cgit v1.2.3 From c643b50dbd726b6a3396ea459d14378e1c52b48b Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Thu, 14 Feb 2013 18:26:50 +0400 Subject: Default value for issues_tracker setting added --- spec/helpers/issues_helper_spec.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'spec') diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb index 7d2ac8c7d84..013dab71d69 100644 --- a/spec/helpers/issues_helper_spec.rb +++ b/spec/helpers/issues_helper_spec.rb @@ -25,7 +25,7 @@ describe IssuesHelper do describe :url_for_issue do let(:issue_id) { 3 } - let(:issues_url) { "http://redmine/:project_id/:issues_tracker_id/:id" } + let(:issues_url) { Gitlab.config.issues_tracker.redmine.issues_url} let(:ext_expected) do issues_url.gsub(':id', issue_id.to_s) .gsub(':project_id', ext_project.id.to_s) @@ -40,7 +40,6 @@ describe IssuesHelper do it "should return path to external tracker" do @project = ext_project - Settings[:issues_tracker][ext_project.issues_tracker]["issues_url"] = issues_url url_for_issue(issue_id).should match(ext_expected) end -- cgit v1.2.3 From 8caccae45457940b54174a3516a1a56915016c22 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Tue, 19 Feb 2013 17:21:59 +0400 Subject: Issue helper tests improved --- spec/helpers/issues_helper_spec.rb | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'spec') diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb index 013dab71d69..c9eb6591561 100644 --- a/spec/helpers/issues_helper_spec.rb +++ b/spec/helpers/issues_helper_spec.rb @@ -1,9 +1,9 @@ require "spec_helper" describe IssuesHelper do - let(:project) { create(:project) } - let(:issue) { create(:issue, project: project) } - let(:ext_project) { create(:redmine_project) } + let(:project) { create :project } + let(:issue) { create :issue, project: project } + let(:ext_project) { create :redmine_project } describe :title_for_issue do it "should return issue title if used internal tracker" do @@ -23,6 +23,32 @@ describe IssuesHelper do end end + describe :url_for_project_issues do + let(:project_url) { Gitlab.config.issues_tracker.redmine.project_url} + let(:ext_expected) do + project_url.gsub(':project_id', ext_project.id.to_s) + .gsub(':issues_tracker_id', ext_project.issues_tracker_id.to_s) + end + let(:int_expected) { polymorphic_path([project]) } + + it "should return internal path if used internal tracker" do + @project = project + url_for_project_issues.should match(int_expected) + end + + it "should return path to external tracker" do + @project = ext_project + + url_for_project_issues.should match(ext_expected) + end + + it "should return empty string if project nil" do + @project = nil + + url_for_project_issues.should eq "" + end + end + describe :url_for_issue do let(:issue_id) { 3 } let(:issues_url) { Gitlab.config.issues_tracker.redmine.issues_url} -- cgit v1.2.3 From ba5373805a1e3396434df3dc023b8b573374b5a1 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Fri, 8 Feb 2013 12:16:08 +0400 Subject: Description added to user temas factory --- spec/factories/user_teams.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'spec') diff --git a/spec/factories/user_teams.rb b/spec/factories/user_teams.rb index 1a9ae8e885c..8d1ee11ee75 100644 --- a/spec/factories/user_teams.rb +++ b/spec/factories/user_teams.rb @@ -15,6 +15,7 @@ FactoryGirl.define do factory :user_team do sequence(:name) { |n| "team#{n}" } + sequence(:description) { |n| "team_description#{n}" } path { name.downcase.gsub(/\s/, '_') } owner end -- cgit v1.2.3 From 1c517153a889f77f0a2c321ce4e013f4504253e9 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 28 Feb 2013 19:56:16 +0200 Subject: fix admin users tests --- spec/features/admin/admin_users_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'spec') diff --git a/spec/features/admin/admin_users_spec.rb b/spec/features/admin/admin_users_spec.rb index 77d6e9e3795..22d1ee91480 100644 --- a/spec/features/admin/admin_users_spec.rb +++ b/spec/features/admin/admin_users_spec.rb @@ -55,8 +55,8 @@ describe "Admin::Users" do user = User.last email = ActionMailer::Base.deliveries.last email.subject.should have_content("Account was created") - email.body.should have_content(user.email) - email.body.should have_content(@password) + email.text_part.body.should have_content(user.email) + email.text_part.body.should have_content(@password) end end @@ -67,8 +67,8 @@ describe "Admin::Users" do user = User.last email = ActionMailer::Base.deliveries.last email.subject.should have_content("Account was created") - email.body.should have_content(user.email) - email.body.should_not have_content(@password) + email.text_part.body.should have_content(user.email) + email.text_part.body.should_not have_content(@password) end end end -- cgit v1.2.3 From 0d9a6fe7b16e52cc4d5595d6b26552c39911cf07 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 Date: Mon, 4 Mar 2013 18:52:30 +0400 Subject: User's blocked field refactored to use state machine --- spec/models/user_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'spec') diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 40047b351da..cb39b6fc63f 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -25,7 +25,7 @@ # dark_scheme :boolean default(FALSE), not null # theme_id :integer default(1), not null # bio :string(255) -# blocked :boolean default(FALSE), not null +# state :string(255) default(FALSE), not null # failed_attempts :integer default(0) # locked_at :datetime # extern_uid :string(255) @@ -140,7 +140,7 @@ describe User do it "should block user" do user.block - user.blocked.should be_true + user.blocked?.should be_true end end @@ -149,7 +149,7 @@ describe User do User.delete_all @user = create :user @admin = create :user, admin: true - @blocked = create :user, blocked: true + @blocked = create :user, state: :blocked end it { User.filter("admins").should == [@admin] } -- cgit v1.2.3 From 2d2a235c06fea4a1dba50da19eb3a98d9ea975a2 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 5 Mar 2013 16:50:37 +0200 Subject: fixed omniauth email spec --- spec/observers/user_observer_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec') diff --git a/spec/observers/user_observer_spec.rb b/spec/observers/user_observer_spec.rb index dd7d88fafc9..b58c5647ca6 100644 --- a/spec/observers/user_observer_spec.rb +++ b/spec/observers/user_observer_spec.rb @@ -16,7 +16,7 @@ describe UserObserver do end it 'no email for external' do - Notify.should_receive(:new_user_email) + Notify.should_not_receive(:new_user_email) create(:user, extern_uid: '32442eEfsafada') end -- cgit v1.2.3