active_scaffold 3.4.17 → 3.4.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +12 -1
  3. data/README.md +8 -4
  4. data/app/assets/javascripts/jquery/active_scaffold.js +82 -67
  5. data/app/assets/stylesheets/active_scaffold.scss +1 -1
  6. data/app/assets/stylesheets/active_scaffold_colors.scss +1 -1
  7. data/app/assets/stylesheets/blue-theme.css +1 -1
  8. data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -3
  9. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +3 -3
  10. data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
  11. data/lib/active_scaffold.rb +16 -16
  12. data/lib/active_scaffold/actions/common_search.rb +13 -11
  13. data/lib/active_scaffold/actions/core.rb +85 -78
  14. data/lib/active_scaffold/actions/create.rb +29 -28
  15. data/lib/active_scaffold/actions/delete.rb +17 -17
  16. data/lib/active_scaffold/actions/field_search.rb +18 -19
  17. data/lib/active_scaffold/actions/list.rb +30 -22
  18. data/lib/active_scaffold/actions/mark.rb +1 -1
  19. data/lib/active_scaffold/actions/nested.rb +78 -65
  20. data/lib/active_scaffold/actions/search.rb +13 -10
  21. data/lib/active_scaffold/actions/show.rb +10 -6
  22. data/lib/active_scaffold/actions/subform.rb +1 -2
  23. data/lib/active_scaffold/actions/update.rb +39 -31
  24. data/lib/active_scaffold/active_record_permissions.rb +14 -15
  25. data/lib/active_scaffold/attribute_params.rb +42 -43
  26. data/lib/active_scaffold/bridges.rb +22 -12
  27. data/lib/active_scaffold/bridges/ancestry.rb +1 -1
  28. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +6 -6
  29. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  30. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +12 -13
  31. data/lib/active_scaffold/bridges/calendar_date_select.rb +5 -5
  32. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +17 -20
  33. data/lib/active_scaffold/bridges/cancan.rb +1 -1
  34. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +8 -9
  35. data/lib/active_scaffold/bridges/carrierwave.rb +4 -4
  36. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +9 -8
  37. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +11 -10
  38. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +7 -6
  39. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  40. data/lib/active_scaffold/bridges/chosen/helpers.rb +4 -4
  41. data/lib/active_scaffold/bridges/country_helper.rb +1 -1
  42. data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +259 -260
  43. data/lib/active_scaffold/bridges/date_picker.rb +2 -2
  44. data/lib/active_scaffold/bridges/date_picker/ext.rb +9 -11
  45. data/lib/active_scaffold/bridges/date_picker/helper.rb +61 -67
  46. data/lib/active_scaffold/bridges/dragonfly.rb +4 -4
  47. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +9 -8
  48. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +11 -10
  49. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +6 -5
  50. data/lib/active_scaffold/bridges/file_column.rb +5 -5
  51. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +20 -23
  52. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +20 -23
  53. data/lib/active_scaffold/bridges/file_column/form_ui.rb +13 -14
  54. data/lib/active_scaffold/bridges/file_column/list_ui.rb +7 -8
  55. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +18 -22
  56. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +5 -4
  57. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +2 -10
  58. data/lib/active_scaffold/bridges/paper_trail.rb +7 -5
  59. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +4 -3
  60. data/lib/active_scaffold/bridges/paperclip.rb +5 -5
  61. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +11 -10
  62. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +6 -5
  63. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +10 -9
  64. data/lib/active_scaffold/bridges/record_select.rb +1 -1
  65. data/lib/active_scaffold/bridges/record_select/helpers.rb +28 -28
  66. data/lib/active_scaffold/bridges/semantic_attributes.rb +1 -1
  67. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +1 -1
  68. data/lib/active_scaffold/bridges/shared/date_bridge.rb +58 -52
  69. data/lib/active_scaffold/bridges/tiny_mce.rb +2 -2
  70. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -3
  71. data/lib/active_scaffold/config/base.rb +9 -10
  72. data/lib/active_scaffold/config/core.rb +24 -29
  73. data/lib/active_scaffold/config/create.rb +0 -1
  74. data/lib/active_scaffold/config/field_search.rb +8 -10
  75. data/lib/active_scaffold/config/form.rb +5 -5
  76. data/lib/active_scaffold/config/list.rb +21 -20
  77. data/lib/active_scaffold/config/mark.rb +3 -3
  78. data/lib/active_scaffold/config/nested.rb +11 -10
  79. data/lib/active_scaffold/config/search.rb +2 -3
  80. data/lib/active_scaffold/config/show.rb +1 -1
  81. data/lib/active_scaffold/config/update.rb +1 -2
  82. data/lib/active_scaffold/configurable.rb +9 -11
  83. data/lib/active_scaffold/constraints.rb +9 -8
  84. data/lib/active_scaffold/core.rb +72 -84
  85. data/lib/active_scaffold/data_structures/action_columns.rb +26 -25
  86. data/lib/active_scaffold/data_structures/action_link.rb +43 -43
  87. data/lib/active_scaffold/data_structures/action_links.rb +17 -15
  88. data/lib/active_scaffold/data_structures/actions.rb +5 -5
  89. data/lib/active_scaffold/data_structures/bridge.rb +6 -3
  90. data/lib/active_scaffold/data_structures/column.rb +110 -89
  91. data/lib/active_scaffold/data_structures/columns.rb +3 -3
  92. data/lib/active_scaffold/data_structures/error_message.rb +4 -6
  93. data/lib/active_scaffold/data_structures/nested_info.rb +43 -48
  94. data/lib/active_scaffold/data_structures/set.rb +7 -8
  95. data/lib/active_scaffold/data_structures/sorting.rb +38 -33
  96. data/lib/active_scaffold/delayed_setup.rb +5 -6
  97. data/lib/active_scaffold/engine.rb +4 -4
  98. data/lib/active_scaffold/extensions/action_controller_rendering.rb +3 -4
  99. data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
  100. data/lib/active_scaffold/extensions/action_view_rendering.rb +5 -6
  101. data/lib/active_scaffold/extensions/left_outer_joins.rb +11 -11
  102. data/lib/active_scaffold/extensions/localize.rb +1 -1
  103. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
  104. data/lib/active_scaffold/extensions/paginator_extensions.rb +2 -5
  105. data/lib/active_scaffold/extensions/reverse_associations.rb +13 -13
  106. data/lib/active_scaffold/extensions/routing_mapper.rb +9 -9
  107. data/lib/active_scaffold/extensions/unsaved_associated.rb +9 -9
  108. data/lib/active_scaffold/finder.rb +90 -93
  109. data/lib/active_scaffold/helpers/association_helpers.rb +5 -5
  110. data/lib/active_scaffold/helpers/controller_helpers.rb +22 -19
  111. data/lib/active_scaffold/helpers/form_column_helpers.rb +115 -105
  112. data/lib/active_scaffold/helpers/human_condition_helpers.rb +62 -35
  113. data/lib/active_scaffold/helpers/id_helpers.rb +6 -6
  114. data/lib/active_scaffold/helpers/list_column_helpers.rb +89 -94
  115. data/lib/active_scaffold/helpers/pagination_helpers.rb +9 -9
  116. data/lib/active_scaffold/helpers/search_column_helpers.rb +47 -44
  117. data/lib/active_scaffold/helpers/show_column_helpers.rb +2 -2
  118. data/lib/active_scaffold/helpers/view_helpers.rb +86 -91
  119. data/lib/active_scaffold/marked_model.rb +10 -10
  120. data/lib/active_scaffold/paginator.rb +30 -34
  121. data/lib/active_scaffold/responds_to_parent.rb +27 -28
  122. data/lib/active_scaffold/tableless.rb +20 -15
  123. data/lib/active_scaffold/version.rb +1 -1
  124. data/lib/generators/active_scaffold/active_scaffold_generator.rb +8 -8
  125. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +9 -9
  126. data/shoulda_macros/macros.rb +27 -22
  127. data/test/bridges/bridge_test.rb +38 -29
  128. data/test/bridges/date_picker_test.rb +1 -1
  129. data/test/bridges/paper_trail_test.rb +17 -0
  130. data/test/bridges/paperclip_test.rb +3 -2
  131. data/test/bridges/tiny_mce_test.rb +5 -2
  132. data/test/company.rb +25 -30
  133. data/test/config/base_test.rb +1 -1
  134. data/test/config/core_test.rb +9 -9
  135. data/test/config/create_test.rb +14 -8
  136. data/test/config/delete_test.rb +4 -4
  137. data/test/config/field_search_test.rb +6 -6
  138. data/test/config/list_test.rb +16 -16
  139. data/test/config/nested_test.rb +4 -4
  140. data/test/config/search_test.rb +8 -8
  141. data/test/config/show_test.rb +6 -6
  142. data/test/config/subform_test.rb +1 -1
  143. data/test/config/update_test.rb +5 -5
  144. data/test/const_mocker.rb +4 -4
  145. data/test/data_structures/action_columns_test.rb +4 -5
  146. data/test/data_structures/action_link_test.rb +1 -0
  147. data/test/data_structures/action_links_test.rb +5 -5
  148. data/test/data_structures/column_test.rb +9 -9
  149. data/test/data_structures/columns_test.rb +2 -2
  150. data/test/data_structures/error_message_test.rb +4 -5
  151. data/test/data_structures/set_test.rb +1 -2
  152. data/test/data_structures/sorting_test.rb +10 -10
  153. data/test/data_structures/validation_reflection_test.rb +8 -0
  154. data/test/extensions/routing_mapper_test.rb +2 -2
  155. data/test/helpers/list_column_helpers_test.rb +3 -2
  156. data/test/helpers/pagination_helpers_test.rb +5 -4
  157. data/test/helpers/search_column_helpers_test.rb +1 -1
  158. data/test/misc/active_record_permissions_test.rb +63 -50
  159. data/test/misc/attribute_params_test.rb +28 -26
  160. data/test/misc/calculation_test.rb +10 -3
  161. data/test/misc/configurable_test.rb +12 -13
  162. data/test/misc/constraints_test.rb +6 -6
  163. data/test/misc/convert_numbers_format_test.rb +7 -6
  164. data/test/misc/finder_test.rb +17 -12
  165. data/test/misc/lang_test.rb +3 -4
  166. data/test/misc/tableless_test.rb +2 -3
  167. data/test/mock_app/app/controllers/addresses_controller.rb +1 -1
  168. data/test/mock_app/app/controllers/buildings_controller.rb +1 -1
  169. data/test/mock_app/app/controllers/cars_controller.rb +1 -1
  170. data/test/mock_app/app/controllers/contacts_controller.rb +1 -1
  171. data/test/mock_app/app/controllers/people_controller.rb +1 -1
  172. data/test/mock_app/app/models/file_model.rb +2 -2
  173. data/test/mock_app/app/models/person.rb +1 -1
  174. data/test/mock_app/config/application.rb +3 -3
  175. data/test/mock_app/config/boot.rb +1 -1
  176. data/test/mock_app/config/environment.rb +1 -0
  177. data/test/mock_app/config/environments/development.rb +0 -1
  178. data/test/mock_app/config/environments/production.rb +1 -1
  179. data/test/mock_app/db/schema.rb +14 -15
  180. data/test/model_stub.rb +13 -16
  181. data/test/run_all.rb +5 -7
  182. data/test/test_helper.rb +12 -9
  183. metadata +19 -3
