]> git.openstreetmap.org Git - rails.git/commitdiff
Merge branch 'rails41'
authorTom Hughes <tom@compton.nu>
Mon, 21 Jul 2014 07:53:44 +0000 (08:53 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 21 Jul 2014 07:53:44 +0000 (08:53 +0100)
1  2 
app/helpers/browse_helper.rb
test/helpers/browse_helper_test.rb

index 3574d454acade4b3b56631ebaa69ce2cc05c82ee,73f6420eab5cf122241fe3d0598439d5d9cd7e2c..f4b332f7004fb44785f697fe42cd6b15d246c10d
@@@ -61,8 -61,6 +61,8 @@@ module BrowseHelpe
    def format_value(key, value)
      if wp = wikipedia_link(key, value)
        link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[:title])
 +    elsif wdt = wikidata_link(key, value)
 +      link_to h(wdt[:title]), wdt[:url], :title => t('browse.tag_details.wikidata_link', :page => wdt[:title])
      elsif url = wiki_link("tag", "#{key}=#{value}")
        link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
      elsif url = telephone_link(key, value)
@@@ -92,7 -90,7 +92,7 @@@ privat
    ]
  
    def icon_tags(object)
-     object.tags.find_all { |k,v| ICON_TAGS.include? k }
+     object.tags.find_all { |k,v| ICON_TAGS.include? k }.sort
    end
  
    def wiki_link(type, lookup)
      }
    end
  
 +  def wikidata_link(key, value)
 +    if key == "wikidata" and value =~ /^[Qq][1-9][0-9]*$/
 +      return {
 +        :url => "//www.wikidata.org/wiki/#{value}?uselang=#{I18n.locale}",
 +        :title => value
 +      }
 +    end
 +    return nil
 +  end
 +
    def telephone_link(key, value)
      # does it look like a phone number? eg "+1 (234) 567-8901 " ?
      return nil unless value =~ /^\s*\+[\d\s\(\)\/\.-]{6,25}\s*$/
index 7bc731a0c06e081dd482dcbcad08da5ac8a2a030,6ca65f7e74b62e2261f9e571f80ee7ebc84e5102..d3ed3a8267c702eb6c9c31ed0d6838fc5a2ff8ee
@@@ -12,6 -12,10 +12,10 @@@ class BrowseHelperTest < ActionView::Te
      I18n.locale = "en"
    end
  
+   def teardown
+     I18n.locale = "en"
+   end
    def test_printable_name
      assert_equal "17", printable_name(current_nodes(:redacted_node))
      assert_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
      assert_equal "http://wiki.openstreetmap.org/wiki/Tag:highway=primary?uselang=tr", link
    end
  
 +  def test_wikidata_link
 +    link = wikidata_link("foo", "Test")
 +    assert_nil link
 +
 +    link = wikidata_link("wikidata", "http://www.wikidata.org/wiki/Q1")
 +    assert_nil link
 +
 +    link = wikidata_link("wikidata", "en:Q1")
 +    assert_nil link
 +
 +    link = wikidata_link("wikidata", "1")
 +    assert_nil link
 +
 +    link = wikidata_link("wikidata", "Q0123")
 +    assert_nil link
 +
 +    link = wikidata_link("wikidata", "Q42")
 +    assert_equal "//www.wikidata.org/wiki/Q42?uselang=en", link[:url]
 +    assert_equal "Q42", link[:title]
 +
 +    I18n.locale = "zh-CN"
 +
 +    link = wikidata_link("wikidata", "Q1234")
 +    assert_equal "//www.wikidata.org/wiki/Q1234?uselang=zh-CN", link[:url]
 +    assert_equal "Q1234", link[:title]
 +  end
 +
    def test_wikipedia_link
      link = wikipedia_link("wikipedia", "http://en.wikipedia.org/wiki/Full%20URL")
      assert_nil link