active_scaffold 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +9 -0
  3. data/app/assets/javascripts/active_scaffold.js.erb +5 -2
  4. data/app/assets/javascripts/jquery/active_scaffold.js +4 -6
  5. data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +16 -14
  6. data/app/assets/javascripts/prototype/active_scaffold.js +0 -5
  7. data/app/assets/stylesheets/active_scaffold.css.scss +1 -1
  8. data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +7 -0
  9. data/lib/active_scaffold.rb +1 -1
  10. data/lib/active_scaffold/actions/update.rb +2 -1
  11. data/lib/active_scaffold/attribute_params.rb +2 -2
  12. data/lib/active_scaffold/bridges/date_picker.rb +1 -1
  13. data/lib/active_scaffold/config/core.rb +0 -2
  14. data/lib/active_scaffold/config/nested.rb +6 -3
  15. data/lib/active_scaffold/constraints.rb +2 -2
  16. data/lib/active_scaffold/data_structures/action_columns.rb +68 -72
  17. data/lib/active_scaffold/data_structures/column.rb +7 -3
  18. data/lib/active_scaffold/data_structures/sorting.rb +2 -1
  19. data/lib/active_scaffold/finder.rb +2 -14
  20. data/lib/active_scaffold/helpers/form_column_helpers.rb +1 -0
  21. data/lib/active_scaffold/helpers/list_column_helpers.rb +1 -1
  22. data/lib/active_scaffold/helpers/pagination_helpers.rb +1 -1
  23. data/lib/active_scaffold/helpers/search_column_helpers.rb +2 -2
  24. data/lib/active_scaffold/helpers/view_helpers.rb +7 -5
  25. data/lib/active_scaffold/tableless.rb +2 -2
  26. data/lib/active_scaffold/version.rb +1 -1
  27. data/test/bridges/bridge_test.rb +22 -33
  28. data/test/bridges/date_picker_test.rb +29 -0
  29. data/test/bridges/paperclip_test.rb +10 -11
  30. data/test/bridges/tiny_mce_test.rb +7 -7
  31. data/test/{bridges/company.rb → company.rb} +14 -13
  32. data/test/config/base_test.rb +14 -12
  33. data/test/config/core_test.rb +59 -53
  34. data/test/config/create_test.rb +56 -54
  35. data/test/config/delete_test.rb +31 -29
  36. data/test/config/field_search_test.rb +45 -43
  37. data/test/config/list_test.rb +119 -117
  38. data/test/config/nested_test.rb +50 -58
  39. data/test/config/search_test.rb +58 -56
  40. data/test/config/show_test.rb +42 -40
  41. data/test/config/subform_test.rb +15 -13
  42. data/test/config/update_test.rb +40 -38
  43. data/test/const_mocker.rb +14 -18
  44. data/test/data_structures/action_columns_test.rb +3 -3
  45. data/test/data_structures/action_link_test.rb +1 -1
  46. data/test/data_structures/action_links_test.rb +3 -3
  47. data/test/data_structures/actions_test.rb +2 -2
  48. data/test/data_structures/association_column_test.rb +5 -6
  49. data/test/data_structures/column_test.rb +8 -4
  50. data/test/data_structures/columns_test.rb +2 -3
  51. data/test/data_structures/error_message_test.rb +2 -2
  52. data/test/data_structures/set_test.rb +2 -3
  53. data/test/data_structures/sorting_test.rb +1 -2
  54. data/test/data_structures/standard_column_test.rb +2 -3
  55. data/test/data_structures/validation_reflection_test.rb +51 -0
  56. data/test/data_structures/virtual_column_test.rb +1 -1
  57. data/test/extensions/active_record_test.rb +2 -3
  58. data/test/extensions/array_test.rb +2 -2
  59. data/test/helpers/form_column_helpers_test.rb +6 -6
  60. data/test/helpers/list_column_helpers_test.rb +4 -1
  61. data/test/helpers/pagination_helpers_test.rb +7 -3
  62. data/test/misc/active_record_permissions_test.rb +1 -1
  63. data/test/misc/attribute_params_test.rb +3 -4
  64. data/test/misc/configurable_test.rb +2 -2
  65. data/test/misc/constraints_test.rb +29 -29
  66. data/test/misc/finder_test.rb +13 -10
  67. data/test/misc/lang_test.rb +1 -1
  68. data/test/mock_app/Rakefile +7 -0
  69. data/test/mock_app/config.ru +4 -0
  70. data/test/mock_app/config/application.rb +11 -0
  71. data/test/mock_app/config/boot.rb +6 -109
  72. data/test/mock_app/config/database.yml +2 -2
  73. data/test/mock_app/config/environment.rb +4 -42
  74. data/test/mock_app/config/environments/development.rb +21 -13
  75. data/test/mock_app/config/environments/production.rb +41 -20
  76. data/test/mock_app/config/environments/test.rb +27 -22
  77. data/test/mock_app/config/initializers/backtrace_silencers.rb +2 -2
  78. data/test/mock_app/config/initializers/inflections.rb +1 -1
  79. data/test/mock_app/config/initializers/secret_token.rb +7 -0
  80. data/test/mock_app/config/initializers/session_store.rb +2 -9
  81. data/test/mock_app/config/initializers/wrap_parameters.rb +14 -0
  82. data/test/mock_app/config/routes.rb +2 -42
  83. data/test/model_stub.rb +2 -3
  84. data/test/test_helper.rb +13 -11
  85. data/vendor/assets/stylesheets/jquery-ui-theme.css.erb +47 -0
  86. data/vendor/assets/stylesheets/jquery-ui.css +2 -36
  87. metadata +92 -103
  88. data/test/bridges/active_scaffold_dependent_protect_test.rb +0 -34
  89. data/test/bridges/unobtrusive_date_picker_test.rb +0 -49
  90. data/test/bridges/validation_reflection_test.rb +0 -57
  91. data/test/mock_app/config/initializers/new_rails_defaults.rb +0 -19
