typus 3.0.11 → 3.0.12

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 (96) hide show
  1. data/README.md +4 -1
  2. data/app/helpers/admin/relationships_helper.rb +2 -2
  3. data/app/views/admin/dashboard/_applications.html.erb +1 -1
  4. data/app/views/admin/helpers/resources/_errors.html.erb +1 -1
  5. data/app/views/admin/helpers/sidebar/_sidebar.html.erb +1 -1
  6. data/app/views/admin/resources/index.html.erb +2 -2
  7. data/app/views/admin/templates/_has_n.html.erb +1 -1
  8. data/app/views/admin/templates/_has_one.html.erb +1 -1
  9. data/config/locales/typus.ca.yml +1 -1
  10. data/config/locales/typus.de.models.yml +6 -5
  11. data/config/locales/typus.de.yml +39 -36
  12. data/config/locales/typus.el.yml +1 -1
  13. data/config/locales/typus.es.yml +1 -1
  14. data/config/locales/typus.fr.yml +1 -1
  15. data/config/locales/typus.hu.yml +1 -1
  16. data/config/locales/typus.locale.yml.template +1 -1
  17. data/config/locales/typus.pt-BR.yml +1 -1
  18. data/config/locales/typus.pt-PT.yml +1 -1
  19. data/config/locales/typus.ru.yml +1 -1
  20. data/config/locales/typus.zh-CN.yml +1 -1
  21. data/lib/typus/version.rb +1 -1
  22. data/typus.gemspec +7 -4
  23. metadata +16 -164
  24. data/test/app/controllers/admin/account_controller_test.rb +0 -106
  25. data/test/app/controllers/admin/assets_controller_test.rb +0 -156
  26. data/test/app/controllers/admin/base_controller_test.rb +0 -41
  27. data/test/app/controllers/admin/birds_controller_test.rb +0 -42
  28. data/test/app/controllers/admin/cases_controller_test.rb +0 -21
  29. data/test/app/controllers/admin/categories_controller_test.rb +0 -134
  30. data/test/app/controllers/admin/comments_controller_test.rb +0 -79
  31. data/test/app/controllers/admin/dashboard_controller_test.rb +0 -162
  32. data/test/app/controllers/admin/image_holders_controller_test.rb +0 -75
  33. data/test/app/controllers/admin/invoices_controller_test.rb +0 -78
  34. data/test/app/controllers/admin/orders_controller_test.rb +0 -18
  35. data/test/app/controllers/admin/pages_controller_test.rb +0 -37
  36. data/test/app/controllers/admin/posts_controller_test.rb +0 -770
  37. data/test/app/controllers/admin/projects_controller_test.rb +0 -52
  38. data/test/app/controllers/admin/session_controller_test.rb +0 -92
  39. data/test/app/controllers/admin/status_controller_test.rb +0 -54
  40. data/test/app/controllers/admin/typus_users_controller_test.rb +0 -156
  41. data/test/app/controllers/admin/users_controller_test.rb +0 -106
  42. data/test/app/controllers/admin/views_controller_test.rb +0 -36
  43. data/test/app/helpers/admin/base_helper_test.rb +0 -83
  44. data/test/app/helpers/admin/dashboard_helper_test.rb +0 -32
  45. data/test/app/helpers/admin/file_preview_helper_test.rb +0 -90
  46. data/test/app/helpers/admin/filters_helper_test.rb +0 -166
  47. data/test/app/helpers/admin/form_helper_test.rb +0 -126
  48. data/test/app/helpers/admin/list_helper_test.rb +0 -76
  49. data/test/app/helpers/admin/relationships_helper_test.rb +0 -19
  50. data/test/app/helpers/admin/resources_helper_test.rb +0 -46
  51. data/test/app/helpers/admin/search_helper_test.rb +0 -60
  52. data/test/app/helpers/admin/sidebar_helper_test.rb +0 -34
  53. data/test/app/helpers/admin/table_helper_test.rb +0 -241
  54. data/test/app/mailers/admin/mailer_test.rb +0 -32
  55. data/test/app/models/admin_user_test.rb +0 -5
  56. data/test/app/models/typus_user_roles_test.rb +0 -125
  57. data/test/app/models/typus_user_test.rb +0 -228
  58. data/test/config/routes_test.rb +0 -29
  59. data/test/factories.rb +0 -122
  60. data/test/fixtures/config/broken/application.yml +0 -68
  61. data/test/fixtures/config/broken/application_roles.yml +0 -20
  62. data/test/fixtures/config/broken/empty.yml +0 -0
  63. data/test/fixtures/config/broken/empty_roles.yml +0 -0
  64. data/test/fixtures/config/broken/undefined.yml +0 -3
  65. data/test/fixtures/config/broken/undefined_roles.yml +0 -6
  66. data/test/fixtures/config/default/typus.yml +0 -13
  67. data/test/fixtures/config/default/typus_roles.yml +0 -2
  68. data/test/fixtures/config/empty/empty_01.yml +0 -0
  69. data/test/fixtures/config/empty/empty_01_roles.yml +0 -0
  70. data/test/fixtures/config/empty/empty_02.yml +0 -0
  71. data/test/fixtures/config/empty/empty_02_roles.yml +0 -0
  72. data/test/fixtures/config/locales/es.yml +0 -10
  73. data/test/fixtures/config/namespaced/application.yml +0 -5
  74. data/test/fixtures/config/namespaced/application_roles.yml +0 -2
  75. data/test/fixtures/config/ordered/001_roles.yml +0 -2
  76. data/test/fixtures/config/ordered/002_roles.yml +0 -2
  77. data/test/fixtures/config/unordered/app_one_roles.yml +0 -2
  78. data/test/fixtures/config/unordered/app_two_roles.yml +0 -2
  79. data/test/lib/support/active_record_test.rb +0 -174
  80. data/test/lib/support/fake_user_test.rb +0 -63
  81. data/test/lib/support/hash_test.rb +0 -29
  82. data/test/lib/support/object_test.rb +0 -17
  83. data/test/lib/support/string_test.rb +0 -98
  84. data/test/lib/typus/configuration_test.rb +0 -46
  85. data/test/lib/typus/controller/actions_test.rb +0 -141
  86. data/test/lib/typus/controller/associations_test.rb +0 -7
  87. data/test/lib/typus/controller/autocomplete_test.rb +0 -7
  88. data/test/lib/typus/controller/filters_test.rb +0 -73
  89. data/test/lib/typus/controller/format_test.rb +0 -7
  90. data/test/lib/typus/i18n_test.rb +0 -9
  91. data/test/lib/typus/orm/active_record/class_methods_test.rb +0 -390
  92. data/test/lib/typus/orm/active_record/search_test.rb +0 -330
  93. data/test/lib/typus/regex_test.rb +0 -53
  94. data/test/lib/typus/resources_test.rb +0 -41
  95. data/test/lib/typus_test.rb +0 -142
  96. data/test/test_helper.rb +0 -15
