Commit 42a2543f98d6cb1a859c126337630df0c3b2f40e

Authored by Marcin Ciunelis
1 parent 4e67af18
Exists in master and in 1 other branch production

ApplicationHelper.get_host does not break on invalid url

app/helpers/application_helper.rb
... ... @@ -23,8 +23,12 @@ module ApplicationHelper
23 23 end
24 24  
25 25 def get_host(url)
26   - uri = url && URI.parse(url)
27   - uri.blank? ? "N/A" : uri.host
  26 + begin
  27 + uri = url && URI.parse(url)
  28 + uri.blank? ? "N/A" : uri.host
  29 + rescue URI::InvalidURIError
  30 + "N/A"
  31 + end
28 32 end
29 33  
30 34  
... ...
spec/helpers/application_helper_spec.rb 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +require 'spec_helper'
  2 +
  3 +# Specs in this file have access to a helper object that includes
  4 +# the AbcHelper. For example:
  5 +#
  6 +# describe AbcHelper do
  7 +# describe "string concat" do
  8 +# it "concats two strings with spaces" do
  9 +# helper.concat_strings("this","that").should == "this that"
  10 +# end
  11 +# end
  12 +# end
  13 +describe ApplicationHelper do
  14 + describe "get_host" do
  15 + it "returns host if url is valid" do
  16 + helper.get_host("http://example.com/resource/12").should == 'example.com'
  17 + end
  18 +
  19 + it "returns 'N/A' when url is not valid" do
  20 + helper.get_host("some string").should == 'N/A'
  21 + end
  22 +
  23 + it "returns 'N/A' when url is empty" do
  24 + helper.get_host({}).should == 'N/A'
  25 + end
  26 + end
  27 +end
... ...