@@ -175,7 +175,7 @@ module ActiveScaffold
175
175
 
176
176
  def condition_value_for_numeric(column, value)
177
177
  return value if value.nil?
178
- value = i18n_number_to_native_format(value) if [:i18n_number, :currency].include?(column.options[:format]) && column.search_ui != :number
178
+ value = column.number_to_native(value) if column.options[:format] && column.search_ui != :number
179
179
  case (column.search_ui || column.column.type)
180
180
  when :integer then value.to_i rescue value ? 1 : 0
181
181
  when :float then value.to_f
@@ -184,18 +184,6 @@ module ActiveScaffold
184
184
  value
185
185
  end
186
186
  end
187
-
188
- def i18n_number_to_native_format(value)
189
- native = '.'
190
- delimiter = I18n.t('number.format.delimiter')
191
- separator = I18n.t('number.format.separator')
192
- return value if value.blank? || !value.is_a?(String)
193
- unless delimiter == native && !value.include?(separator) && value !~ /\.\d{3}$/
194
- value.gsub(/[^0-9\-#{I18n.t('number.format.separator')}]/, '').gsub(I18n.t('number.format.separator'), native)
195
- else
196
- value
197
- end
198
- end
199
187
 
200
188
  def datetime_conversion_for_condition(column)
201
189
  if column.column
@@ -367,7 +355,7 @@ module ActiveScaffold
367
355
  end
368
356
 
369
357
  klass = beginning_of_chain
370
- klass = klass.uniq if find_options[:outer_joins].present?
358
+ klass = klass.where(nil).uniq if find_options[:outer_joins].present? # HACK: call where(nil) because calling uniq on associations (nested scaffolds) send SQL to DB
371
359
  # we build the paginator differently for method- and sql-based sorting
372
360
  if options[:sorting] and options[:sorting].sorts_by_method?
373
361
  pager = ::Paginator.new(count, options[:per_page]) do |offset, per_page|
@@ -119,6 +119,7 @@ module ActiveScaffold
119
119
  url_params = url_params.except(:parent_scaffold, :association, nested.param_name) if nested? && scope
120
120
  url_params[:eid] = params[:eid] if params[:eid]
121
121
  if scope
122
+ url_params[:parent_controller] ||= url_params[:controller]
122
123
  url_params[:controller] = subform_controller.controller_path
123
124
  url_params[:scope] = scope
124
125
  url_params[:parent_id] = params[:parent_id] || params[:id]
@@ -160,7 +160,7 @@ module ActiveScaffold
160
160
  if column.associated_limit == 0
161
161
  size if column.associated_number?
162
162
  else
163
- joined_associated = firsts.join(active_scaffold_config.list.association_join_text)
163
+ joined_associated = firsts.join(h(active_scaffold_config.list.association_join_text)).html_safe
164
164
  joined_associated << " (#{size})" if column.associated_number? and column.associated_limit and value.size > column.associated_limit
165
165
  joined_associated
166
166
  end
@@ -38,7 +38,7 @@ module ActiveScaffold
38
38
  page = current_page.number - offset
39
39
  if page < start_number && page > last_page
40
40
  html << '..' if page > last_page + 1
41
- html << pagination_ajax_link(page, params)
41
+ html << pagination_ajax_link(page, url_options, options)
42
42
  last_page = page
43
43
  end
44
44
  end
@@ -82,7 +82,7 @@ module ActiveScaffold
82
82
  active_scaffold_checkbox_list(column, select_options, associated, options)
83
83
  end
84
84
 
85
- def active_scaffold_search_select(column, html_options)
85
+ def active_scaffold_search_select(column, html_options, options = {})
86
86
  associated = html_options.delete :value
87
87
  if column.association
88
88
  associated = associated.is_a?(Array) ? associated.map(&:to_i) : associated.to_i unless associated.nil?
@@ -95,7 +95,7 @@ module ActiveScaffold
95
95
  end
96
96
  end
97
97
 
98
- options = { :selected => associated }.merge! column.options
98
+ options = options.merge(:selected => associated).merge column.options
99
99
  html_options.merge! column.options[:html_options] || {}
100
100
  if html_options[:multiple]
101
101
  html_options[:name] += '[]'
@@ -235,7 +235,12 @@ module ActiveScaffold
235
235
  url_options = action_link_url_options(link, record)
236
236
  if active_scaffold_config.cache_action_link_urls
237
237
  url = url_for(url_options)
238
- @action_links_urls[link.name_to_cache_link_url] = url unless link.dynamic_parameters.is_a?(Proc)
238
+ model = active_scaffold_config.model
239
+ is_sti_record = record && model.columns_hash.include?(model.inheritance_column) &&
240
+ record[model.inheritance_column].present?
241
+ unless link.dynamic_parameters.is_a?(Proc) || is_sti_record
242
+ @action_links_urls[link.name_to_cache_link_url] = url
243
+ end
239
244
  url
240
245
  else
241
246
  url_for(params_for(url_options))
@@ -339,10 +344,7 @@ module ActiveScaffold
339
344
  html_options[:data][:cancel_refresh] = true if link.refresh_on_close
340
345
  html_options[:data][:keep_open] = true if link.keep_open?
341
346
  end
342
- if link.popup?
343
- html_options[:data][:popup] = true
344
- html_options[:target] = '_blank'
345
- end
347
+ html_options[:target] = '_blank' if link.popup?
346
348
  html_options[:id] = link_id
347
349
  html_options[:remote] = true unless link.page? || link.popup?
348
350
  if link.dhtml_confirm?
@@ -69,10 +69,10 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
69
69
  end
70
70
 
71
71
  def self.execute_simple_calculation(relation, operation, column_name, distinct)
72
- if operation == 'count' && column_name == :all && !distinct
72
+ if operation == 'count' && [relation.klass.primary_key, :all].include?(column_name)
73
73
  find_all(relation).size
74
74
  else
75
- raise "self.execute_simple_calculation must be implemented in a Tableless model to support #{operation} #{column_name} #{' distinct' if distinct} columns"
75
+ raise "self.execute_simple_calculation must be implemented in a Tableless model to support #{operation} #{column_name}#{' distinct' if distinct} columns"
76
76
  end
77
77
  end
78
78
 
@@ -2,7 +2,7 @@ module ActiveScaffold
2
2
  module Version
3
3
  MAJOR = 3
4
4
  MINOR = 3
5
- PATCH = 2
5
+ PATCH = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
@@ -1,9 +1,6 @@
1
- def dbg; require "ruby-debug"; debugger; end;
1
+ require 'test_helper'
2
2
 
3
- require File.join(File.dirname(__FILE__), '../test_helper.rb')
4
-
5
-
6
- class Bridges::BridgeTest < Test::Unit::TestCase
3
+ class BridgeTest < Test::Unit::TestCase
7
4
  def setup
8
5
  @const_store = {}
9
6
  end
@@ -12,36 +9,29 @@ class Bridges::BridgeTest < Test::Unit::TestCase
12
9
  end
13
10
 
14
11
  def test__shouldnt_throw_errors
15
- ActiveScaffold::Bridge.run_all
12
+ ActiveScaffold::Bridges.run_all
16
13
  end
17
14
 
18
15
  def test__cds_bridge
16
+ js, ActiveScaffold.js_framework = ActiveScaffold.js_framework, :prototype
19
17
  ConstMocker.mock("CalendarDateSelect") do |cm|
20
18
  cm.remove
21
19
  assert(! bridge_will_be_installed("CalendarDateSelect"))
22
20
  cm.declare
23
21
  assert(bridge_will_be_installed("CalendarDateSelect"))
24
22
  end
23
+ ActiveScaffold.js_framework = js
25
24
  end
26
25
 
27
26
  def test__file_column_bridge
28
27
  ConstMocker.mock("FileColumn") do |cm|
29
- cm.remove
30
- assert(! bridge_will_be_installed("FileColumn"))
28
+ cm.remove
29
+ assert(! bridge_will_be_installed("FileColumn"))
31
30
  cm.declare
32
31
  assert(bridge_will_be_installed("FileColumn"))
33
32
  end
34
33
  end
35
34
 
36
- def test__dependent_protect_bridge
37
- ConstMocker.mock("DependentProtect") do |cm|
38
- cm.remove
39
- assert(! bridge_will_be_installed("DependentProtect"))
40
- cm.declare
41
- assert(bridge_will_be_installed("DependentProtect"))
42
- end
43
- end
44
-
45
35
  def test__paperclip_bridge
46
36
  ConstMocker.mock("Paperclip") do |cm|
47
37
  cm.remove
@@ -51,22 +41,21 @@ class Bridges::BridgeTest < Test::Unit::TestCase
51
41
  end
52
42
  end
53
43
 
54
- def test__unobtrusive_date_picker_bridge
55
- ConstMocker.mock("UnobtrusiveDatePicker") do |cm|
56
- cm.remove
57
- assert(! bridge_will_be_installed("UnobtrusiveDatePicker"))
58
- cm.declare
59
- assert(bridge_will_be_installed("UnobtrusiveDatePicker"))
44
+ def test__date_picker_bridge
45
+ ConstMocker.mock("Jquery") do |jquery|
46
+ jquery.declare
47
+ ConstMocker.mock("Rails", jquery.const) do |rails|
48
+ rails.declare
49
+ ConstMocker.mock("Ui", jquery.const) do |cm|
50
+ cm.remove
51
+ assert(! bridge_will_be_installed("DatePicker"))
52
+ cm.declare
53
+ assert(bridge_will_be_installed("DatePicker"))
54
+ end
55
+ end
60
56
  end
61
57
  end
62
58
 
63
- def test__validation_reflection_bridge
64
- class << ActiveRecord::Base; undef_method :reflect_on_validations_for; end rescue nil
65
- assert(! bridge_will_be_installed("ValidationReflection"))
66
- class << ActiveRecord::Base; define_method :reflect_on_validations_for, lambda{}; end
67
- assert(bridge_will_be_installed("ValidationReflection"))
68
- end
69
-
70
59
  def test__semantic_attributes_bridge
71
60
  ConstMocker.mock("SemanticAttributes") do |cm|
72
61
  cm.remove
@@ -79,12 +68,12 @@ class Bridges::BridgeTest < Test::Unit::TestCase
79
68
  protected
80
69
 
81
70
  def find_bridge(name)
82
- ActiveScaffold::Bridge.bridges.find{|b| b.name.to_s==name.to_s}
71
+ ActiveScaffold::Bridges[name.to_s.underscore.to_sym]
83
72
  end
84
73
 
85
74
  def bridge_will_be_installed(name)
86
75
  assert bridge=find_bridge(name), "No bridge found matching #{name}"
87
76
 
88
- bridge.instance_variable_get("@install_if").call
77
+ bridge.install?
89
78
  end
90
- end
79
+ end
@@ -0,0 +1,29 @@
1
+ require 'test_helper'
2
+ require File.join(File.dirname(__FILE__), '../../lib/active_scaffold/bridges/date_picker/ext')
3
+ #require File.join(File.dirname(__FILE__), '../../lib/active_scaffold/bridges/date_picker/helper')
4
+
5
+ class DatePickerTest < ActionView::TestCase
6
+ include ActiveScaffold::Helpers::ViewHelpers
7
+ include ActiveScaffold::Bridges::DatePicker::Helper::FormColumnHelpers
8
+ include ActiveScaffold::Bridges::DatePicker::Helper::DatepickerColumnHelpers
9
+
10
+ def setup
11
+ @controller.class.class_eval do
12
+ include ActiveScaffold::Finder
13
+ end
14
+ end
15
+
16
+ def test_set_form_ui
17
+ config = ActiveScaffold::Config::Core.new(:company)
18
+ assert_equal nil, config.columns[:name].form_ui, 'form_ui for name'
19
+ assert_equal :date_picker, config.columns[:date].form_ui, 'form_ui for date'
20
+ assert_equal :datetime_picker, config.columns[:datetime].form_ui, 'form_ui for datetime'
21
+ end
22
+
23
+ def test_form_ui
24
+ config = ActiveScaffold::Config::Core.new(:company)
25
+ @record = Company.new
26
+ assert active_scaffold_input_date_picker(config.columns[:date], :name => 'record[date]', :id => 'record_date')
27
+ assert active_scaffold_input_date_picker(config.columns[:datetime], :name => 'record[datetime]', :id => 'record_datetime')
28
+ end
29
+ end
@@ -1,12 +1,11 @@
1
- require 'test/unit'
2
- require File.join(File.dirname(__FILE__), 'company')
3
- require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge')
4
- require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge_helpers')
5
- require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/form_ui')
6
- require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/list_ui')
1
+ require 'test_helper'
2
+ require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/paperclip_bridge', __FILE__)
3
+ require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers', __FILE__)
4
+ require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/form_ui', __FILE__)
5
+ require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/list_ui', __FILE__)
7
6
 
8
7
  class PaperclipCore < ActiveScaffold::Config::Core
9
- include ActiveScaffold::PaperclipBridge
8
+ include ActiveScaffold::Bridges::Paperclip::PaperclipBridge
10
9
  end
11
10
 
12
11
  class PaperclipTest < ActionView::TestCase
@@ -49,10 +48,10 @@ class PaperclipTest < ActionView::TestCase
49
48
  company = Company.new
50
49
 
51
50
  company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
52
- assert_dom_equal '<a href="/system/file" onclick="window.open(this.href);return false;">file</a>', active_scaffold_column_paperclip(company, config.columns[:logo])
51
+ assert_dom_equal '<a href="/system/file" data-popup="true" target="_blank">file</a>', active_scaffold_column_paperclip(company, config.columns[:logo])
53
52
 
54
53
  company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => {:thumbnail => '40x40'}))