@@ -1,76 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::ListHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::ListHelper
6
-
7
- def render(*args); args; end
8
-
9
- context "resources_actions" do
10
-
11
- should "return a default value which is an empty array" do
12
- assert resources_actions.empty?
13
- end
14
-
15
- should "return a predefined value" do
16
- @resources_actions = "mock"
17
- assert_equal "mock", resources_actions
18
- end
19
-
20
- end
21
-
22
- context "list_actions" do
23
-
24
- should "be empty" do
25
- assert list_actions.empty?
26
- end
27
-
28
- should "not include actions that a role cannot perform" do
29
- @resource = mock
30
- @resource.stubs(:name).returns("resource")
31
-
32
- self.stubs(:link_to).returns("some_link")
33
- sample_action = ["a body", {:action => :some_action}, {}]
34
- self.stubs(:resources_actions).returns([sample_action] * 3)
35
-
36
- admin_user = mock
37
- admin_user.stubs(:can?).returns(true, false, true)
38
- self.stubs(:admin_user).returns(admin_user)
39
- self.stubs(:params).returns({:action => 'some_other_action'})
40
-
41
- results = list_actions.split("/")
42
- assert_equal 2, results.size
43
- end
44
-
45
- should_eventually "return an array with our custom actions"
46
-
47
- end
48
-
49
- context "build_list" do
50
-
51
- setup do
52
- @model = TypusUser
53
- @fields = %w( email role status )
54
- @items = TypusUser.all
55
- @resource = "typus_users"
56
- end
57
-
58
- should "return a table" do
59
- expected = [ "admin/typus_users/list", { :items => [] } ]
60
- output = build_list(@model, @fields, @items, @resource)
61
- assert_equal expected, output
62
- end
63
-
64
- should "return a template" do
65
- self.stubs(:render).returns("a_template")
66
- File.stubs(:exist?).returns(true)
67
-
68
- expected = "a_template"
69
- output = build_list(@model, @fields, @items, @resource)
70
-
71
- assert_equal expected, output
72
- end
73
-
74
- end
75
-
76
- end
@@ -1,19 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::RelationshipsHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::RelationshipsHelper
6
-
7
- should_eventually "test setup_relationship"
8
- should_eventually "test typus_form_has_many"
9
- should_eventually "test typus_form_has_and_belongs_to_many"
10
- should_eventually "test build_pagination"
11
- should_eventually "test build_relate_form"
12
- should_eventually "test build_relationship_table"
13
- should_eventually "test build_add_new"
14
- should_eventually "test set_condition"
15
- should_eventually "test set_conditions"
16
- should_eventually "test typus_form_has_one"
17
- should_eventually "test typus_belongs_to_field"
18
-
19
- end
@@ -1,46 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::ResourcesHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::ResourcesHelper
6
-
7
- include ActionView::Helpers::UrlHelper
8
- include ActionView::Helpers::TagHelper
9
-
10
- def render(*args); args; end
11
-
12
- context "display_link_to_previous" do
13
-
14
- setup do
15
- @resource = Comment
16
- end
17
-
18
- should "set an url to new when not resource_id is passed" do
19
- params = { :resource => "Post" }
20
-
21
- expected = ["admin/helpers/resources/display_link_to_previous",
22
- {:body=>"Cancel adding a new comment?", :url=>{:controller=>"/admin/posts", :action => 'new'}}]
23
-
24
- assert_equal expected, display_link_to_previous(params)
25
- end
26
-
27
- should "set an url to edit when resource_id is passed" do
28
- @post = Factory(:post)
29
- params = { :resource => "Post", :resource_id => @post.id }
30
-
31
- expected = ["admin/helpers/resources/display_link_to_previous",
32
- {:body=>"Cancel adding a new comment?", :url=>{:controller=>"/admin/posts", :action => 'edit', :id => @post.id}}]
33
-
34
- assert_equal expected, display_link_to_previous(params)
35
- end
36
-
37
- should "return nil if no resource is passed" do
38
- params = { :action => "edit" }
39
- self.expects(:params).at_least_once.returns(params)
40
-
41
- assert_nil display_link_to_previous
42
- end
43
-
44
- end
45
-
46
- end
@@ -1,60 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "test_helper"
4
-
5
- class Admin::SearchHelperTest < ActiveSupport::TestCase
6
-
7
- include Admin::SearchHelper
8
-
9
- def render(*args); args; end
10
-
11
- context "search" do
12
-
13
- should "reject controller and action params" do
14
- parameters = {"controller"=>"admin/posts", "action"=>"index"}
15
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
16
- assert_equal expected, search(Entry, parameters)
17
- end
18
-
19
- # Why do you need the pagination page for a new search?
20
- should "reject the page param" do
21
- parameters = {"page"=>"1"}
22
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
23
- assert_equal expected, search(Entry, parameters)
24
- end
25
-
26
- # TODO: I want to think about it ...
27
- should "reject locale params" do
28
- parameters = {"locale"=>"jp"}
29
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
30
- assert_equal expected, search(Entry, parameters)
31
- end
32
-
33
- # TODO: I want to think about it ...
34
- should "reject to sort_order and order_by" do
35
- parameters = {"sort_order"=>"asc", "order_by"=>"title"}
36
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
37
- assert_equal expected, search(Entry, parameters)
38
- end
39
-
40
- should "reject the utf8 param because the form already contains it" do
41
- parameters = {"utf8"=>"✓"}
42
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
43
- assert_equal expected, search(Entry, parameters)
44
- end
45
-
46
- should "reject the search param because the form already contains it" do
47
- parameters = {"search"=>"Chunky Bacon"}
48
- expected = ["admin/helpers/search/search", {:hidden_filters => {}}]
49
- assert_equal expected, search(Entry, parameters)
50
- end
51
-
52
- should "not reject applied filters" do
53
- parameters = {"published"=>"true", "user_id"=>"1"}
54
- expected = ["admin/helpers/search/search", {:hidden_filters=>{"published"=>"true", "user_id"=>"1"}}]
55
- assert_equal expected, search(Entry, parameters)
56
- end
57
-
58
- end
59
-
60
- end
@@ -1,34 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "test_helper"
4
-
5
- class Admin::SidebarHelperTest < ActiveSupport::TestCase
6
-
7
- include Admin::SidebarHelper
8
-
9
- include ActionView::Helpers::UrlHelper
10
- include ActionView::Helpers::TagHelper
11
- include ActionView::Helpers::FormTagHelper
12
-
13
- def render(*args); args; end
14
- def link_to(*args); args; end
15
-
16
- setup do
17
- default_url_options[:host] = 'test.host'
18
- end
19
-
20
- context "export" do
21
-
22
- should "return array with expected values" do
23
- params = { :controller => '/admin/posts', :action => 'index' }
24
-
25
- output = export(Post , params)
26
- expected = [["Export as CSV", { :action => "index", :format => "csv", :controller => "/admin/posts" }],
27
- ["Export as XML", { :action => "index", :format => "xml", :controller => "/admin/posts" }]]
28
-
29
- assert_equal expected, output
30
- end
31
-
32
- end
33
-
34
- end
@@ -1,241 +0,0 @@
1
- require "test_helper"
2
-
3
- class FakeController
4
- attr_accessor :request
5
-
6
- def config
7
- @config ||= ActiveSupport::InheritableOptions.new(ActionController::Base.config)
8
- end
9
- end
10
-
11
- class Admin::TableHelperTest < ActiveSupport::TestCase
12
-
13
- include Admin::TableHelper
14
-
15
- include ActionView::Helpers::UrlHelper
16
- include ActionView::Helpers::TagHelper
17
- include ActionView::Helpers::TextHelper
18
- include ActionView::Helpers::RawOutputHelper
19
-
20
- include ActionView::Context
21
-
22
- include Rails.application.routes.url_helpers
23
-
24
- def render(*args); args; end
25
- def params; {} end
26
- def admin_user; end
27
-
28
- setup do
29
- default_url_options[:host] = "test.host"
30
- self.stubs(:controller).returns(FakeController.new)
31
- end
32
-
33
- context "table_header" do
34
-
35
- should "work" do
36
- params = { :controller => "/admin/typus_users", :action => "index" }
37
- fields = TypusUser.typus_fields_for(:list)
38
-
39
- expected = [ %(<a href="/admin/typus_users?order_by=email">Email</a>),
40
- %(<a href="/admin/typus_users?order_by=role">Role</a>),
41
- %(<a href="/admin/typus_users?order_by=status">Status</a>) ]
42
-
43
- assert_equal expected, table_header(TypusUser, fields, params)
44
- end
45
-
46
- should "work with params" do
47
- params = { :controller => "/admin/typus_users", :action => "index", :search => "admin" }
48
- fields = TypusUser.typus_fields_for(:list)
49
-
50
- expected = [ %(<a href="/admin/typus_users?order_by=email&amp;search=admin">Email</a>),
51
- %(<a href="/admin/typus_users?order_by=role&amp;search=admin">Role</a>),
52
- %(<a href="/admin/typus_users?order_by=status&amp;search=admin">Status</a>) ]
53
-
54
- assert_equal expected, table_header(TypusUser, fields, params)
55
- end
56
-
57
- end
58
-
59
- context "table_actions" do
60
- setup do
61
- admin_user = mock
62
- admin_user.stubs(:can?).returns(true)
63
- self.stubs(:admin_user).returns(admin_user)
64
- self.stubs(:params).returns({:controller => 'admin/comments', :action => 'some_other_action'})
65
- end
66
-
67
- should "work" do
68
- item = Factory(:comment)
69
- @resource_actions = [["Show", {:action => :show}, {}]]
70
- expected = %Q(<a href="/admin/comments/show/#{item.id}">Show</a>)
71
-
72
- assert_equal expected, table_actions(Comment, item, nil)
73
- end
74
-
75
- should "work with conditions" do
76
- item = Factory(:comment, :id => 1)
77
- proc1 = Proc.new {|item| item.id != 1}
78
- @resource_actions = [["Show", {:action => :show}, {}, proc1], ["Edit", {:action => :edit}, {}]]
79
- expected = %Q(<a href="/admin/comments/edit/#{item.id}">Edit</a>)
80
-
81
- assert_equal expected, table_actions(Comment, item, nil)
82
- end
83
- end
84
-
85
- context "resource_actions" do
86
-
87
- should "return a default value which is an empty array" do
88
- assert resource_actions.empty?
89
- end
90
-
91
- should "return a predefined value" do
92
- @resource_actions = "mock"
93
- assert_equal "mock", resource_actions
94
- end
95
-
96
- end
97
-
98
- context "table_belongs_to_field" do
99
-
100
- should "work without associated model" do
101
- comment = Factory(:comment, :post => nil)
102
- assert_equal "&mdash;", table_belongs_to_field("post", comment)
103
- end
104
-
105
- should "work with associated model when user has access" do
106
- admin_user.expects(:can?).returns(true)
107
- comment = Factory(:comment)
108
- post = comment.post
109
- assert_equal %(<a href="/admin/posts/edit/#{post.id}">#{post.to_label}</a>), table_belongs_to_field("post", comment)
110
- end
111
-
112
- should "work with associated model when user does not have access" do
113
- admin_user.expects(:can?).returns(false)
114
- comment = Factory(:comment)
115
- post = comment.post
116
- assert_equal post.to_label, table_belongs_to_field("post", comment)
117
- end
118
-
119
- end
120
-
121
- should "test_table_has_and_belongs_to_many_field" do
122
- post = Factory(:post)
123
- post.comments << Factory(:comment, :name => "John")
124
- post.comments << Factory(:comment, :name => "Jack")
125
- assert_equal "John, Jack", table_has_and_belongs_to_many_field("comments", post)
126
- end
127
-
128
- context "table_string_field" do
129
-
130
- should "work" do
131
- post = Factory(:post)
132
- assert_equal post.title, table_string_field(:title, post)
133
- end
134
-
135
- should "work when attribute is empty" do
136
- post = Factory(:post)
137
- post.title = ""
138
- assert_equal "&mdash;", table_string_field(:title, post)
139
- end
140
-
141
- end
142
-
143
- context "table_integer_field" do
144
-
145
- should "work" do
146
- post = Factory(:post)
147
- assert_equal post.id, table_integer_field(:id, post)
148
- end
149
-
150
- should "work when attribute is empty" do
151
- post = Factory(:post)
152
- post.id = nil
153
- assert_equal "&mdash;", table_integer_field(:id, post)
154
- end
155
-
156
- end
157
-
158
- context "table_tree_field" do
159
-
160
- should "work when no parent" do
161
- page = Factory(:page)
162
- assert_equal "&mdash;", table_tree_field("title", page)
163
- end
164
-
165
- should "work when parent" do
166
- parent = Factory(:page)
167
- page = Factory(:page, :parent => parent)
168
- assert_equal parent.to_label, table_tree_field("title", page)
169
- end
170
-
171
- end
172
-
173
- should "test_table_datetime_field" do
174
- post = Factory(:post)
175
- assert_equal post.created_at.strftime("%d %b %H:%M"), table_datetime_field(:created_at, post)
176
- end
177
-
178
- context "table_boolean_field" do
179
-
180
- should "work when default status is true" do
181
- post = Factory(:typus_user)
182
- expected = %(<a href="/admin/typus_users/toggle/#{post.id}?field=status" data-confirm="Change status?">Active</a>)
183
- assert_equal expected, table_boolean_field("status", post)
184
- end
185
-
186
- should "work when default status is false" do
187
- post = Factory(:typus_user, :status => false)
188
- expected = %(<a href="/admin/typus_users/toggle/#{post.id}?field=status" data-confirm="Change status?">Inactive</a>)
189
- assert_equal expected, table_boolean_field("status", post)
190
- end
191
-
192
- should "work when default status is nil" do
193
- post = Factory(:typus_user, :status => nil)
194
- assert post.status.nil?
195
- expected = %(<a href="/admin/typus_users/toggle/#{post.id}?field=status" data-confirm="Change status?">Inactive</a>)
196
- assert_equal expected, table_boolean_field("status", post)
197
- end
198
-
199
- end
200
-
201
- context "table_transversal_field" do
202
-
203
- should "work" do
204
- comment = Factory(:comment)
205
- output = table_transversal_field("post.title", comment)
206
- expected = comment.post.title
207
- assert_equal expected, output
208
- end
209
-
210
- should "return a dash if the association does not exist" do
211
- comment = Factory(:comment, :post => nil)
212
- assert_equal "&mdash;", table_transversal_field("post.title", comment)
213
- end
214
-
215
- end
216
-
217
- should "test_table_position_field" do
218
- first_category = Factory(:category, :position => 0)
219
- second_category = Factory(:category, :position => 1)
220
- last_category = Factory(:category, :position => 2)
221
-
222
- output = table_position_field(nil, first_category)
223
- expected = <<-HTML
224
- 1<br/><br/><a href="/admin/categories/position/#{first_category.id}?go=move_lower">Down</a> / <a href="/admin/categories/position/#{first_category.id}?go=move_to_bottom">Bottom</a>
225
- HTML
226
- assert_equal expected.strip, output
227
-
228
- output = table_position_field(nil, second_category)
229
- expected = <<-HTML
230
- 2<br/><br/><a href="/admin/categories/position/#{second_category.id}?go=move_to_top">Top</a> / <a href="/admin/categories/position/#{second_category.id}?go=move_higher">Up</a> / <a href="/admin/categories/position/#{second_category.id}?go=move_lower">Down</a> / <a href="/admin/categories/position/#{second_category.id}?go=move_to_bottom">Bottom</a>
231
- HTML
232
- assert_equal expected.strip, output
233
-
234
- output = table_position_field(nil, last_category)
235
- expected = <<-HTML
236
- 3<br/><br/><a href="/admin/categories/position/#{last_category.id}?go=move_to_top">Top</a> / <a href="/admin/categories/position/#{last_category.id}?go=move_higher">Up</a>
237
- HTML
238
- assert_equal expected.strip, output
239
- end
240
-
241
- end