1 # frozen_string_literal: true
 
   5 class BrowseHelperTest < ActionView::TestCase
 
   7   include ApplicationHelper
 
   9   def test_printable_element_name
 
  10     node = create(:node, :with_history, :version => 2)
 
  11     node_v1 = node.old_nodes.find_by(:version => 1)
 
  12     node_v2 = node.old_nodes.find_by(:version => 2)
 
  13     node_v1.redact!(create(:redaction))
 
  15     add_tags_selection(node)
 
  16     add_old_tags_selection(node_v2)
 
  17     add_old_tags_selection(node_v1)
 
  19     node_with_ref_without_name = create(:node)
 
  20     create(:node_tag, :node => node_with_ref_without_name, :k => "ref", :v => "3.1415926")
 
  22     deleted_node = create(:node, :deleted)
 
  24     assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
 
  25     assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
 
  26     assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
 
  27     assert_dom_equal node.id.to_s, printable_element_name(node_v1)
 
  28     assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
 
  30     I18n.with_locale "pt" do
 
  31       assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
 
  32       assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
 
  33       assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
 
  34       assert_dom_equal node.id.to_s, printable_element_name(node_v1)
 
  35       assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
 
  38     I18n.with_locale "pt-BR" do
 
  39       assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
 
  40       assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
 
  41       assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
 
  42       assert_dom_equal node.id.to_s, printable_element_name(node_v1)
 
  43       assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
 
  46     I18n.with_locale "de" do
 
  47       assert_dom_equal deleted_node.id.to_s, printable_element_name(deleted_node)
 
  48       assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node)
 
  49       assert_dom_equal "<bdi>Test Node</bdi> (<bdi>#{node.id}</bdi>)", printable_element_name(node_v2)
 
  50       assert_dom_equal node.id.to_s, printable_element_name(node_v1)
 
  51       assert_dom_equal "<bdi>3.1415926</bdi> (<bdi>#{node_with_ref_without_name.id}</bdi>)", printable_element_name(node_with_ref_without_name)
 
  55   def test_element_strikethrough
 
  56     node = create(:node, :with_history, :version => 2)
 
  57     node_v1 = node.old_nodes.find_by(:version => 1)
 
  58     node_v2 = node.old_nodes.find_by(:version => 2)
 
  59     node_v1.redact!(create(:redaction))
 
  61     normal_output = element_strikethrough(node_v2) { "test" }
 
  62     assert_equal "test", normal_output
 
  64     redacted_output = element_strikethrough(node_v1) { "test" }
 
  65     assert_equal "<s>test</s>", redacted_output
 
  67     deleted_output = element_strikethrough(create(:node, :deleted)) { "test" }
 
  68     assert_equal "<s>test</s>", deleted_output
 
  72     node = create(:node, :with_history, :version => 2)
 
  73     node_v1 = node.old_nodes.find_by(:version => 1)
 
  74     node_v2 = node.old_nodes.find_by(:version => 2)
 
  75     node_v1.redact!(create(:redaction))
 
  77     add_tags_selection(node)
 
  78     add_old_tags_selection(node_v2)
 
  79     add_old_tags_selection(node_v1)
 
  81     icon = element_icon("node", create(:node))
 
  82     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
 
  83     assert_dom icon_dom, "img:root", :count => 1 do
 
  84       assert_dom "> @title", 0
 
  87     icon = element_icon("node", create(:node, :deleted))
 
  88     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
 
  89     assert_dom icon_dom, "img:root", :count => 1 do
 
  90       assert_dom "> @title", 0
 
  93     icon = element_icon("node", node)
 
  94     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
 
  95     assert_dom icon_dom, "img:root", :count => 1 do
 
  96       assert_dom "> @title", "building=yes, shop=gift, and tourism=museum"
 
  99     icon = element_icon("node", node_v2)
 
 100     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
 
 101     assert_dom icon_dom, "img:root", :count => 1 do
 
 102       assert_dom "> @title", "building=yes, shop=gift, and tourism=museum"
 
 105     icon = element_icon("node", node_v1)
 
 106     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
 
 107     assert_dom icon_dom, "img:root", :count => 1 do
 
 108       assert_dom "> @title", 0
 
 114   def add_old_tags_selection(old_node)
 
 115     { "building" => "yes",
 
 117       "tourism" => "museum",
 
 118       "name" => "Test Node",
 
 119       "name:pt" => "Nó teste" }.each do |key, value|
 
 120       create(:old_node_tag, :old_node => old_node, :k => key, :v => value)
 
 124   def add_tags_selection(node)
 
 125     { "building" => "yes",
 
 127       "tourism" => "museum",
 
 128       "name" => "Test Node",
 
 129       "name:pt" => "Nó teste" }.each do |key, value|
 
 130       create(:node_tag, :node => node, :k => key, :v => value)
 
 134   def preferred_languages
 
 135     Locale.list(I18n.locale)