55
- assert_dom_equal '<a href="/system/file" onclick="window.open(this.href);return false;"><img src="/system/file" border="0" alt="File"/></a>', active_scaffold_column_paperclip(company, config.columns[:logo])
54
+ assert_dom_equal '<a href="/system/file" data-popup="true" target="_blank"><img src="/system/file" border="0" alt="File"/></a>', active_scaffold_column_paperclip(company, config.columns[:logo])
56
55
  end
57
56
 
58
57
  def test_form_ui
@@ -60,9 +59,9 @@ class PaperclipTest < ActionView::TestCase
60
59
  @record = Company.new
61
60
 
62
61
  @record.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
63
- assert_dom_equal '<div><a href="/system/file" onclick="window.open(this.href);return false;">file</a>|<a href="#" onclick="$(this).next().value=\'true\'; $(this).up().hide().next().show(); return false;">Remove or Replace file</a><input name="record[delete_logo]" type="hidden" id="record_delete_logo" value="false" /></div><div style="display: none"><input name="record[logo]" size="30" type="file" id="record_logo" /></div>', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
62
+ assert_dom_equal '<div><a href="/system/file" data-popup="true" target="_blank">file</a> | <input name="record[delete_logo]" type="hidden" id="record_delete_logo" value="false" /><a href="#" onclick="$(this).prev().val(&#x27;true&#x27;); $(this).parent().hide().next().show(); return false;">Remove or Replace file</a></div><div style="display: none"><input name="record[logo]" class="text-input" autocomplete="off" type="file" id="record_logo" /></div>', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
64
63
 