@@ -20,6 +20,7 @@ class ActionLinkTest < MiniTest::Test
20
20
  refute @link.confirm
21
21
  @link.confirm = true
22
22
  assert @link.confirm
23
+ assert @link.confirm?
23
24
 
24
25
  assert_equal 'bar_authorized?', @link.security_method
25
26
 
@@ -9,19 +9,19 @@ class ActionLinksTest < MiniTest::Test
9
9
  # test adding with a shortcut
10
10
  @links.add 'foo/bar'
11
11
 
12
- assert_equal 1, @links.find_all{true}.size
13
- assert_equal 'foo/bar', @links.find_all{true}[0].action
12
+ assert_equal 1, @links.find_all { true }.size
13
+ assert_equal 'foo/bar', @links.find_all { true }[0].action
14
14
  assert_equal 'foo/bar', @links['foo/bar'].action
15
15
 
16
16
  # test adding an ActionLink object directly
17
17
  @links.add ActiveScaffold::DataStructures::ActionLink.new('hello/world')
18
18
 
19
- assert_equal 2, @links.find_all{true}.size
19
+ assert_equal 2, @links.find_all { true }.size
20
20
 
21
21
  # test the << alias
22
22
  @links << 'a/b'
23
23
 
24
- assert_equal 3, @links.find_all{true}.size
24
+ assert_equal 3, @links.find_all { true }.size
25
25
  end
