]> git.openstreetmap.org Git - rails.git/blob - test/helpers/numbered_pagination_helper_test.rb
Split long version lists into 3 parts, with middle list scrollable
[rails.git] / test / helpers / numbered_pagination_helper_test.rb
1 require "test_helper"
2
3 class NumberedPaginationHelperTest < ActionView::TestCase
4   def test_element_versions_pagination1
5     pagination = element_versions_pagination(1) { |v| sample_item_data v }
6     pagination_dom = Rails::Dom::Testing.html_document_fragment.parse(pagination)
7     assert_dom pagination_dom, "ul", :count => 1 do
8       assert_dom "> li", 1 do
9         check_version_link sample_item_data(1)
10       end
11     end
12   end
13
14   def test_element_versions_pagination5
15     pagination = element_versions_pagination(5) { |v| sample_item_data v }
16     pagination_dom = Rails::Dom::Testing.html_document_fragment.parse(pagination)
17     assert_dom pagination_dom, "ul", :count => 1 do
18       assert_dom "> li", 5 do |items|
19         items.each_with_index do |item, i|
20           check_version_link item, sample_item_data(i + 1)
21         end
22       end
23     end
24   end
25
26   def test_element_versions_pagination6
27     pagination = element_versions_pagination(6) { |v| sample_item_data v }
28     pagination_dom = Rails::Dom::Testing.html_document_fragment.parse(pagination)
29     assert_dom pagination_dom, "ul", :count => 3 do |lists|
30       assert_dom lists[0], "> li", 1 do
31         check_version_link sample_item_data(1)
32       end
33       assert_dom lists[1], "> li", 4 do |items|
34         items.each_with_index do |item, i|
35           check_version_link item, sample_item_data(i + 2)
36         end
37       end
38       assert_dom lists[2], "> li", 1 do
39         check_version_link sample_item_data(6)
40       end
41     end
42   end
43
44   private
45
46   def sample_item_data(version)
47     { :href => "test/version/#{version}", :title => "Version ##{version}" }
48   end
49
50   def check_version_link(*elements, data)
51     assert_dom(*elements, "> a", 1) do
52       assert_dom "> @href", data[:href]
53       assert_dom "> @title", data[:title]
54     end
55   end
56 end