65
64
  @record.stubs(:logo).returns(stub(:file? => false))
66
- assert_dom_equal '<input name="record[logo]" size="30" type="file" id="record_logo" />', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
65
+ assert_dom_equal '<input name="record[logo]" class="text-input" autocomplete="off" type="file" id="record_logo" />', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
67
66
  end
68
67
  end
@@ -1,21 +1,21 @@
1
- require 'test/unit'
2
- require File.join(File.dirname(__FILE__), 'company')
3
- require File.join(File.dirname(__FILE__), '../../lib/bridges/tiny_mce/lib/tiny_mce_bridge')
1
+ require 'test_helper'
2
+ require File.join(File.dirname(__FILE__), '../../lib/active_scaffold/bridges/tiny_mce/helpers')
4
3
 
5
4
  class TinyMceTest < ActionView::TestCase
6
5
  include ActiveScaffold::Helpers::ViewHelpers
7
- include ActiveScaffold::TinyMceBridge
6
+ include ActiveScaffold::Bridges::TinyMce::Helpers
8
7
 
9
8
  def test_includes
10
- assert_match /.*<script type="text\/javascript">.*ActiveScaffold\.ActionLink\.Abstract\.prototype\.close = function\(\).*<\/script>.*/m, active_scaffold_includes
9
+ ActiveScaffold::Bridges::TinyMce.expects(:install?).returns(true)
10
+ assert ActiveScaffold::Bridges.all_javascripts.include?("tinymce-jquery")
11
11
  end