26
26
 
27
27
  def test_array_access
@@ -60,7 +60,7 @@ class ActionLinksTest < MiniTest::Test
60
60
  assert_equal 'bar', link.action
61
61
  end
62
62
  end
63
-
63
+
64
64
  def test_delete
65
65
  @links.add 'foo'
66
66
  @links.add 'bar'
@@ -61,7 +61,7 @@ class ColumnTest < MiniTest::Test
61
61
  assert columns != @column
62
62
 
63
63
  # identity
64
- assert @column == @column
64
+ assert @column == @column # rubocop:disable Lint/UselessComparison
65
65
 
66
66
  # string comparison
67
67
  assert @column == 'a'
@@ -78,7 +78,7 @@ class ColumnTest < MiniTest::Test
78
78
  assert @column == column2
79
79
 
80
80
  # special comparisons
81
- assert @column != nil
81
+ refute @column.nil?
82
82
  assert @column != ''
83
83
  assert @column != 0
84
84
  end
@@ -135,7 +135,7 @@ class ColumnTest < MiniTest::Test
135
135
  hash = {:sql => 'foobar'}
136
136
  assert_equal hash, @column.sort
137
137
 
138
- some_proc = proc {'foobar'}
138
+ some_proc = proc { 'foobar' }
139
139
  @column.sort_by :method => some_proc
