From 3f08e4b186bd02b37f34ccf1bc641a95f9d865ce Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg <zegerjan@localhost.localdomain> Date: Thu, 1 Oct 2015 20:34:23 +0200 Subject: [PATCH] Add specs on #license --- CHANGELOG | 2 +- app/models/repository.rb | 6 +++++- spec/models/repository_spec.rb | 11 +++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 3d0beb0b7a..f274942f7b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -62,6 +62,7 @@ v 8.0.4 - Fix "Assign All" button on Runner admin page - Fix search in Files - Add full project namespace to payload of system webhooks (Ricardo Band) + - Accept COPYING as licence file (Zeger-Jan van de Weg) v 8.0.3 - Fix URL shown in Slack notifications @@ -82,7 +83,6 @@ v 8.0.2 - Fix Reply by email for non-UTF-8 messages. - Add option to use StartTLS with Reply by email IMAP server. - Allow AWS S3 Server-Side Encryption with Amazon S3-Managed Keys for backups (Paul Beattie) - - Accept COPYING as licence file (Zeger-Jan van de Weg) v 8.0.1 - Remove git refs used internally by GitLab from network graph (Stan Hu) diff --git a/app/models/repository.rb b/app/models/repository.rb index dc7cd92674..8cd182e1b0 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -216,7 +216,11 @@ class Repository # If `licence`, `copying` and `copying.lesser` are found, return in the # following order: licence, copying, copying.lesser - licenses.find { |l| l =~ /\Alicence/i } || licenses.sort.first + regex = [/\Alicense(\..*)?\z/i, /\Acopying(\..{0,3})?\z/i, /\Acopying.lesser/i] + + regex.map do |re| + licenses.find { |l| l.name =~ re } + end.compact.first end end diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 05e51532eb..60b9398847 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -91,4 +91,15 @@ describe Repository do it { expect(subject.data.lines[2]).to eq(" - Feature: Replace teams with group membership\n") } end end + + describe "#license" do + it 'test selection preference' do + repository.send(:cache).expire(:license) + TestBlob = Struct.new(:name) + files = [TestBlob.new('file'), TestBlob.new('license'), TestBlob.new('copying')] + expect(repository.tree).to receive(:blobs).and_return(files) + + expect(repository.license.name).to eq('license') + end + end end -- 2.30.9