12
12
 
13
13
  def test_form_ui
14
- config = PaperclipCore.new(:company)
14
+ config = ActiveScaffold::Config::Core.new(:company)
15
15
  @record = Company.new
16
16
  self.expects(:request).returns(stub(:xhr? => true))
17
17
 
18
- assert_dom_equal "<textarea name=\"record[name]\" class=\"name-input mceEditor\" id=\"record_name\"></textarea><script type=\"text/javascript\">\n//<![CDATA[\ntinyMCE.execCommand('mceAddControl', false, 'record_name');\n//]]>\n</script>", active_scaffold_input_text_editor(config.columns[:name], :name => 'record[name]', :id => 'record_name', :class => 'name-input')
18
+ assert_dom_equal "<textarea name=\"record[name]\" class=\"name-input mceEditor\" id=\"record_name\">\n</textarea>\n<script type=\"text/javascript\">\n//<![CDATA[\ntinyMCE.settings = {\"theme\":\"simple\"};tinyMCE.execCommand('mceAddControl', false, 'record_name');\n//]]>\n</script>", active_scaffold_input_text_editor(config.columns[:name], :name => 'record[name]', :id => 'record_name', :class => 'name-input', :object => @record)
19
19
  end
20
20
 
21
21
  protected
@@ -1,14 +1,10 @@
1
- require 'rubygems'
2
- require 'active_record'
3
- require 'active_record/reflection'
4
- require File.join(File.dirname(__FILE__), '../../lib/bridges/dependent_protect/lib/dependent_protect_bridge')
5
-
6
- # Mocking everything necesary to test the plugin.
7
- class Company
1
+ class Company < ActiveRecord::Base
8
2
  def initialize(with_or_without = nil)