140
140
  hash = {:method => some_proc}
141
141
  assert_equal hash, @column.sort
@@ -143,12 +143,12 @@ class ColumnTest < MiniTest::Test
143
143
  end
144
144
 
145
145
  def test_custom_sort__should_assert_keys
146
- assert_raises(ArgumentError) { @column.sort_by :proc => "invalid config" }
147
- assert_raises(ArgumentError) { @column.sort={:proc => "invalid config" } }
148
- assert_equal({:method => "method"}, @column.sort_by(:method => "method"))
149
- assert_equal({:sql => "method"}, @column.sort_by(:sql => "method"))
146
+ assert_raises(ArgumentError) { @column.sort_by :proc => 'invalid config' }
147
+ assert_raises(ArgumentError) { @column.sort = {:proc => 'invalid config'} }
148
+ assert_equal({:method => 'method'}, @column.sort_by(:method => 'method'))
149
+ assert_equal({:sql => 'method'}, @column.sort_by(:sql => 'method'))
150
150
  end
151
-
151
+
152
152
  def test_config_block
153
153
  @column.configure do |config|
154
154
  # we can use the config object
@@ -173,7 +173,7 @@ class ColumnTest < MiniTest::Test
173
173
 
174
174
  def test_includes
175
175
  assert_equal nil, @column.includes
176
-
176
+
177
177
  # make sure that when a non-array comes in, an array comes out
178
178
  @column.includes = :column_name
179
179
  assert_equal([:column_name], @column.includes)
@@ -41,8 +41,8 @@ class ColumnsTest < MiniTest::Test
41
41
 
42
42
  # test the collection finders
43
43
  found = @columns.find_by_names(:a, :b)
44
- assert found.any? {|c| c.name == :a}
45
- assert found.any? {|c| c.name == :b}
44
+ assert found.any? { |c| c.name == :a }
45
+ assert found.any? { |c| c.name == :b }
46
46
  end
47
47
 
48
48
  def test_each
@@ -6,21 +6,20 @@ class ErrorMessageTest < MiniTest::Test
6
6
  end
7
7
 
8
8
  def test_attributes
9
- assert @error.public_attributes.has_key?(:error)
9
+ assert @error.public_attributes.key?(:error)
10
10
  assert_equal 'foo', @error.public_attributes[:error]
11
11
  end
12
12
 
13
13
  def test_xml
14
14
  xml = Hash.from_xml(@error.to_xml)
15
- assert xml.has_key?('errors')
16
- assert xml['errors'].has_key?('error')
15
+ assert xml.key?('errors')
16
+ assert xml['errors'].key?('error')
17
17
  assert_equal 'foo', xml['errors']['error']
18
18
  end
19
19
 
20
20
  def test_yaml
21
- yml = nil
22
21
  yml = YAML.load(@error.to_yaml)
23
- assert yml.has_key?(:error)
22
+ assert yml.key?(:error)
24
23
  assert_equal 'foo', yml[:error]
25
24
  end
26
25
  end
@@ -50,7 +50,7 @@ class SetTest < MiniTest::Test
50
50
 
51
51
  # test that << also adds
52
52
  refute @items.include?(:e)
