From 6e840ca9202812a75cc8ce26b9790f73a10d7f68 Mon Sep 17 00:00:00 2001 From: Christian Mehlmauer Date: Mon, 8 Aug 2016 21:40:36 +0200 Subject: [PATCH] fix #974 --- lib/common/models/wp_version/findable.rb | 7 ++++++- .../common/models/wp_version/findable_spec.rb | 16 ++++++++++++++++ .../findable/stylesheet_numbers/invalid_url.html | 8 ++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 spec/samples/common/models/wp_version/findable/stylesheet_numbers/invalid_url.html diff --git a/lib/common/models/wp_version/findable.rb b/lib/common/models/wp_version/findable.rb index cd0a8dac..a771ff22 100644 --- a/lib/common/models/wp_version/findable.rb +++ b/lib/common/models/wp_version/findable.rb @@ -212,7 +212,12 @@ class WpVersion < WpItem next if attr_value.nil? || attr_value.empty? - uri = Addressable::URI.parse(attr_value) + begin + uri = Addressable::URI.parse(attr_value) + rescue Addressable::URI::InvalidURIError + next + end + next unless uri.query && uri.query.match(pattern) version = Regexp.last_match[1].to_s diff --git a/spec/lib/common/models/wp_version/findable_spec.rb b/spec/lib/common/models/wp_version/findable_spec.rb index 2eafcc8f..f647a7dc 100644 --- a/spec/lib/common/models/wp_version/findable_spec.rb +++ b/spec/lib/common/models/wp_version/findable_spec.rb @@ -159,6 +159,22 @@ describe 'WpVersion::Findable' do end end + describe '::find_from_stylesheets_numbers' do + after do + fixture = fixtures_dir + 'stylesheet_numbers' + @fixture + stub_request_to_fixture(url: uri, fixture: fixture) + + expect(WpVersion.send(:find_from_stylesheets_numbers, uri)).to eq @expected + end + + context 'invalid url' do + it 'returns nil' do + @fixture = '/invalid_url.html' + @expected = nil + end + end + end + describe '::find' do # Stub all WpVersion::find_from_* to return nil def stub_all_to_nil diff --git a/spec/samples/common/models/wp_version/findable/stylesheet_numbers/invalid_url.html b/spec/samples/common/models/wp_version/findable/stylesheet_numbers/invalid_url.html new file mode 100644 index 00000000..04ccf538 --- /dev/null +++ b/spec/samples/common/models/wp_version/findable/stylesheet_numbers/invalid_url.html @@ -0,0 +1,8 @@ + +