9
3
  @with_companies = with_or_without == :with_companies
10
4
  @with_company = with_or_without == :with_company
11
5
  @with_main_company = with_or_without == :with_main_company
6
+ @attributes = {}
7
+ @attributes_cache = {}
12
8
  end
13
9
 
14
10
  def self.columns_hash
@@ -44,9 +40,6 @@ class Company
44
40
  @@before = s
45
41
  end
46
42
 
47
- include ActiveRecord::Reflection
48
- include DependentProtectSecurity
49
-
50
43
  def self.has_many(association_id, options = {})
51
44
  reflection = create_reflection(:has_many, association_id, options, self)
52
45
  end
@@ -56,9 +49,9 @@ class Company
56
49
  def self.belongs_to(association_id, options = {})
57
50
  reflection = create_reflection(:belongs_to, association_id, options, self)
58
51
  end
59
- has_many :companies, :dependent => :protect
60
- has_one :company, :dependent => :protect
61
- belongs_to :main_company, :dependent => :protect, :class_name => 'Company'
52
+ has_many :companies
53
+ has_one :company
54
+ belongs_to :main_company, :class_name => 'Company'
62
55
 
63
56
  def companies
64
57
  if @with_companies
@@ -78,4 +71,12 @@ class Company
78
71
 
79
72
  def name
