summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/license/management/repository.rb9
-rw-r--r--spec/unit/license/management/repository_spec.rb16
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/license/management/repository.rb b/lib/license/management/repository.rb
index 4b6e8a5..3d16b78 100644
--- a/lib/license/management/repository.rb
+++ b/lib/license/management/repository.rb
@@ -64,7 +64,7 @@ module License
{
'id' => name.downcase,
'name' => name,
- 'url' => present?(license.url) ? license.url : ''
+ 'url' => normalized_url(license.url)
}
end
@@ -90,6 +90,13 @@ module License
logger.error(e)
nil
end
+
+ def normalized_url(url)
+ return '' unless present?(url)
+ return 'http://en.wikipedia.org/wiki/BSD_licenses' if url.match?('BSD_licenses#4-clause_license')
+
+ url
+ end
end
end
end
diff --git a/spec/unit/license/management/repository_spec.rb b/spec/unit/license/management/repository_spec.rb
index 04eb469..c54af77 100644
--- a/spec/unit/license/management/repository_spec.rb
+++ b/spec/unit/license/management/repository_spec.rb
@@ -60,5 +60,21 @@ RSpec.describe License::Management::Repository do
it { expect(subject.item_for(license)['id']).to eql(spdx_id) }
end
end
+
+ context 'with BSD license' do
+ subject(:item_license) { described_class.new.item_for(license) }
+
+ let(:license) do
+ LicenseFinder::License.new(
+ short_name: 'BSD',
+ other_names: ['BSD4', 'bsd-old', '4-clause BSD', 'BSD-4-Clause', 'BSD 4-Clause', 'BSD License'],
+ url: 'http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29'
+ )
+ end
+
+ it 'returns general url' do
+ expect(item_license['url']).to eq('http://en.wikipedia.org/wiki/BSD_licenses')
+ end
+ end
end
end