summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/controllers/blob_controller_spec.rb4
-rw-r--r--spec/controllers/tree_controller_spec.rb4
-rw-r--r--spec/features/notes_on_merge_requests_spec.rb290
-rw-r--r--spec/models/project_wiki_spec.rb16
4 files changed, 158 insertions, 156 deletions
diff --git a/spec/controllers/blob_controller_spec.rb b/spec/controllers/blob_controller_spec.rb
index 929f6d3b46d..11d748ca77f 100644
--- a/spec/controllers/blob_controller_spec.rb
+++ b/spec/controllers/blob_controller_spec.rb
@@ -44,8 +44,8 @@ describe Projects::BlobController do
end
context 'redirect to tree' do
- let(:id) { 'master/doc' }
- it { should redirect_to("/#{project.path_with_namespace}/tree/master/doc") }
+ let(:id) { 'markdown/doc' }
+ it { should redirect_to("/#{project.path_with_namespace}/tree/markdown/doc") }
end
end
end
diff --git a/spec/controllers/tree_controller_spec.rb b/spec/controllers/tree_controller_spec.rb
index b169c2a678f..8147fb0e6fb 100644
--- a/spec/controllers/tree_controller_spec.rb
+++ b/spec/controllers/tree_controller_spec.rb
@@ -26,7 +26,7 @@ describe Projects::TreeController do
end
context "valid branch, valid path" do
- let(:id) { 'master/app/' }
+ let(:id) { 'master/encoding/' }
it { should respond_with(:success) }
end
@@ -36,7 +36,7 @@ describe Projects::TreeController do
end
context "invalid branch, valid path" do
- let(:id) { 'invalid-branch/app/' }
+ let(:id) { 'invalid-branch/encoding/' }
it { should respond_with(:not_found) }
end
end
diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb
index 3fe11849660..47776ba7f3f 100644
--- a/spec/features/notes_on_merge_requests_spec.rb
+++ b/spec/features/notes_on_merge_requests_spec.rb
@@ -1,197 +1,209 @@
require 'spec_helper'
-describe "On a merge request", js: true, feature: true do
- let!(:merge_request) { create(:merge_request, :simple) }
- let!(:project) { merge_request.source_project }
- let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) }
-
- before do
- login_as :admin
- visit project_merge_request_path(project, merge_request)
- end
+describe 'Comments' do
+ include RepoHelpers
- subject { page }
+ describe "On a merge request", js: true, feature: true do
+ let!(:merge_request) { create(:merge_request) }
+ let!(:project) { merge_request.source_project }
+ let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) }
- describe "the note form" do
- it 'should be valid' do
- should have_css(".js-main-target-form", visible: true, count: 1)
- find(".js-main-target-form input[type=submit]").value.should == "Add Comment"
- within(".js-main-target-form") { should_not have_link("Cancel") }
- within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) }
+ before do
+ login_as :admin
+ visit project_merge_request_path(project, merge_request)
end
- describe "with text" do
- before do
- within(".js-main-target-form") do
- fill_in "note[note]", with: "This is awesome"
- end
- end
+ subject { page }
- it 'should have enable submit button and preview button' do
- within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") }
- within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) }
+ describe "the note form" do
+ it 'should be valid' do
+ should have_css(".js-main-target-form", visible: true, count: 1)
+ find(".js-main-target-form input[type=submit]").value.should == "Add Comment"
+ within(".js-main-target-form") { should_not have_link("Cancel") }
+ within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) }
end
- end
- end
- describe "when posting a note" do
- before do
- within(".js-main-target-form") do
- fill_in "note[note]", with: "This is awsome!"
- find(".js-note-preview-button").trigger("click")
- click_button "Add Comment"
+ describe "with text" do
+ before do
+ within(".js-main-target-form") do
+ fill_in "note[note]", with: "This is awesome"
+ end
+ end
+
+ it 'should have enable submit button and preview button' do
+ within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") }
+ within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) }
+ end
end
end
- it 'should be added and form reset' do
- should have_content("This is awsome!")
- within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") }
- within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) }
- within(".js-main-target-form") { should have_css(".js-note-text", visible: true) }
- end
- end
+ describe "when posting a note" do
+ before do
+ within(".js-main-target-form") do
+ fill_in "note[note]", with: "This is awsome!"
+ find(".js-note-preview-button").trigger("click")
+ click_button "Add Comment"
+ end
+ end
- describe "when editing a note", js: true do
- it "should contain the hidden edit form" do
- within("#note_#{note.id}") { should have_css(".note-edit-form", visible: false) }
+ it 'should be added and form reset' do
+ should have_content("This is awsome!")
+ within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") }
+ within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) }
+ within(".js-main-target-form") { should have_css(".js-note-text", visible: true) }
+ end
end
- describe "editing the note" do
- before do
- find('.note').hover
- find(".js-note-edit").click
+ describe "when editing a note", js: true do
+ it "should contain the hidden edit form" do
+ within("#note_#{note.id}") { should have_css(".note-edit-form", visible: false) }
end
- it "should show the note edit form and hide the note body" do
- within("#note_#{note.id}") do
- find(".note-edit-form", visible: true).should be_visible
- find(".note-text", visible: false).should_not be_visible
+ describe "editing the note" do
+ before do
+ find('.note').hover
+ find(".js-note-edit").click
end
- end
-
- it "should reset the edit note form textarea with the original content of the note if cancelled" do
- find('.note').hover
- find(".js-note-edit").click
- within(".note-edit-form") do
- fill_in "note[note]", with: "Some new content"
- find(".btn-cancel").click
- find(".js-note-text", visible: false).text.should == note.note
+ it "should show the note edit form and hide the note body" do
+ within("#note_#{note.id}") do
+ find(".note-edit-form", visible: true).should be_visible
+ find(".note-text", visible: false).should_not be_visible
+ end
end
- end
- it "appends the edited at time to the note" do
- find('.note').hover
- find(".js-note-edit").click
+ it "should reset the edit note form textarea with the original content of the note if cancelled" do
+ find('.note').hover
+ find(".js-note-edit").click
- within(".note-edit-form") do
- fill_in "note[note]", with: "Some new content"
- find(".btn-save").click
+ within(".note-edit-form") do
+ fill_in "note[note]", with: "Some new content"
+ find(".btn-cancel").click
+ find(".js-note-text", visible: false).text.should == note.note
+ end
end
- within("#note_#{note.id}") do
- should have_css(".note-last-update small")
- find(".note-last-update small").text.should match(/Edited less than a minute ago/)
+ it "appends the edited at time to the note" do
+ find('.note').hover
+ find(".js-note-edit").click
+
+ within(".note-edit-form") do
+ fill_in "note[note]", with: "Some new content"
+ find(".btn-save").click
+ end
+
+ within("#note_#{note.id}") do
+ should have_css(".note-last-update small")
+ find(".note-last-update small").text.should match(/Edited less than a minute ago/)
+ end
end
end
- end
- describe "deleting an attachment" do
- before do
- find('.note').hover
- find(".js-note-edit").click
- end
+ describe "deleting an attachment" do
+ before do
+ find('.note').hover
+ find(".js-note-edit").click
+ end
- it "shows the delete link" do
- within(".note-attachment") do
- should have_css(".js-note-attachment-delete")
+ it "shows the delete link" do
+ within(".note-attachment") do
+ should have_css(".js-note-attachment-delete")
+ end
end
- end
- it "removes the attachment div and resets the edit form" do
- find(".js-note-attachment-delete").click
- should_not have_css(".note-attachment")
- find(".note-edit-form", visible: false).should_not be_visible
+ it "removes the attachment div and resets the edit form" do
+ find(".js-note-attachment-delete").click
+ should_not have_css(".note-attachment")
+ find(".note-edit-form", visible: false).should_not be_visible
+ end
end
end
end
-end
-
-describe "On a merge request diff", js: true, feature: true do
- let(:merge_request) { create(:merge_request, :with_diffs, :simple) }
- let(:project) { merge_request.source_project }
-
- before do
- login_as :admin
- visit diffs_project_merge_request_path(project, merge_request)
- end
- subject { page }
+ describe "On a merge request diff", js: true, feature: true do
+ let(:merge_request) { create(:merge_request) }
+ let(:project) { merge_request.source_project }
- describe "when adding a note" do
before do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
- end
-
- describe "the notes holder" do
- it { should have_css(".js-temp-notes-holder") }
-
- it { within(".js-temp-notes-holder") { should have_css(".new_note") } }
+ login_as :admin
+ visit diffs_project_merge_request_path(project, merge_request)
end
- describe "the note form" do
- it "shouldn't add a second form for same row" do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
+ subject { page }
- should have_css("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder form", count: 1)
+ describe "when adding a note" do
+ before do
+ find("a[data-line-code=\"#{line_code}\"]").click
end
- it "should be removed when canceled" do
- within(".diff-file form[rel$='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7']") do
- find(".js-close-discussion-note-form").trigger("click")
- end
+ describe "the notes holder" do
+ it { should have_css(".js-temp-notes-holder") }
- should have_no_css(".js-temp-notes-holder")
+ it { within(".js-temp-notes-holder") { should have_css(".new_note") } }
end
- end
- end
- describe "with muliple note forms" do
- before do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10"]').click
- end
+ describe "the note form" do
+ it "shouldn't add a second form for same row" do
+ find("a[data-line-code=\"#{line_code}\"]").click
- it { should have_css(".js-temp-notes-holder", count: 2) }
-
- describe "previewing them separately" do
- before do
- # add two separate texts and trigger previews on both
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "One comment on line 7"
- find(".js-note-preview-button").trigger("click")
+ should have_css("tr[id='#{line_code}'] + .js-temp-notes-holder form", count: 1)
end
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "Another comment on line 10"
- find(".js-note-preview-button").trigger("click")
+
+ it "should be removed when canceled" do
+ within(".diff-file form[rel$='#{line_code}']") do
+ find(".js-close-discussion-note-form").trigger("click")
+ end
+
+ should have_no_css(".js-temp-notes-holder")
end
end
end
- describe "posting a note" do
+ describe "with muliple note forms" do
before do
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "Another comment on line 10"
- click_button("Add Comment")
+ find("a[data-line-code=\"#{line_code}\"]").click
+ find("a[data-line-code=\"#{line_code_2}\"]").click
+ end
+
+ it { should have_css(".js-temp-notes-holder", count: 2) }
+
+ describe "previewing them separately" do
+ before do
+ # add two separate texts and trigger previews on both
+ within("tr[id='#{line_code}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "One comment on line 7"
+ find(".js-note-preview-button").trigger("click")
+ end
+ within("tr[id='#{line_code_2}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "Another comment on line 10"
+ find(".js-note-preview-button").trigger("click")
+ end
end
end
- it 'should be added as discussion' do
- should have_content("Another comment on line 10")
- should have_css(".notes_holder")
- should have_css(".notes_holder .note", count: 1)
- should have_link("Reply")
+ describe "posting a note" do
+ before do
+ within("tr[id='#{line_code_2}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "Another comment on line 10"
+ click_button("Add Comment")
+ end
+ end
+
+ it 'should be added as discussion' do
+ should have_content("Another comment on line 10")
+ should have_css(".notes_holder")
+ should have_css(".notes_holder .note", count: 1)
+ should have_link("Reply")
+ end
end
end
end
+
+ def line_code
+ sample_compare.changes.first[:line_code]
+ end
+
+ def line_code_2
+ sample_compare.changes.last[:line_code]
+ end
end
diff --git a/spec/models/project_wiki_spec.rb b/spec/models/project_wiki_spec.rb
index 56ec83e3e7d..e4ee2fc5b13 100644
--- a/spec/models/project_wiki_spec.rb
+++ b/spec/models/project_wiki_spec.rb
@@ -41,23 +41,13 @@ describe ProjectWiki do
subject.wiki.should be_a Gollum::Wiki
end
- before do
- Gitlab::Shell.any_instance.stub(:add_repository) do
- create_temp_repo("#{Rails.root}/tmp/test-git-base-path/non-existant.wiki.git")
- end
- project.stub(:path_with_namespace).and_return("non-existant")
- end
-
it "creates a new wiki repo if one does not yet exist" do
- wiki = ProjectWiki.new(project, user)
- wiki.create_page("index", "test content").should_not == false
-
- FileUtils.rm_rf wiki.send(:path_to_repo)
+ project_wiki.create_page("index", "test content").should be_true
end
it "raises CouldNotCreateWikiError if it can't create the wiki repository" do
- ProjectWiki.any_instance.stub(:init_repo).and_return(false)
- expect { ProjectWiki.new(project, user).wiki }.to raise_exception(ProjectWiki::CouldNotCreateWikiError)
+ project_wiki.stub(:init_repo).and_return(false)
+ expect { project_wiki.send(:create_repo!) }.to raise_exception(ProjectWiki::CouldNotCreateWikiError)
end
end