80
73
  end
74
+
75
+ def date
76
+ Date.today
77
+ end
78
+
79
+ def datetime
80
+ Time.now
81
+ end
81
82
  end
@@ -1,15 +1,17 @@
1
- require File.join(File.dirname(__FILE__), '../test_helper.rb')
1
+ require 'test_helper'
2
2
 
3
- class Config::BaseTest < Test::Unit::TestCase
4
- def setup
5
- @base = ActiveScaffold::Config::Base.new(ActiveScaffold::Config::Core.new(:model_stub))
6
- end
7
-
8
- def test_formats
9
- assert_equal [], @base.formats
10
- @base.formats << :pdf
11
- assert_equal [:pdf], @base.formats
12
- @base.formats = [:html]
13
- assert_equal [:html], @base.formats
3
+ module Config
4
+ class BaseTest < Test::Unit::TestCase
5
+ def setup
6
+ @base = ActiveScaffold::Config::Base.new(ActiveScaffold::Config::Core.new(:model_stub))
7
+ end
8
+
9
+ def test_formats
10
+ assert_equal [], @base.formats
11
+ @base.formats << :pdf
12
+ assert_equal [:pdf], @base.formats
13
+ @base.formats = [:html]
14
+ assert_equal [:html], @base.formats
15
+ end
14
16
  end
15
17
  end
@@ -1,58 +1,64 @@
1
- require File.join(File.dirname(__FILE__), '../test_helper.rb')
1
+ require 'test_helper'
2
2
 
