+
+ def test_telephone_link
+ link = telephone_link("foo", "Test")
+ assert_nil link
+
+ link = telephone_link("phone", "+123")
+ assert_nil link
+
+ link = telephone_link("phone", "123")
+ assert_nil link
+
+ link = telephone_link("phone", "123 abcdefg")
+ assert_nil link
+
+ link = telephone_link("phone", "+1234567890 abc")
+ assert_nil link
+
+ link = telephone_link("phone", "+1234567890; +22334455667788")
+ assert_nil link
+
+ link = telephone_link("phone", "1234567890")
+ assert_nil link
+
+ link = telephone_link("phone", "+1234567890")
+ assert_equal "tel:+1234567890", link
+
+ link = telephone_link("phone", "+1234-567-890")
+ assert_equal "tel:+1234-567-890", link
+
+ link = telephone_link("phone", "+1234/567/890")
+ assert_equal "tel:+1234/567/890", link
+
+ link = telephone_link("phone", "+1234.567.890")
+ assert_equal "tel:+1234.567.890", link
+
+ link = telephone_link("phone", " +1234 567-890 ")
+ assert_equal "tel:+1234567-890", link
+
+ link = telephone_link("phone", "+1 234-567-890")
+ assert_equal "tel:+1234-567-890", link
+
+ link = telephone_link("phone", "+1 (234) 567-890")
+ assert_equal "tel:+1(234)567-890", link
+ end
+
+ def test_colour_preview
+ # basic positive tests
+ colour = colour_preview("colour", "red")
+ assert_equal "red", colour
+
+ colour = colour_preview("colour", "Red")
+ assert_equal "Red", colour
+
+ colour = colour_preview("colour", "darkRed")
+ assert_equal "darkRed", colour
+
+ colour = colour_preview("colour", "#f00")
+ assert_equal "#f00", colour
+
+ colour = colour_preview("colour", "#fF0000")
+ assert_equal "#fF0000", colour
+
+ # other tag variants:
+ colour = colour_preview("building:colour", "#f00")
+ assert_equal "#f00", colour
+
+ colour = colour_preview("ref:colour", "#f00")
+ assert_equal "#f00", colour
+
+ colour = colour_preview("ref:colour_bg", "#fF0")
+ assert_equal "#fF0", colour
+
+ colour = colour_preview("ref:colour_tx", "#fa0")
+ assert_equal "#fa0", colour
+
+ colour = colour_preview("int_ref:colour", "green")
+ assert_equal "green", colour
+
+ colour = colour_preview("int_ref:colour_bg", "#00f")
+ assert_equal "#00f", colour
+
+ colour = colour_preview("int_ref:colour_tx", "WHITE")
+ assert_equal "WHITE", colour
+
+ colour = colour_preview("roof:colour", "#f00")
+ assert_equal "#f00", colour
+
+ # negative tests:
+ colour = colour_preview("color", "")
+ assert_nil colour
+
+ colour = colour_preview("color", " ")
+ assert_nil colour
+
+ colour = colour_preview("color", nil)
+ assert_nil colour
+
+ # ignore US spelling variant
+ colour = colour_preview("color", "red")
+ assert_nil colour
+
+ # irrelevant tag names
+ colour = colour_preview("building", "red")
+ assert_nil colour
+
+ colour = colour_preview("ref:colour_no", "red")
+ assert_nil colour
+
+ colour = colour_preview("ref:colour-bg", "red")
+ assert_nil colour
+
+ colour = colour_preview("int_ref", "red")
+ assert_nil colour
+
+ # invalid hex codes
+ colour = colour_preview("colour", "#")
+ assert_nil colour
+
+ colour = colour_preview("colour", "#ff")
+ assert_nil colour
+
+ colour = colour_preview("colour", "#ffff")
+ assert_nil colour
+
+ colour = colour_preview("colour", "#fffffff")
+ assert_nil colour
+
+ colour = colour_preview("colour", "#ggg")
+ assert_nil colour
+
+ colour = colour_preview("colour", "#ff 00 00")
+ assert_nil colour
+
+ # invalid w3c color names:
+ colour = colour_preview("colour", "r")
+ assert_nil colour
+
+ colour = colour_preview("colour", "ffffff")
+ assert_nil colour
+
+ colour = colour_preview("colour", "f00")
+ assert_nil colour
+
+ colour = colour_preview("colour", "xxxred")
+ assert_nil colour
+
+ colour = colour_preview("colour", "dark red")
+ assert_nil colour
+
+ colour = colour_preview("colour", "dark_red")
+ assert_nil colour
+
+ colour = colour_preview("colour", "ADarkDummyLongColourNameWithAPurpleUndertone")
+ assert_nil colour
+ end
+
+ def add_old_tags_selection(old_node)
+ { "building" => "yes",
+ "shop" => "gift",
+ "tourism" => "museum",
+ "name" => "Test Node",
+ "name:pt" => "Nó teste" }.each do |key, value|
+ create(:old_node_tag, :old_node => old_node, :k => key, :v => value)
+ end
+ end
+
+ def add_tags_selection(node)
+ { "building" => "yes",
+ "shop" => "gift",
+ "tourism" => "museum",
+ "name" => "Test Node",
+ "name:pt" => "Nó teste" }.each do |key, value|
+ create(:node_tag, :node => node, :k => key, :v => value)
+ end
+ end