53
- @items << "e"
53
+ @items << 'e'
54
54
  assert @items.include?(:e)
55
55
 
56
56
  # try adding an array of columns
@@ -58,7 +58,6 @@ class SetTest < MiniTest::Test
58
58
  @items.add [:f, :g]
59
59
  assert @items.include?(:f)
60
60
  assert @items.include?(:g)
61
-
62
61
  end
63
62
 
64
63
  def test_length
@@ -90,18 +90,18 @@ class SortingTest < MiniTest::Test
90
90
  end
91
91
 
92
92
  def test_sorts_by_method
93
- @columns[:a].sort_by :method => proc{0}
93
+ @columns[:a].sort_by :method => proc { 0 }
94
94
 
95
- #test pure method sorting: true
95
+ # test pure method sorting: true
96
96
  @sorting.add :a
97
97
  assert @sorting.sorts_by_method?
98
98
 
99
- #test mixed sql/method sorting: raise error
99
+ # test mixed sql/method sorting: raise error
100
100
  assert_raises ArgumentError do
101
101
  @sorting.add :b
102
102
  end
103
-
104
- #test pure sql sorting: false
103
+
104
+ # test pure sql sorting: false
105
105
  @sorting.clear
106
106
  @sorting.add :b
107
107
  refute @sorting.sorts_by_method?
@@ -115,12 +115,12 @@ class SortingTest < MiniTest::Test
115
115
 
116
116
  assert_equal '"model_stubs"."a" DESC, "model_stubs"."b" ASC', @sorting.clause.join(', ')
117
117
  end
118
-
118
+
119
119
  def test_set_default_sorting_with_simple_default_scope
120
120
  model_stub_with_default_scope = ModelStub.clone
121
- model_stub_with_default_scope.class_eval { default_scope lambda { order('a') } }
121
+ model_stub_with_default_scope.class_eval { default_scope -> { order('a') } }
122
122
  @sorting.set_default_sorting model_stub_with_default_scope
123
-
123
+
124
124
  assert @sorting.sorts_on?(:a)
125
125
  assert_equal 'ASC', @sorting.direction_of(:a)
126
126
  assert_nil @sorting.clause
@@ -128,9 +128,9 @@ class SortingTest < MiniTest::Test
128
128
 
129
129
  def test_set_default_sorting_with_complex_default_scope
130
130
  model_stub_with_default_scope = ModelStub.clone
131
- model_stub_with_default_scope.class_eval { default_scope lambda { order('a DESC, players.last_name ASC') } }
131
+ model_stub_with_default_scope.class_eval { default_scope -> { order('a DESC, players.last_name ASC') } }
132
132
  @sorting.set_default_sorting model_stub_with_default_scope
133
-
133
+
134
134
  assert @sorting.sorts_on?(:a)
135
135
  assert_equal 'DESC', @sorting.direction_of(:a)
136
136
  assert_equal 1, @sorting.instance_variable_get(:@clauses).size
@@ -48,4 +48,12 @@ class ValidationReflectionTest < MiniTest::Test
48
48
  column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
49
49
  refute column.required?
50
50
  end
51
+
52
+ def test_override_required
53
+ Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name)])
54
+ column = ActiveScaffold::DataStructures::Column.new(:name, Company)
55
+ assert column.required?
56
+ column.required = false
57
+ refute column.required?
58
+ end
51
59
  end
@@ -13,8 +13,8 @@ class RoutingMapperTest < ActionController::TestCase
13
13
 
14
14
  test 'active scaffold routes' do
15
15
  assert_routing 'addresses/show_search', :controller => 'addresses', :action => 'show_search'
16
- assert_routing({:method => 'post', :path => 'addresses/render_field'}, :controller => 'addresses', :action => 'render_field')
17
- assert_routing({:method => 'post', :path => 'addresses/2/render_field'}, :controller => 'addresses', :action => 'render_field', :id => '2')
16
+ assert_routing({:method => 'post', :path => 'addresses/render_field'}, {:controller => 'addresses', :action => 'render_field'})
17
+ assert_routing({:method => 'post', :path => 'addresses/2/render_field'}, {:controller => 'addresses', :action => 'render_field', :id => '2'})
18
18
  assert_routing 'addresses/2/render_field', :controller => 'addresses', :action => 'render_field', :id => '2'