3
- class Config::CoreTest < Test::Unit::TestCase
4
- def setup
5
- @config = ActiveScaffold::Config::Core.new :model_stub
6
- end
7
-
8
- def test_default_options
9
- assert !@config.add_sti_create_links?
10
- assert !@config.sti_children
11
- assert_equal [:create, :list, :search, :update, :delete, :show, :nested, :subform], @config.actions.to_a
12
- assert_equal :default, @config.frontend
13
- assert_equal :default, @config.theme
14
- assert_equal 'ModelStub', @config.label(:count => 1)
15
- assert_equal 'ModelStubs', @config.label
16
- end
17
-
18
- def test_add_sti_children
19
- @config.sti_create_links = true
20
- assert !@config.add_sti_create_links?
21
- @config.sti_children = [:a]
22
- assert @config.add_sti_create_links?
23
- end
24
-
25
- def test_sti_children
26
- @config.sti_children = [:a]
27
- assert_equal [:a], @config.sti_children
28
- end
29
-
30
- def test_actions
31
- assert @config.actions.include?(:create)
32
- @config.actions = [:list]
33
- assert !@config.actions.include?(:create)
34
- assert_equal [:list], @config.actions.to_a
35
- end
36
-
37
- def test_form_ui_in_sti
38
- @config.columns << :type
3
+ module Config
4
+ class CoreTest < Test::Unit::TestCase
5
+ class ModelStubsController < ActionController::Base; end
6
+ def setup
7
+ @config = ActiveScaffold::Config::Core.new :model_stub
8
+ ModelStubsController.instance_variable_set :@active_scaffold_config, @config
9
+ end
39
10
 
40
- @config.sti_children = [:model_stub]
41
- @config._configure_sti
42
- assert_equal :select, @config.columns[:type].form_ui
43
- assert_equal [['Modelstub', 'ModelStub']], @config.columns[:type].options[:options]
11
+ def test_default_options
12
+ assert !@config.add_sti_create_links?
13
+ assert !@config.sti_children
14
+ assert_equal [:create, :list, :search, :update, :delete, :show, :nested, :subform], @config.actions.to_a
15
+ assert_equal :default, @config.frontend
16
+ assert_equal :default, @config.theme
17
+ assert_equal 'Model stub', @config.label(:count => 1)
18
+ assert_equal 'ModelStubs', @config.label
19
+ end
44
20
 
45
- @config.columns[:type].form_ui = nil
46
- @config.sti_create_links = true
47
- @config._configure_sti
48
- assert_equal :hidden, @config.columns[:type].form_ui
49
- end
50
-
51
- def test_sti_children_links
52
- @config.sti_children = [:model_stub]
53
- @config.sti_create_links = true
54
- @config.action_links.add @config.create.link
55
- @config._add_sti_create_links
56
- assert_equal 'Create Modelstub', @config.action_links[:new].label
21
+ def test_add_sti_children
22
+ @config.sti_create_links = true
23
+ assert !@config.add_sti_create_links?
24
+ @config.sti_children = [:a]
25
+ assert @config.add_sti_create_links?
26
+ end
27
+
28
+ def test_sti_children
29
+ @config.sti_children = [:a]
30
+ assert_equal [:a], @config.sti_children
31
+ end
32
+
33
+ def test_actions
34
+ assert @config.actions.include?(:create)
35
+ @config.actions = [:list]
36
+ assert !@config.actions.include?(:create)
37
+ assert_equal [:list], @config.actions.to_a
38
+ end
39
+
40
+ def test_form_ui_in_sti
41
+ @config.columns << :type
42
+
43
+ @config.sti_create_links = false
44
+ @config.sti_children = [:model_stub]
45
+ @config._configure_sti
46
+ assert_equal :select, @config.columns[:type].form_ui
47
+ assert_equal [['Model stub', 'ModelStub']], @config.columns[:type].options[:options]
48
+
49
+ @config.columns[:type].form_ui = nil
50
+ @config.sti_create_links = true
51
+ @config._configure_sti
52
+ assert_equal :hidden, @config.columns[:type].form_ui
53
+ end
54
+
55
+ def test_sti_children_links
56
+ @config.sti_children = [:model_stub]
57
+ @config.sti_create_links = true
58
+ @config.action_links.add @config.create.link
59
+ ModelStubsController.send(:_add_sti_create_links)
60
+ assert_equal 'Create Model stub', @config.action_links[:new].label
61
+ assert_equal 'config/core_test/model_stubs', @config.action_links[:new].parameters[:parent_sti]
62
+ end
57
63
  end
58
64
  end