diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2018-11-20 12:29:56 +0000 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2018-11-20 12:29:56 +0000 |
commit | 16346eb5b9b7aa1fa98a7eb7d9015f48856151ce (patch) | |
tree | ac1b2786b8eeea2229f1db4d2e2e87de62d3d65e /spec/models/project_wiki_spec.rb | |
parent | fa5900fb6b5bda6f8568319293575c3072e47505 (diff) | |
download | gitlab-ce-16346eb5b9b7aa1fa98a7eb7d9015f48856151ce.tar.gz |
Revert "Merge branch 'revert-e2aa2177' into 'master'"
This reverts merge request !23229
Diffstat (limited to 'spec/models/project_wiki_spec.rb')
-rw-r--r-- | spec/models/project_wiki_spec.rb | 250 |
1 files changed, 105 insertions, 145 deletions
diff --git a/spec/models/project_wiki_spec.rb b/spec/models/project_wiki_spec.rb index cc5e34782ec..48a43801b9f 100644 --- a/spec/models/project_wiki_spec.rb +++ b/spec/models/project_wiki_spec.rb @@ -130,63 +130,53 @@ describe ProjectWiki do end describe "#find_page" do - shared_examples 'finding a wiki page' do - before do - create_page("index page", "This is an awesome Gollum Wiki") - end - - after do - subject.pages.each { |page| destroy_page(page.page) } - end + before do + create_page("index page", "This is an awesome Gollum Wiki") + end - it "returns the latest version of the page if it exists" do - page = subject.find_page("index page") - expect(page.title).to eq("index page") - end + after do + subject.pages.each { |page| destroy_page(page.page) } + end - it "returns nil if the page does not exist" do - expect(subject.find_page("non-existent")).to eq(nil) - end + it "returns the latest version of the page if it exists" do + page = subject.find_page("index page") + expect(page.title).to eq("index page") + end - it "can find a page by slug" do - page = subject.find_page("index-page") - expect(page.title).to eq("index page") - end + it "returns nil if the page does not exist" do + expect(subject.find_page("non-existent")).to eq(nil) + end - it "returns a WikiPage instance" do - page = subject.find_page("index page") - expect(page).to be_a WikiPage - end + it "can find a page by slug" do + page = subject.find_page("index-page") + expect(page.title).to eq("index page") + end - context 'pages with multibyte-character title' do - before do - create_page("autre pagé", "C'est un génial Gollum Wiki") - end + it "returns a WikiPage instance" do + page = subject.find_page("index page") + expect(page).to be_a WikiPage + end - it "can find a page by slug" do - page = subject.find_page("autre pagé") - expect(page.title).to eq("autre pagé") - end + context 'pages with multibyte-character title' do + before do + create_page("autre pagé", "C'est un génial Gollum Wiki") end - context 'pages with invalidly-encoded content' do - before do - create_page("encoding is fun", "f\xFCr".b) - end - - it "can find the page" do - page = subject.find_page("encoding is fun") - expect(page.content).to eq("fr") - end + it "can find a page by slug" do + page = subject.find_page("autre pagé") + expect(page.title).to eq("autre pagé") end end - context 'when Gitaly wiki_find_page is enabled' do - it_behaves_like 'finding a wiki page' - end + context 'pages with invalidly-encoded content' do + before do + create_page("encoding is fun", "f\xFCr".b) + end - context 'when Gitaly wiki_find_page is disabled', :skip_gitaly_mock do - it_behaves_like 'finding a wiki page' + it "can find the page" do + page = subject.find_page("encoding is fun") + expect(page.content).to eq("fr") + end end end @@ -207,100 +197,80 @@ describe ProjectWiki do end describe '#find_file' do - shared_examples 'finding a wiki file' do - let(:image) { File.open(Rails.root.join('spec', 'fixtures', 'big-image.png')) } - - before do - subject.wiki # Make sure the wiki repo exists - - repo_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do - subject.repository.path_to_repo - end - - BareRepoOperations.new(repo_path).commit_file(image, 'image.png') - end + let(:image) { File.open(Rails.root.join('spec', 'fixtures', 'big-image.png')) } - it 'returns the latest version of the file if it exists' do - file = subject.find_file('image.png') - expect(file.mime_type).to eq('image/png') - end + before do + subject.wiki # Make sure the wiki repo exists - it 'returns nil if the page does not exist' do - expect(subject.find_file('non-existent')).to eq(nil) + repo_path = Gitlab::GitalyClient::StorageSettings.allow_disk_access do + subject.repository.path_to_repo end - it 'returns a Gitlab::Git::WikiFile instance' do - file = subject.find_file('image.png') - expect(file).to be_a Gitlab::Git::WikiFile - end + BareRepoOperations.new(repo_path).commit_file(image, 'image.png') + end - it 'returns the whole file' do - file = subject.find_file('image.png') - image.rewind + it 'returns the latest version of the file if it exists' do + file = subject.find_file('image.png') + expect(file.mime_type).to eq('image/png') + end - expect(file.raw_data.b).to eq(image.read.b) - end + it 'returns nil if the page does not exist' do + expect(subject.find_file('non-existent')).to eq(nil) end - context 'when Gitaly wiki_find_file is enabled' do - it_behaves_like 'finding a wiki file' + it 'returns a Gitlab::Git::WikiFile instance' do + file = subject.find_file('image.png') + expect(file).to be_a Gitlab::Git::WikiFile end - context 'when Gitaly wiki_find_file is disabled', :skip_gitaly_mock do - it_behaves_like 'finding a wiki file' + it 'returns the whole file' do + file = subject.find_file('image.png') + image.rewind + + expect(file.raw_data.b).to eq(image.read.b) end end describe "#create_page" do - shared_examples 'creating a wiki page' do - after do - destroy_page(subject.pages.first.page) - end - - it "creates a new wiki page" do - expect(subject.create_page("test page", "this is content")).not_to eq(false) - expect(subject.pages.count).to eq(1) - end - - it "returns false when a duplicate page exists" do - subject.create_page("test page", "content") - expect(subject.create_page("test page", "content")).to eq(false) - end - - it "stores an error message when a duplicate page exists" do - 2.times { subject.create_page("test page", "content") } - expect(subject.error_message).to match(/Duplicate page:/) - end + after do + destroy_page(subject.pages.first.page) + end - it "sets the correct commit message" do - subject.create_page("test page", "some content", :markdown, "commit message") - expect(subject.pages.first.page.version.message).to eq("commit message") - end + it "creates a new wiki page" do + expect(subject.create_page("test page", "this is content")).not_to eq(false) + expect(subject.pages.count).to eq(1) + end - it 'sets the correct commit email' do - subject.create_page('test page', 'content') + it "returns false when a duplicate page exists" do + subject.create_page("test page", "content") + expect(subject.create_page("test page", "content")).to eq(false) + end - expect(user.commit_email).not_to eq(user.email) - expect(commit.author_email).to eq(user.commit_email) - expect(commit.committer_email).to eq(user.commit_email) - end + it "stores an error message when a duplicate page exists" do + 2.times { subject.create_page("test page", "content") } + expect(subject.error_message).to match(/Duplicate page:/) + end - it 'updates project activity' do - subject.create_page('Test Page', 'This is content') + it "sets the correct commit message" do + subject.create_page("test page", "some content", :markdown, "commit message") + expect(subject.pages.first.page.version.message).to eq("commit message") + end - project.reload + it 'sets the correct commit email' do + subject.create_page('test page', 'content') - expect(project.last_activity_at).to be_within(1.minute).of(Time.now) - expect(project.last_repository_updated_at).to be_within(1.minute).of(Time.now) - end + expect(user.commit_email).not_to eq(user.email) + expect(commit.author_email).to eq(user.commit_email) + expect(commit.committer_email).to eq(user.commit_email) end - context 'when Gitaly wiki_write_page is enabled' do - it_behaves_like 'creating a wiki page' - end + it 'updates project activity' do + subject.create_page('Test Page', 'This is content') - context 'when Gitaly wiki_write_page is disabled', :skip_gitaly_mock do - it_behaves_like 'creating a wiki page' + project.reload + + expect(project.last_activity_at).to be_within(1.minute).of(Time.now) + expect(project.last_repository_updated_at).to be_within(1.minute).of(Time.now) end end @@ -351,41 +321,31 @@ describe ProjectWiki do end describe "#delete_page" do - shared_examples 'deleting a wiki page' do - before do - create_page("index", "some content") - @page = subject.wiki.page(title: "index") - end - - it "deletes the page" do - subject.delete_page(@page) - expect(subject.pages.count).to eq(0) - end - - it 'sets the correct commit email' do - subject.delete_page(@page) - - expect(user.commit_email).not_to eq(user.email) - expect(commit.author_email).to eq(user.commit_email) - expect(commit.committer_email).to eq(user.commit_email) - end + before do + create_page("index", "some content") + @page = subject.wiki.page(title: "index") + end - it 'updates project activity' do - subject.delete_page(@page) + it "deletes the page" do + subject.delete_page(@page) + expect(subject.pages.count).to eq(0) + end - project.reload + it 'sets the correct commit email' do + subject.delete_page(@page) - expect(project.last_activity_at).to be_within(1.minute).of(Time.now) - expect(project.last_repository_updated_at).to be_within(1.minute).of(Time.now) - end + expect(user.commit_email).not_to eq(user.email) + expect(commit.author_email).to eq(user.commit_email) + expect(commit.committer_email).to eq(user.commit_email) end - context 'when Gitaly wiki_delete_page is enabled' do - it_behaves_like 'deleting a wiki page' - end + it 'updates project activity' do + subject.delete_page(@page) + + project.reload - context 'when Gitaly wiki_delete_page is disabled', :skip_gitaly_mock do - it_behaves_like 'deleting a wiki page' + expect(project.last_activity_at).to be_within(1.minute).of(Time.now) + expect(project.last_repository_updated_at).to be_within(1.minute).of(Time.now) end end |