19
19
  assert_routing 'addresses/edit_associated', :controller => 'addresses', :action => 'edit_associated'
20
20
  assert_routing 'addresses/2/edit_associated', :controller => 'addresses', :action => 'edit_associated', :id => '2'
@@ -1,4 +1,4 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
2
  require 'test_helper'
3
3
 
4
4
  class ListColumnHelpersTest < ActionView::TestCase
@@ -31,7 +31,7 @@ class ListColumnHelpersTest < ActionView::TestCase
31
31
 
32
32
  def test_association_join_text
33
33
  value = [1, 2, 3, 4].map(&:to_s)
34
- value.each {|v| v.stubs(:to_label).returns(v)}
34
+ value.each { |v| v.stubs(:to_label).returns(v) }
35
35
  assert_equal '1, 2, 3, … (4)', format_association_value(value, @association_column, value.size)
36
36
  @config.list.stubs(:association_join_text => ',<br/>')
37
37
  assert_equal '1,&lt;br/&gt;2,&lt;br/&gt;3,&lt;br/&gt;… (4)', format_association_value(value, @association_column, value.size)
@@ -40,6 +40,7 @@ class ListColumnHelpersTest < ActionView::TestCase
40
40
  end
41
41
 
42
42
  private
43
+
43
44
  def active_scaffold_config
44
45
  @config
45
46
  end
@@ -8,7 +8,7 @@ class PaginationHelpersTest < MiniTest::Test
8
8
  end
9
9
 
10
10
  def test_links
11
- self.stubs(:pagination_ajax_link).returns('l')
11
+ stubs(:pagination_ajax_link).returns('l')
12
12
 
13
13
  assert_equal '1', links(1, 1)
14
14
  assert_equal '1 l', links(1, 2)
@@ -31,7 +31,7 @@ class PaginationHelpersTest < MiniTest::Test
31
31
  end
32
32
 
33
33
  def test_links_with_infinite_pagination
34
- self.stubs(:pagination_ajax_link).returns('l')
34
+ stubs(:pagination_ajax_link).returns('l')
35
35
 
36
36
  assert_equal '1 l l .. l .. l', links(1, nil, 2, true)
37
37
  assert_equal 'l 2 l l .. l .. l', links(2, nil, 2, true)
@@ -51,13 +51,14 @@ class PaginationHelpersTest < MiniTest::Test
51
51
  end
52
52
 
53
53
  private
54
+
54
55
  def links(current, last_page, window_size = 2, infinite = false)
55
- paginator = stub(:last => last_page = stub(:number => last_page), :infinite? => infinite)
56
+ paginator = stub(:last => stub(:number => last_page), :infinite? => infinite)
56
57
  current_page = stub(:number => current, :pager => paginator)
57
58
  pagination_ajax_links(current_page, {}, {}, window_size, 0)
58
59
  end
59
60
 
60
- def content_tag(tag, text, *args)
61
+ def content_tag(tag, text, *)
61
62
  text
62
63
  end
63
64
  end
@@ -9,6 +9,6 @@ class SearchColumnHelpersTest < ActionView::TestCase
9
9
  end
10
10
 
11
11
  def test_choices_for_boolean_search_ui
12
- assert_dom_equal "<select name=\"search[adult]\"><option value=\"\">- select -</option>\n<option value=\"true\">True</option>\n<option value=\"false\" selected=\"selected\">False</option></select>", active_scaffold_search_boolean(@column, :object => @record, :name => "search[adult]", :value => '0')
12
+ assert_dom_equal "<select name=\"search[adult]\"><option value=\"\">- select -</option>\n<option value=\"true\">True</option>\n<option value=\"false\" selected=\"selected\">False</option></select>", active_scaffold_search_boolean(@column, :object => @record, :name => 'search[adult]', :value => '0')
13
13
  end
14
14
  end
@@ -2,53 +2,66 @@ require 'test_helper'
2
2
 
3
3
  class PermissionModel < ActiveRecord::Base
4
4
  include ActiveScaffold::ActiveRecordPermissions::ModelUserAccess::Model
5
- def self.columns; @columns ||= [ColumnMock.new('id', '', 'int(11)')] + %w(a1 a2 a3 b1 b2 b3 c1 c2 c3).map {|c| ColumnMock.new(c, '', 'varchar(255)')}; end
5
+ def self.columns; @columns ||= [ColumnMock.new('id', '', 'int(11)')] + %w(a1 a2 a3 b1 b2 b3 c1 c2 c3).map { |c| ColumnMock.new(c, '', 'varchar(255)') }; end
6
6
 
