Fixes #164 README.txt detection

This commit is contained in:
erwanlr
2013-04-15 15:01:06 +02:00
parent 698197248e
commit b1ce7bdcc5
5 changed files with 51 additions and 20 deletions

View File

@@ -6,7 +6,6 @@ describe WpItem do
it_behaves_like 'WpItem::Existable'
it_behaves_like 'WpItem::Findable#Found_From='
it_behaves_like 'WpItem::Infos' do
let(:readme_url) { uri.merge('readme.txt').to_s }
let(:changelog_url) { uri.merge('changelog.txt').to_s }
let(:error_log_url) { uri.merge('error_log').to_s }
end

View File

@@ -4,30 +4,46 @@ shared_examples 'WpItem::Infos' do
# 3 expected urls have to be set in the described class (or subject)
# e.g :
# let(:readme_url) { }
# let(:changelog_url) { }
# let(:error_log_url) { }
describe '#readme_url' do
it 'returns the correct url' do
subject.readme_url.should == readme_url
after { subject.readme_url.should === @expected }
it 'returns nil' do
stub_request(:get, /.*/).to_return(status: 404)
@expected = nil
end
context 'when the file exists' do
%w{readme.txt README.txt}.each do |readme|
it 'returns the correct url' do
url = uri.merge(readme).to_s
@expected = url
stub_request(:get, %r{^(?!#{url})}).to_return(status: 404)
stub_request(:get, url).to_return(status: 200)
end
end
end
end
describe '#has_readme?' do
after :each do
stub_request(:get, subject.readme_url).to_return(status: @status)
after do
subject.stub(readme_url: @stub)
subject.has_readme?.should === @expected
end
it 'returns true on a 200' do
@status = 200
@expected = true
context 'when readme_url is nil'
it 'returns false' do
@stub = nil
@expected = false
end
it 'returns false otherwise' do
@status = 404
@expected = false
context 'when readme_url is not nil'
it 'returns true' do
@stub = uri.merge('readme.txt').to_s
@expected = true
end
end

View File

@@ -4,6 +4,7 @@ shared_examples 'WpItem::Versionable' do
describe '#version' do
let(:fixtures_dir) { MODELS_FIXTURES + '/wp_item/versionable' }
let(:readme_url) { subject.uri.merge('readme.txt').to_s }
context 'when the version is already set' do
it 'returns it' do
@@ -14,7 +15,7 @@ shared_examples 'WpItem::Versionable' do
context 'otherwise' do
after do
stub_request_to_fixture(url: subject.readme_url, fixture: fixtures_dir + @file)
stub_request_to_fixture(url: readme_url, fixture: fixtures_dir + @file)
subject.version.should == @expected
end

View File

@@ -21,11 +21,12 @@ shared_examples 'WpTheme::Versionable' do
end
context 'when the version is not found' do
let(:file) { 'twentyeleven-unknow.css' }
let(:file) { 'twentyeleven-unknow.css' }
let(:readme_url) { subject.uri.merge('readme.txt').to_s }
context 'from the style_url' do
it 'gets it from the readme' do
stub_request(:get, subject.readme_url).to_return(status: 200, body: 'Stable Tag: 1.3.4')
stub_request(:get, readme_url).to_return(status: 200, body: 'Stable Tag: 1.3.4')
@file = file
@expected = '1.3.4'
@@ -34,7 +35,8 @@ shared_examples 'WpTheme::Versionable' do
context 'from both style & readme' do
it 'returns nil' do
stub_request(:get, subject.readme_url).to_return(status: 404)
subject.stub(readme_url: readme_url)
stub_request(:get, readme_url).to_return(status: 404)
@file = file
@expected = nil