]> git.openstreetmap.org Git - rails.git/blob - test/helpers/browse_helper_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / helpers / browse_helper_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class BrowseHelperTest < ActionView::TestCase
6   include ERB::Util
7   include ApplicationHelper
8
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))
14
15     add_tags_selection(node)
16     add_old_tags_selection(node_v2)
17     add_old_tags_selection(node_v1)
18
19     node_with_ref_without_name = create(:node)
20     create(:node_tag, :node => node_with_ref_without_name, :k => "ref", :v => "3.1415926")
21
22     deleted_node = create(:node, :deleted)
23
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)
29
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)
36     end
37
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)
44     end
45
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)
52     end
53   end
54
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))
60
61     normal_output = element_strikethrough(node_v2) { "test" }
62     assert_equal "test", normal_output
63
64     redacted_output = element_strikethrough(node_v1) { "test" }
65     assert_equal "<s>test</s>", redacted_output
66
67     deleted_output = element_strikethrough(create(:node, :deleted)) { "test" }
68     assert_equal "<s>test</s>", deleted_output
69   end
70
71   def test_element_icon
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))
76
77     add_tags_selection(node)
78     add_old_tags_selection(node_v2)
79     add_old_tags_selection(node_v1)
80
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
85     end
86
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
91     end
92
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"
97     end
98
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"
103     end
104
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
109     end
110   end
111
112   private
113
114   def add_old_tags_selection(old_node)
115     { "building" => "yes",
116       "shop" => "gift",
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)
121     end
122   end
123
124   def add_tags_selection(node)
125     { "building" => "yes",
126       "shop" => "gift",
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)
131     end
132   end
133
134   def preferred_languages
135     Locale.list(I18n.locale)
136   end
137 end