7
7
  def authorized_for_read?; true; end
8
+
8
9
  def authorized_for_update?; false; end
9
- #def authorized_for_create?; end
10
+ # def authorized_for_create?; end
10
11
 
11
12
  def a1_authorized?; true; end
13
+
12
14
  def a2_authorized?; false; end
13
- #def a3_authorized?; end
15
+ # def a3_authorized?; end
14
16
 
15
17
  def b1_authorized?; true; end
18
+
16
19
  def b2_authorized?; false; end
17
- #def b3_authorized?; end
20
+ # def b3_authorized?; end
18
21
 
19
22
  def c1_authorized?; true; end
23
+
20
24
  def c2_authorized?; false; end
21
- #def c3_authorized?; end
25
+ # def c3_authorized?; end
22
26
 
23
27
  def a3_authorized_for_create?; true; end
28
+
24
29
  def b3_authorized_for_create?; false; end
25
- #def c3_authorized_for_create?; end
30
+ # def c3_authorized_for_create?; end
26
31
  def a2_authorized_for_create?; true; end
32
+
27
33
  def b2_authorized_for_create?; false; end
28
- #def c2_authorized_for_create?; end
34
+ # def c2_authorized_for_create?; end
29
35
  def a1_authorized_for_create?; true; end
36
+
30
37
  def b1_authorized_for_create?; false; end
31
- #def c1_authorized_for_create?; end
38
+ # def c1_authorized_for_create?; end
32
39
 
33
40
  def a3_authorized_for_read?; true; end
41
+
34
42
  def b3_authorized_for_read?; false; end
35
- #def c3_authorized_for_read?; end
43
+ # def c3_authorized_for_read?; end
36
44
  def a2_authorized_for_read?; true; end
45
+
37
46
  def b2_authorized_for_read?; false; end
38
- #def c2_authorized_for_read?; end
47
+ # def c2_authorized_for_read?; end
39
48
  def a1_authorized_for_read?; true; end
49
+
40
50
  def b1_authorized_for_read?; false; end
41
- #def c1_authorized_for_read?; end
51
+ # def c1_authorized_for_read?; end
42
52
 
43
53
  def a3_authorized_for_update?; true; end
54
+
44
55
  def b3_authorized_for_update?; false; end
45
- #def c3_authorized_for_update?; end
56
+ # def c3_authorized_for_update?; end
46
57
  def a2_authorized_for_update?; true; end
58
+
47
59
  def b2_authorized_for_update?; false; end
48
- #def c2_authorized_for_update?; end
60
+ # def c2_authorized_for_update?; end
49
61
  def a1_authorized_for_update?; true; end
62
+
50
63
  def b1_authorized_for_update?; false; end
51
- #def c1_authorized_for_update?; end
64
+ # def c1_authorized_for_update?; end
52
65
  end
53
66
 
54
67
  class ActiveRecordPermissionsTest < MiniTest::Test
@@ -67,41 +80,41 @@ class ActiveRecordPermissionsTest < MiniTest::Test
67
80
  end
68
81
 
69
82
  pass(@model.authorized_for?(:column => :a3), '_a_')
70
- fail(@model.authorized_for?(:column => :a2), '_f_')
83
+ miss(@model.authorized_for?(:column => :a2), '_f_')
71
84
  pass(@model.authorized_for?(:column => :a1), '_t_')
72
85
 
73
86
  pass(@model.authorized_for?(:crud_type => :create), 'a__')
74
- fail(@model.authorized_for?(:crud_type => :update), 'f__')
87
+ miss(@model.authorized_for?(:crud_type => :update), 'f__')
75
88
  pass(@model.authorized_for?(:crud_type => :read), 't__')
76
89
 
