aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2014-12-22 18:06:16 -0700
committerSean Griffin <sean@seantheprogrammer.com>2014-12-22 18:06:16 -0700
commitd9d865aa40b29b4b5aba71e9f6108eaab7206b1e (patch)
tree1f79cd684fd9c10d4d76d065be09fd4848ed3cf1
parent8259d795606e3f3333537baadf0d1a37c4fd4fd0 (diff)
parentb26338e83b4249ede5ea1368498b4dbf31b44612 (diff)
downloadrails-d9d865aa40b29b4b5aba71e9f6108eaab7206b1e.tar.gz
rails-d9d865aa40b29b4b5aba71e9f6108eaab7206b1e.tar.bz2
rails-d9d865aa40b29b4b5aba71e9f6108eaab7206b1e.zip
Merge pull request #18156 from claudiob/better-record-identifier-tests
Better tests for AV::RecordIdentifier
-rw-r--r--actionview/test/lib/controller/fake_models.rb12
-rw-r--r--actionview/test/template/record_identifier_test.rb43
2 files changed, 55 insertions, 0 deletions
diff --git a/actionview/test/lib/controller/fake_models.rb b/actionview/test/lib/controller/fake_models.rb
index cb02a56cb4..789b1d198b 100644
--- a/actionview/test/lib/controller/fake_models.rb
+++ b/actionview/test/lib/controller/fake_models.rb
@@ -170,3 +170,15 @@ end
class Car < Struct.new(:color)
end
+
+class Plane
+ attr_reader :to_key
+
+ def model_name
+ OpenStruct.new param_key: 'airplane'
+ end
+
+ def save
+ @to_key = [1]
+ end
+end
diff --git a/actionview/test/template/record_identifier_test.rb b/actionview/test/template/record_identifier_test.rb
index f8ee563469..04898c0b0e 100644
--- a/actionview/test/template/record_identifier_test.rb
+++ b/actionview/test/template/record_identifier_test.rb
@@ -46,3 +46,46 @@ class RecordIdentifierTest < ActiveSupport::TestCase
assert_equal @singular, ActionView::RecordIdentifier.dom_class(@record)
end
end
+
+class RecordIdentifierWithoutActiveModelTest < ActiveSupport::TestCase
+ include ActionView::RecordIdentifier
+
+ def setup
+ @record = Plane.new
+ end
+
+ def test_dom_id_with_new_record
+ assert_equal "new_airplane", dom_id(@record)
+ end
+
+ def test_dom_id_with_new_record_and_prefix
+ assert_equal "custom_prefix_airplane", dom_id(@record, :custom_prefix)
+ end
+
+ def test_dom_id_with_saved_record
+ @record.save
+ assert_equal "airplane_1", dom_id(@record)
+ end
+
+ def test_dom_id_with_prefix
+ @record.save
+ assert_equal "edit_airplane_1", dom_id(@record, :edit)
+ end
+
+ def test_dom_class
+ assert_equal 'airplane', dom_class(@record)
+ end
+
+ def test_dom_class_with_prefix
+ assert_equal "custom_prefix_airplane", dom_class(@record, :custom_prefix)
+ end
+
+ def test_dom_id_as_singleton_method
+ @record.save
+ assert_equal "airplane_1", ActionView::RecordIdentifier.dom_id(@record)
+ end
+
+ def test_dom_class_as_singleton_method
+ assert_equal 'airplane', ActionView::RecordIdentifier.dom_class(@record)
+ end
+end