Commit d413ca5
Changed files (4)
lib
spandx
core
spec
fixtures
maven
unit
java
parsers
lib/spandx/core/http.rb
@@ -27,6 +27,9 @@ module Spandx
client.get(escape ? Addressable::URI.escape(uri) : uri)
end
end
+ rescue URI::InvalidURIError => error
+ Spandx.logger.error(error)
+ default
rescue *Net::Hippie::CONNECTION_ERRORS
default
end
spec/fixtures/maven/invalid-spec-url-pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.example</groupId>
+ <artifactId>invalid</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <name>invalid</name>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
spec/unit/java/parsers/maven_spec.rb
@@ -12,6 +12,14 @@ RSpec.describe Spandx::Java::Parsers::Maven do
specify { expect(because[0].name).to eql('junit:junit') }
specify { expect(because[0].version).to eql('3.8.1') }
end
+
+ context 'when parsing an invlid pom.xml' do
+ let(:lockfile) { fixture_file('maven/invalid-spec-url-pom.xml') }
+
+ let(:because) { subject.parse(lockfile) }
+
+ specify { expect(because[0].name).to eql('${project.groupId}:model') }
+ end
end
describe '.matches?' do
spec/unit/java/metadata_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+RSpec.describe Spandx::Java::Metadata do
+ describe '#licenses' do
+ context 'when the metadata is invalid' do
+ subject { described_class.new(artifact_id: '${project.artifactId}', group_id: '${project.groupId}', version: '${project.version}') }
+
+ let(:result) { subject.licenses }
+
+ specify { expect(result).to be_empty }
+ end
+ end
+end