77
90
  pass(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
78
- fail(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
91
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
79
92
  pass(@model.authorized_for?(:crud_type => :create, :column => :a3), 'aat')
80
- fail(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
81
- fail(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
93
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
94
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
82
95
  pass(@model.authorized_for?(:crud_type => :create, :column => :a2), 'aft')
83
96
  pass(@model.authorized_for?(:crud_type => :create, :column => :c1), 'ata')
84
- fail(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
97
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
85
98
  pass(@model.authorized_for?(:crud_type => :create, :column => :a1), 'att')
86
99
 
87
- fail(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
88
- fail(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
100
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
101
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
89
102
  pass(@model.authorized_for?(:crud_type => :update, :column => :a3), 'fat')
90
- fail(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
91
- fail(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
103
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
104
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
92
105
  pass(@model.authorized_for?(:crud_type => :update, :column => :a2), 'fft')
93
- fail(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
94
- fail(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
106
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
107
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
95
108
  pass(@model.authorized_for?(:crud_type => :update, :column => :a1), 'ftt')
96
109
 
97
110
  pass(@model.authorized_for?(:crud_type => :read, :column => :c3), 'taa')
98
- fail(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
111
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
99
112
  pass(@model.authorized_for?(:crud_type => :read, :column => :a3), 'tat')
100
- fail(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
101
- fail(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
113
+ miss(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
114
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
102
115
  pass(@model.authorized_for?(:crud_type => :read, :column => :a2), 'tft')
103
116
  pass(@model.authorized_for?(:crud_type => :read, :column => :c1), 'tta')
104
- fail(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
117
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
105
118
  pass(@model.authorized_for?(:crud_type => :read, :column => :a1), 'ttt')
106
119
 
107
120
  ActiveScaffold.set_defaults do |config|
@@ -116,42 +129,42 @@ class ActiveRecordPermissionsTest < MiniTest::Test
116
129
  config.security.default_permission = false
117
130
  end
118
131
 
119
- fail(@model.authorized_for?(:column => :a3), '_a_')
120
- fail(@model.authorized_for?(:column => :a2), '_f_')
132
+ miss(@model.authorized_for?(:column => :a3), '_a_')
133
+ miss(@model.authorized_for?(:column => :a2), '_f_')
121
134
  pass(@model.authorized_for?(:column => :a1), '_t_')
122
135
 
123
- fail(@model.authorized_for?(:crud_type => :create), 'a__')
124
- fail(@model.authorized_for?(:crud_type => :update), 'f__')
136
+ miss(@model.authorized_for?(:crud_type => :create), 'a__')
137
+ miss(@model.authorized_for?(:crud_type => :update), 'f__')
125
138
  pass(@model.authorized_for?(:crud_type => :read), 't__')
126
139
 
127
- fail(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
128
- fail(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
140
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
141
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
129
142
  pass(@model.authorized_for?(:crud_type => :create, :column => :a3), 'aat')
130
- fail(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
131
- fail(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
143
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
144
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
132
145
  pass(@model.authorized_for?(:crud_type => :create, :column => :a2), 'aft')
133
146
  pass(@model.authorized_for?(:crud_type => :create, :column => :c1), 'ata')
134
- fail(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
147
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
135
148
  pass(@model.authorized_for?(:crud_type => :create, :column => :a1), 'att')
136
149
 
137
- fail(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
138
- fail(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
150
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
151
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
139
152
  pass(@model.authorized_for?(:crud_type => :update, :column => :a3), 'fat')
140
- fail(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
141
- fail(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
153
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
154
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
142
155
  pass(@model.authorized_for?(:crud_type => :update, :column => :a2), 'fft')
143
- fail(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
144
- fail(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
156
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
157
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
145
158
  pass(@model.authorized_for?(:crud_type => :update, :column => :a1), 'ftt')
146
159
 
147
160
  pass(@model.authorized_for?(:crud_type => :read, :column => :c3), 'taa')
148
- fail(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
161
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
149
162
  pass(@model.authorized_for?(:crud_type => :read, :column => :a3), 'tat')
150
- fail(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
151
- fail(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
163
+ miss(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
164
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
152
165
  pass(@model.authorized_for?(:crud_type => :read, :column => :a2), 'tft')
153
166
  pass(@model.authorized_for?(:crud_type => :read, :column => :c1), 'tta')
154
- fail(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
167
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
155
168
  pass(@model.authorized_for?(:crud_type => :read, :column => :a1), 'ttt')
156
169
 
157
170
  ActiveScaffold.set_defaults do |config|
@@ -165,7 +178,7 @@ class ActiveRecordPermissionsTest < MiniTest::Test
165
178
  assert value, "#{message} should pass"
166
179
  end
167
180
 
168
- def fail(value, message = nil)
181
+ def miss(value, message = nil)
169
182
  refute value, "#{message} should fail"
170
183
  end
171
184
  end