friendly_id4 4.0.0.pre → 4.0.0.pre3

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.
@@ -1,23 +0,0 @@
1
- # Allow declarative test definitions inside modules.
2
- class Module
3
- def test(name, &block)
4
- define_method("test_#{name.gsub(/[^a-z0-9]/i, "_")}".to_sym, &block)
5
- end
6
- end
7
-
8
- # Use this to create models in your tests, rather than define
9
- # a bunch of static models. This allows for much more
10
- # flexbile and granular tests.
11
- #
12
- # @name The table name - make sure it is unique.
13
- # @args The args that will be passed to +has_friendly_id+.
14
- # @block The block that will be passed to +create_table+.
15
- def make_model(name, *args, &block)
16
- ActiveRecord::Migration.create_table(name, &block)
17
- Class.new(ActiveRecord::Base) do
18
- self.table_name = name
19
- has_friendly_id(*args)
20
- end
21
- end
22
-
23
- require "friendly_id/test/generic"
@@ -1,84 +0,0 @@
1
- module FriendlyId
2
- module Test
3
- # Tests for any model that implements FriendlyId. Any test that tests model
4
- # features should include this module.
5
- module Generic
6
-
7
- def teardown
8
- klass.delete_all
9
- end
10
-
11
- def instance
12
- raise NotImplementedError
13
- end
14
-
15
- def klass
16
- raise NotImplementedError
17
- end
18
-
19
- def other_class
20
- raise NotImplementedError
21
- end
22
-
23
- test "model classes should have a friendly id config" do
24
- assert_not_nil klass.friendly_id_config
25
- end
26
-
27
- test "finds should respect conditions" do
28
- assert_raise ActiveRecord::RecordNotFound do
29
- klass.find(instance.friendly_id, :conditions => "1 = 2")
30
- end
31
- end
32
-
33
- test "instances should have a friendly id" do
34
- assert_not_nil instance.friendly_id
35
- end
36
-
37
- test "instances should be findable by their friendly id" do
38
- assert_equal instance, klass.find(instance.friendly_id)
39
- end
40
-
41
- test "instances should be findable by their numeric id as an integer" do
42
- assert_equal instance, klass.find(instance.id.to_i)
43
- end
44
-
45
- test "instances should be findable by their numeric id as a string" do
46
- assert_equal instance, klass.find(instance.id.to_s)
47
- end
48
-
49
- test "instances should be findable by a numeric friendly_id" do
50
- instance = klass.create! :name => "206"
51
- assert_equal instance, klass.find(instance.friendly_id)
52
- end
53
-
54
- test "to_param should return the friendly_id" do
55
- assert_equal instance.friendly_id, instance.to_param
56
- end
57
-
58
- test "should allow the same friendly_id across models" do
59
- other_instance = other_class.create! :name => instance.name
60
- assert_equal other_instance.friendly_id, instance.friendly_id
61
- end
62
-
63
- test "instances should be findable by themselves" do
64
- assert_equal instance, klass.find(instance)
65
- end
66
-
67
- test "updating record's other values should not change the friendly_id" do
68
- old = instance.friendly_id
69
- instance.save
70
- assert klass.find(old)
71
- end
72
-
73
- test "instances found by a single id should not be read-only" do
74
- assert !klass.find(instance.friendly_id).readonly?, "expected instance not to be readonly"
75
- end
76
-
77
- test "failing finds with unfriendly_id should raise errors normally" do
78
- assert_raise ActiveRecord::RecordNotFound do
79
- klass.find(0)
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,23 +0,0 @@
1
- $VERBOSE = false
2
- require "rubygems"
3
- require "bundler/setup"
4
- require "active_record"
5
- require "active_support"
6
- require "friendly_id"
7
- require "friendly_id/test"
8
- require "test/unit"
9
- require "mocha"
10
-
11
- ActiveRecord::Migration.verbose = false
12
-
13
- # Change the connection args as you see fit to test against different adapters.
14
- ActiveRecord::Base.establish_connection(
15
- :adapter => "sqlite3",
16
- :database => ":memory:"
17
- )
18
-
19
- # If you want to see the ActiveRecord log, invoke the tests using `rake test LOG=true`
20
- if ENV["LOG"]
21
- require "logger"
22
- ActiveRecord::Base.logger = Logger.new($stdout)
23
- end