adminpanel 2.2.5 → 2.3.0

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -5
  3. data/CONTRIBUTING.md +22 -0
  4. data/Gemfile +1 -6
  5. data/README.md +8 -13
  6. data/Rakefile +4 -6
  7. data/adminpanel.gemspec +29 -24
  8. data/app/assets/javascripts/{application-admin.js → adminpanel/application.js} +2 -1
  9. data/app/assets/javascripts/adminpanel/images_form_add_remove_fields.js.coffee +11 -0
  10. data/app/assets/javascripts/adminpanel/sections.js.coffee +9 -0
  11. data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
  12. data/app/assets/javascripts/adminpanel/tables.js +4 -3
  13. data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +4 -1
  14. data/app/assets/stylesheets/{application-admin.css → adminpanel/application.css} +2 -2
  15. data/app/assets/stylesheets/adminpanel/fa-hidden.css.scss +7 -0
  16. data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +3 -27
  17. data/app/assets/stylesheets/adminpanel/turbolinks_progress_load.css.scss +5 -0
  18. data/app/controllers/adminpanel/analytics_controller.rb +3 -3
  19. data/app/controllers/adminpanel/application_controller.rb +5 -11
  20. data/app/controllers/adminpanel/auths_controller.rb +6 -0
  21. data/app/controllers/adminpanel/categories_controller.rb +26 -60
  22. data/app/controllers/adminpanel/permissions_controller.rb +1 -2
  23. data/app/controllers/adminpanel/roles_controller.rb +10 -0
  24. data/app/controllers/adminpanel/sections_controller.rb +14 -14
  25. data/app/controllers/adminpanel/sessions_controller.rb +4 -3
  26. data/app/controllers/adminpanel/users_controller.rb +2 -2
  27. data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +1 -1
  28. data/app/controllers/concerns/adminpanel/facebook_actions.rb +13 -12
  29. data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +13 -9
  30. data/app/controllers/concerns/adminpanel/rest_actions.rb +65 -59
  31. data/app/controllers/concerns/adminpanel/sitemap_actions.rb +1 -1
  32. data/app/controllers/concerns/adminpanel/sortable_actions.rb +29 -0
  33. data/app/controllers/concerns/adminpanel/twitter_actions.rb +5 -5
  34. data/app/helpers/adminpanel/adminpanel_form_builder.rb +104 -64
  35. data/app/helpers/adminpanel/application_helper.rb +20 -9
  36. data/app/helpers/adminpanel/breadcrumbs_helper.rb +2 -2
  37. data/app/helpers/adminpanel/router_helper.rb +8 -4
  38. data/app/helpers/adminpanel/shared_pages_helper.rb +59 -11
  39. data/app/models/ability.rb +2 -2
  40. data/app/models/adminpanel/analytic.rb +3 -3
  41. data/app/models/adminpanel/permission.rb +19 -19
  42. data/app/models/adminpanel/{rol.rb → role.rb} +9 -2
  43. data/app/models/adminpanel/section.rb +10 -6
  44. data/app/models/adminpanel/{image.rb → sectionfile.rb} +1 -1
  45. data/app/models/adminpanel/user.rb +27 -31
  46. data/app/models/concerns/adminpanel/base.rb +33 -19
  47. data/app/models/concerns/adminpanel/galleryzation.rb +18 -5
  48. data/app/models/concerns/adminpanel/sitemap.rb +1 -1
  49. data/app/models/concerns/adminpanel/sortable.rb +69 -0
  50. data/app/uploaders/adminpanel/.keep +1 -0
  51. data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +27 -27
  52. data/app/views/adminpanel/categories/_categories_table.html.erb +4 -4
  53. data/app/views/adminpanel/categories/_category_form.html.erb +26 -6
  54. data/app/views/adminpanel/categories/create.js.erb +4 -5
  55. data/app/views/adminpanel/categories/index.html.erb +23 -16
  56. data/app/views/adminpanel/categories/new.js.erb +1 -1
  57. data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +24 -0
  58. data/app/views/adminpanel/form/_belongs_to.html.erb +24 -0
  59. data/app/views/adminpanel/form/_file_field.html.erb +4 -0
  60. data/app/views/adminpanel/form/_has_many.html.erb +19 -0
  61. data/app/views/adminpanel/form/_non_image_file_field.html.erb +4 -0
  62. data/app/views/{shared/_delete_icon_button.html.erb → adminpanel/icons/_delete.html.erb} +3 -1
  63. data/app/views/{shared/_edit_icon_button.html.erb → adminpanel/icons/_edit.html.erb} +3 -3
  64. data/app/views/{shared/_fb_icon_button.html.erb → adminpanel/icons/_facebook.html.erb} +6 -5
  65. data/app/views/adminpanel/icons/_move_to_better.html.erb +16 -0
  66. data/app/views/adminpanel/icons/_move_to_worst.html.erb +17 -0
  67. data/app/views/{shared/_show_icon_button.html.erb → adminpanel/icons/_show.html.erb} +1 -1
  68. data/app/views/{shared/_twitter_icon_button.html.erb → adminpanel/icons/_twitter.html.erb} +1 -1
  69. data/app/views/adminpanel/sections/_sections_table.html.erb +1 -1
  70. data/app/views/adminpanel/sections/edit.html.erb +25 -17
  71. data/app/views/adminpanel/sections/index.html.erb +1 -1
  72. data/app/views/adminpanel/sections/show.html.erb +2 -2
  73. data/app/views/{shared → adminpanel/shared}/_breadcrumb.html.erb +0 -0
  74. data/app/views/adminpanel/shared/_create_remote_resource_button.html.erb +21 -0
  75. data/app/views/{shared → adminpanel/shared}/_error_messages.html.erb +0 -0
  76. data/app/views/{shared → adminpanel/shared}/_fb_publish_modal.html.erb +2 -2
  77. data/app/views/adminpanel/shared/_form_fields.html.erb +21 -0
  78. data/app/views/adminpanel/shared/_gallery_entries.html.erb +11 -0
  79. data/app/views/adminpanel/shared/_image_fields.html.erb +3 -0
  80. data/app/views/adminpanel/shared/_index_records.html.erb +32 -0
  81. data/app/views/adminpanel/shared/_modal.html.erb +20 -0
  82. data/app/views/adminpanel/shared/_new_resource_button.html.erb +17 -0
  83. data/app/views/adminpanel/shared/_remote_form_fields.html.erb +28 -0
  84. data/app/views/{shared → adminpanel/shared}/_twitter_publish_modal.html.erb +0 -0
  85. data/app/views/{shared → adminpanel/shared}/create_belongs_to.js.erb +0 -0
  86. data/app/views/{shared → adminpanel/shared}/create_has_many.js.erb +0 -0
  87. data/app/views/adminpanel/shared/edit.html.erb +42 -0
  88. data/app/views/{shared → adminpanel/shared}/fb_choose_page.html.erb +2 -2
  89. data/app/views/adminpanel/shared/gallery_entries.js.erb +1 -0
  90. data/app/views/adminpanel/shared/index.html.erb +43 -0
  91. data/app/views/adminpanel/shared/index_records.js.erb +1 -0
  92. data/app/views/adminpanel/shared/new.html.erb +42 -0
  93. data/app/views/adminpanel/shared/new.js.erb +2 -0
  94. data/app/views/adminpanel/shared/show.html.erb +77 -0
  95. data/app/views/layouts/{_shim.html.erb → adminpanel/_shim.html.erb} +0 -0
  96. data/app/views/layouts/adminpanel/_side_menu.html.erb +32 -0
  97. data/app/views/layouts/{_top_bar.html.erb → adminpanel/_top_bar.html.erb} +4 -2
  98. data/app/views/layouts/{admin-login.html.erb → adminpanel/application-login.html.erb} +4 -4
  99. data/app/views/layouts/{admin.html.erb → adminpanel/application.html.erb} +8 -6
  100. data/config/initializers/adminpanel/clear_cache.rb +4 -0
  101. data/config/initializers/{pluralization_es.rb → adminpanel/pluralization_es.rb} +0 -0
  102. data/config/initializers/{twitter-oauth.rb → adminpanel/twitter_oauth.rb} +0 -0
  103. data/config/locales/en.yml +93 -59
  104. data/config/locales/es.yml +34 -14
  105. data/config/routes.rb +27 -24
  106. data/lib/adminpanel.rb +3 -1
  107. data/lib/adminpanel/engine.rb +6 -3
  108. data/lib/adminpanel/version.rb +1 -1
  109. data/lib/generators/adminpanel/contact/contact_generator.rb +12 -0
  110. data/{app/models/contact.rb → lib/generators/adminpanel/contact/templates/contact_template.rb} +0 -0
  111. data/lib/generators/adminpanel/dump/dump_generator.rb +37 -0
  112. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -0
  113. data/lib/generators/adminpanel/gallery/templates/uploader.rb +7 -9
  114. data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +2 -2
  115. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +23 -34
  116. data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +6 -8
  117. data/lib/generators/adminpanel/resource/resource_generator.rb +3 -2
  118. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +6 -8
  119. data/lib/generators/adminpanel/resource/templates/adminpanel_controller_template.rb +1 -1
  120. data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +2 -2
  121. data/lib/tasks/adminpanel/adminpanel.rake +11 -24
  122. data/lib/tasks/adminpanel/sections.rake +65 -0
  123. data/test/dummy/app/controllers/adminpanel/file_resources_controller.rb +12 -0
  124. data/test/dummy/app/controllers/adminpanel/galleries_controller.rb +4 -0
  125. data/test/dummy/app/controllers/adminpanel/products_controller.rb +5 -5
  126. data/test/dummy/app/models/adminpanel/category.rb +2 -0
  127. data/test/dummy/app/models/adminpanel/file_resource.rb +34 -0
  128. data/test/dummy/app/models/adminpanel/file_resourcefile.rb +13 -0
  129. data/test/dummy/app/models/adminpanel/gallery.rb +32 -0
  130. data/test/dummy/app/models/adminpanel/galleryfile.rb +19 -0
  131. data/test/dummy/app/models/adminpanel/mug.rb +14 -14
  132. data/test/dummy/app/models/adminpanel/photo.rb +1 -0
  133. data/test/dummy/app/models/adminpanel/product.rb +7 -7
  134. data/test/dummy/app/models/adminpanel/test_object.rb +53 -0
  135. data/test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb +82 -0
  136. data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +5 -9
  137. data/test/dummy/app/uploader/adminpanel/section_uploader.rb +5 -9
  138. data/test/dummy/config/application.rb +3 -30
  139. data/test/dummy/config/carrierwave.rb +1 -1
  140. data/test/dummy/config/environments/test.rb +10 -4
  141. data/test/dummy/config/initializers/adminpanel_setup.rb +5 -2
  142. data/test/dummy/db/schema.rb +65 -34
  143. data/test/dummy/test/fixtures/adminpanel/categories.yml +7 -0
  144. data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +18 -0
  145. data/test/dummy/test/fixtures/adminpanel/permissions.yml +7 -7
  146. data/test/dummy/test/fixtures/adminpanel/products.yml +7 -0
  147. data/test/dummy/test/fixtures/adminpanel/{rols.yml → roles.yml} +0 -0
  148. data/test/dummy/test/fixtures/adminpanel/test_objects.yml +7 -0
  149. data/test/dummy/test/fixtures/adminpanel/users.yml +7 -7
  150. data/test/dummy/test/fixtures/dog fries.png +0 -0
  151. data/test/features/categories/categories_index_test.rb +31 -0
  152. data/test/features/shared/concerns/galleryzable_test.rb +22 -0
  153. data/test/features/shared/concerns/sortable_test.rb +26 -0
  154. data/test/features/shared/form/has_many_through_non_category_modal_test.rb +1 -1
  155. data/test/features/shared/form/remote_resource_modal_test.rb +41 -0
  156. data/test/features/shared/resource/edit_test.rb +7 -6
  157. data/test/features/shared/resource/new_test.rb +3 -2
  158. data/test/features/shared/ui/max_images_gallery_test.rb +52 -0
  159. data/test/generators/contact_generator_test.rb +20 -0
  160. data/test/generators/dump_generator_test.rb +51 -0
  161. data/test/generators/resource_generator_test.rb +46 -1
  162. data/test/helpers/breadcrumbs_helper_test.rb +3 -4
  163. data/test/helpers/router_helper_test.rb +1 -1
  164. data/test/helpers/shared_pages_helper_test.rb +120 -0
  165. data/test/models/adminpanel/gallery_test.rb +16 -23
  166. data/test/models/adminpanel/user_test.rb +1 -1
  167. data/test/support/view_case.rb +18 -19
  168. data/test/tasks/adminpanel_rake_test.rb +5 -3
  169. data/test/test_helper.rb +2 -5
  170. metadata +204 -150
  171. data/.rspec +0 -2
  172. data/app/assets/javascripts/adminpanel/images_form.js +0 -23
  173. data/app/assets/javascripts/adminpanel/imagesloaded.js +0 -16
  174. data/app/controllers/adminpanel/galleries_controller.rb +0 -75
  175. data/app/controllers/adminpanel/rols_controller.rb +0 -10
  176. data/app/models/adminpanel/gallery.rb +0 -82
  177. data/app/uploaders/adminpanel/gallery_uploader.rb +0 -56
  178. data/app/views/adminpanel/galleries/_galleries_table.html.erb +0 -15
  179. data/app/views/adminpanel/galleries/create.html.erb +0 -2
  180. data/app/views/adminpanel/galleries/index.html.erb +0 -52
  181. data/app/views/adminpanel/galleries/move_better.js.erb +0 -1
  182. data/app/views/adminpanel/galleries/move_worst.js.erb +0 -1
  183. data/app/views/layouts/_side_menu.html.erb +0 -40
  184. data/app/views/shared/_create_remote_resource_button.html.erb +0 -23
  185. data/app/views/shared/_form_fields.html.erb +0 -63
  186. data/app/views/shared/_gallery_entries.html.erb +0 -11
  187. data/app/views/shared/_image_fields.html.erb +0 -3
  188. data/app/views/shared/_modal.html.erb +0 -8
  189. data/app/views/shared/_new_resource_button.html.erb +0 -17
  190. data/app/views/shared/_remote_form_fields.html.erb +0 -12
  191. data/app/views/shared/edit.html.erb +0 -29
  192. data/app/views/shared/gallery_entries.js.erb +0 -1
  193. data/app/views/shared/index.html.erb +0 -68
  194. data/app/views/shared/new.html.erb +0 -41
  195. data/app/views/shared/new.js.erb +0 -2
  196. data/app/views/shared/show.html.erb +0 -92
  197. data/test/dummy/README.rdoc +0 -261
  198. data/test/dummy/config/environments/development.rb +0 -29
  199. data/test/dummy/config/environments/production.rb +0 -80
  200. data/test/dummy/lib/assets/.gitkeep +0 -0
  201. data/test/dummy/script/rails +0 -6
  202. data/test/unit/gallery_unit_test.rb +0 -21
@@ -0,0 +1,7 @@
1
+ nice:
2
+ name: Nice
3
+ model: test_object
4
+
5
+ pretty:
6
+ name: Pretty
7
+ model: test_object
@@ -0,0 +1,18 @@
1
+ first:
2
+ file: hipster.jpg
3
+ gallery: one
4
+ position: 1
5
+ created_at: <%= Date.today %>
6
+ updated_at: <%= Date.today %>
7
+ second:
8
+ file: hipster.jpg
9
+ gallery: one
10
+ position: 2
11
+ created_at: <%= Date.today %>
12
+ updated_at: <%= Date.today %>
13
+ third:
14
+ file: hipster.jpg
15
+ gallery: one
16
+ position: 3
17
+ created_at: <%= Date.today %>
18
+ updated_at: <%= Date.today %>
@@ -1,41 +1,41 @@
1
1
  publish:
2
- rol: Publisher
2
+ role: Publisher
3
3
  action: 1
4
4
  resource: product
5
5
  created_at: <%= Date.today %>
6
6
  updated_at: <%= Date.today %>
7
7
  create:
8
- rol: Creator
8
+ role: Creator
9
9
  action: 2
10
10
  resource: product
11
11
  created_at: <%= Date.today %>
12
12
  updated_at: <%= Date.today %>
13
13
  update:
14
- rol: Updater
14
+ role: Updater
15
15
  action: 3
16
16
  resource: product
17
17
  created_at: <%= Date.today %>
18
18
  updated_at: <%= Date.today %>
19
19
  read:
20
- rol: Reader
20
+ role: Reader
21
21
  action: 0
22
22
  resource: product
23
23
  created_at: <%= Date.today %>
24
24
  updated_at: <%= Date.today %>
25
25
  deleter:
26
- rol: Deleter
26
+ role: Deleter
27
27
  action: 4
28
28
  resource: product
29
29
  created_at: <%= Date.today %>
30
30
  updated_at: <%= Date.today %>
31
31
  create_product:
32
- rol: Superuser
32
+ role: Superuser
33
33
  action: 2
34
34
  resource: product
35
35
  created_at: <%= Date.today %>
36
36
  updated_at: <%= Date.today %>
37
37
  update_product:
38
- rol: Superuser
38
+ role: Superuser
39
39
  action: 3
40
40
  resource: product
41
41
  created_at: <%= Date.today %>
@@ -4,3 +4,10 @@ first:
4
4
  description: lorem ipsum dolor sit amec
5
5
  created_at: <%= Date.today %>
6
6
  updated_at: <%= Date.today %>
7
+
8
+ limit_images:
9
+ name: Product with limit
10
+ price: 123.45
11
+ description: lorem ipsum dolor sit amec
12
+ created_at: <%= Date.today %>
13
+ updated_at: <%= Date.today %>
@@ -0,0 +1,7 @@
1
+ first:
2
+ boolean: 1
3
+ name: John Doe
4
+ text: <p>lorem ipsum</p>
5
+ price: 282.3
6
+ quantity: 15
7
+ categories: nice, pretty
@@ -3,7 +3,7 @@ valid:
3
3
  email: user@example.com
4
4
  password_digest: <%= BCrypt::Password.create('foobar') %>
5
5
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
6
- rol: Admin
6
+ role: Admin
7
7
  created_at: <%= Date.today %>
8
8
  updated_at: <%= Date.today %>
9
9
  publisher:
@@ -11,7 +11,7 @@ publisher:
11
11
  email: publisher@example.com
12
12
  password_digest: <%= BCrypt::Password.create('foobar') %>
13
13
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
14
- rol: Publisher
14
+ role: Publisher
15
15
  created_at: <%= Date.today %>
16
16
  updated_at: <%= Date.today %>
17
17
  creator:
@@ -19,7 +19,7 @@ creator:
19
19
  email: creator@example.com
20
20
  password_digest: <%= BCrypt::Password.create('foobar') %>
21
21
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
22
- rol: Creator
22
+ role: Creator
23
23
  created_at: <%= Date.today %>
24
24
  updated_at: <%= Date.today %>
25
25
  updater:
@@ -27,7 +27,7 @@ updater:
27
27
  email: updator@example.com
28
28
  password_digest: <%= BCrypt::Password.create('foobar') %>
29
29
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
30
- rol: Updater
30
+ role: Updater
31
31
  created_at: <%= Date.today %>
32
32
  updated_at: <%= Date.today %>
33
33
  deleter:
@@ -35,7 +35,7 @@ deleter:
35
35
  email: deleter@example.com
36
36
  password_digest: <%= BCrypt::Password.create('foobar') %>
37
37
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
38
- rol: Deleter
38
+ role: Deleter
39
39
  created_at: <%= Date.today %>
40
40
  updated_at: <%= Date.today %>
41
41
  reader:
@@ -43,7 +43,7 @@ reader:
43
43
  email: reader@example.com
44
44
  password_digest: <%= BCrypt::Password.create('foobar') %>
45
45
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
46
- rol: Reader
46
+ role: Reader
47
47
  created_at: <%= Date.today %>
48
48
  updated_at: <%= Date.today %>
49
49
  superuser:
@@ -51,6 +51,6 @@ superuser:
51
51
  email: superuser@example.com
52
52
  password_digest: <%= BCrypt::Password.create('foobar') %>
53
53
  remember_token: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %>
54
- rol: Superuser
54
+ role: Superuser
55
55
  created_at: <%= Date.today %>
56
56
  updated_at: <%= Date.today %>
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+ require 'adminpanel/product'
3
+ require 'adminpanel/category'
4
+ require 'adminpanel/test_object'
5
+
6
+ class CategoriesIndexTest < ViewCase
7
+ setup :visit_adminpanel_categories_path
8
+ teardown :teardown
9
+
10
+ def test_adding_invalid_category
11
+ assert_link('Crear Categoria para test_object')
12
+ trigger_modal('Crear Categoria para test_object')
13
+ assert_equal('Agregar Categoria', find('#modal-title').text)
14
+ submit_modal 'Agregar Categoria'
15
+ assert_content( I18n.t('errors', model: 'Categoria', count: 1) )
16
+ end
17
+
18
+ def test_adding_valid_category
19
+ trigger_modal('Crear Categoria para test_object')
20
+ fill_in 'category_name', with: 'categories index name'
21
+ submit_modal 'Agregar Categoria'
22
+ assert_xpath("//a[contains(text(), 'categories index name' )]")
23
+ end
24
+
25
+ private
26
+ def visit_adminpanel_categories_path
27
+ visit adminpanel.signin_path
28
+ login
29
+ visit adminpanel.categories_path
30
+ end
31
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class GalleryzableTest < ViewCase
4
+ fixtures :all
5
+
6
+ setup :sign_in
7
+ teardown :teardown
8
+
9
+ def test_including_chveron_icons
10
+ visit adminpanel.galleries_path(adminpanel_galleries(:one))
11
+
12
+ # if this 2 icons exists, routes exist too
13
+ assert_selector 'i.fa.fa-chevron-down'
14
+ assert_selector 'i.fa.fa-chevron-up'
15
+ end
16
+
17
+ protected
18
+ def sign_in
19
+ visit adminpanel.signin_path
20
+ login
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ class SortableTest < ViewCase
4
+ fixtures :all
5
+
6
+ setup :sign_in
7
+ teardown :teardown
8
+ def test_including_of_position_and_default_icons
9
+ visit adminpanel.galleries_path
10
+ assert_link 'Crear Galeria'
11
+
12
+ # if this 2 icons exists, routes exist too
13
+ assert_selector 'i.fa.fa-chevron-down'
14
+ assert_selector 'i.fa.fa-chevron-up'
15
+
16
+ assert_selector 'i.fa.fa-pencil'
17
+ assert_selector 'i.fa.fa-trash-o'
18
+ assert_selector 'i.fa.fa-search-plus'
19
+ end
20
+
21
+ protected
22
+ def sign_in
23
+ visit adminpanel.signin_path
24
+ login
25
+ end
26
+ end
@@ -23,7 +23,7 @@ class HasManyThroughNonCategoryModalTest < ViewCase
23
23
  fill_in 'product_description', with: 'remote description lorem'
24
24
  fill_in 'product_price', with: '12.3'
25
25
  submit_modal 'Agregar Producto'
26
- assert_content('remote checkbox of product')
26
+ assert_content 'remote checkbox of product'
27
27
 
28
28
  end
29
29
 
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteResourceModalTest < ViewCase
4
+ fixtures :all
5
+
6
+ setup :visit_adminpanel_new_user
7
+
8
+ def test_modals_exclude_belongs_to_remote_resources
9
+ visit adminpanel.new_user_path
10
+ # test in belongs_to request
11
+ trigger_modal 'Agregar Rol'
12
+ assert_no_link 'Agregar Permisos'
13
+ end
14
+
15
+ def test_modals_exclude_has_many_remote_resources
16
+ # test has_many
17
+ visit adminpanel.new_role_path
18
+ trigger_modal 'Agregar Permisos'
19
+ assert_no_link 'Agregar Rol'
20
+ end
21
+
22
+ def test_modals_exclude_file_input
23
+ # test file_field and non file field
24
+ visit adminpanel.new_role_path
25
+ trigger_modal 'Agregar Permisos'
26
+ assert_no_link 'Agregar Rol'
27
+ end
28
+
29
+ def test_modals_exclude_exclude_add_images_button
30
+ # test file_field and non file field
31
+ visit adminpanel.new_salesman_path
32
+ trigger_modal 'Agregar Producto'
33
+ assert_no_selector '#add-image-link'
34
+ end
35
+
36
+ private
37
+ def visit_adminpanel_new_user
38
+ visit adminpanel.signin_path
39
+ login
40
+ end
41
+ end
@@ -7,18 +7,19 @@ class EditTest < ViewCase
7
7
  teardown :teardown
8
8
 
9
9
  def test_shared_new_page_messages
10
- assert_button('Guardar Producto')
10
+ assert_button("Actualizar #{adminpanel_products(:first).name}")
11
11
  end
12
12
 
13
13
  def test_submitting_with_same_information
14
- click_button('Guardar Producto')
15
- assert_content( I18n.t('action.save_success') )
14
+ click_button("Actualizar #{adminpanel_products(:first).name}")
15
+ assert_content( adminpanel_products(:first).name )
16
+ assert_content( adminpanel_products(:first).price )
16
17
  end
17
18
 
18
19
  def test_submitting_with_invalid_information
19
- fill_in 'product_name', :with => ''
20
- fill_in 'product_price', :with => ''
21
- click_button('Guardar Producto')
20
+ fill_in 'product_name', with: ''
21
+ fill_in 'product_price', with: ''
22
+ click_button("Actualizar #{adminpanel_products(:first).name}")
22
23
  assert_content('Producto no pudo guardarse debido a 2 errores')
23
24
  saved_product = Adminpanel::Product.last
24
25
  end
@@ -6,7 +6,7 @@ class NewTest < ViewCase
6
6
  teardown :teardown
7
7
 
8
8
  def test_shared_new_page_messages
9
- assert_button("#{I18n.t('action.add')} #{Adminpanel::Product.display_name}")
9
+ assert_button(I18n.t('action.add', resource: Adminpanel::Product.display_name))
10
10
  end
11
11
 
12
12
  def test_submitting_with_invalid_information
@@ -23,7 +23,8 @@ class NewTest < ViewCase
23
23
  )
24
24
  ) # to fill the wysiwyg editor
25
25
  click_button('Agregar Producto')
26
- assert_content(I18n.t('action.save_success'))
26
+ assert_content('product name')
27
+ assert_content('855.5')
27
28
  saved_product = Adminpanel::Product.last
28
29
  assert_equal 'product name', saved_product.name
29
30
  assert_equal '855.5', saved_product.price
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+
3
+ class MaxImagesGalleryTest < ViewCase
4
+ fixtures :all
5
+
6
+ setup :sign_in
7
+
8
+ def test_exclution_of_button_when_max_file_is_limit
9
+ # maximum of products is 2.
10
+ visit adminpanel.new_product_path
11
+
12
+ assert_selector '#add-image-link'
13
+ click_link 'add-image-link'
14
+ assert_selector '#add-image-link'
15
+ click_link 'add-image-link'
16
+ ## $('#add-image-link') should not be visible if max files is reached
17
+ assert_no_selector '#add-image-link'
18
+
19
+ click_button 'Eliminar', match: :first
20
+ ## $('#add-image-link') should be visible again if a file is deleted
21
+ assert_selector '#add-image-link'
22
+ end
23
+
24
+ def test_no_button_when_editing_with_max_files
25
+ # maximum of products is 2.
26
+ product = adminpanel_products(:limit_images)
27
+ 2.times do |time|
28
+ product.photos.create(file: fixture_file_upload('dog fries.png'))
29
+ end
30
+ visit adminpanel.edit_product_path(product)
31
+ ## $('#add-image-link') should not be visible if max files is reached (it is reached)
32
+ # assert_no_selector '#add-image-link'
33
+
34
+ assert_no_selector '#add-image-link'
35
+
36
+ click_button 'Eliminar', match: :first
37
+ ## $('#add-image-link') should be visible again if a file is deleted
38
+ assert_selector '#add-image-link'
39
+ end
40
+
41
+ def test_add_image_button_must_exist_when_no_max_file
42
+ visit adminpanel.new_file_resource_path
43
+ assert_selector '#add-image-link'
44
+ # assert true
45
+ end
46
+
47
+ protected
48
+ def sign_in
49
+ visit adminpanel.signin_path
50
+ login
51
+ end
52
+ end
@@ -0,0 +1,20 @@
1
+ require 'test_helper'
2
+ require 'generators/adminpanel/contact/contact_generator'
3
+
4
+ class ContactGeneratorTest < Rails::Generators::TestCase
5
+ tests Adminpanel::ContactGenerator
6
+ destination Rails.root.join('tmp/generators')
7
+ setup :prepare_destination
8
+
9
+ def test_the_generation_of_the_adminpanel_setup_file
10
+ run_generator
11
+ assert_file 'app/models/contact.rb'
12
+ end
13
+
14
+ def test_runs_without_errors
15
+ assert_nothing_raised do
16
+ run_generator
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+ require 'generators/adminpanel/dump/dump_generator'
3
+
4
+ class DumpGeneratorTest < Rails::Generators::TestCase
5
+ tests Adminpanel::DumpGenerator
6
+ destination Rails.root.join('tmp/generators')
7
+ setup :prepare_destination
8
+
9
+ def test_the_generation_of_user_dump
10
+ assert_no_file( 'db/users.json' )
11
+ assert( Adminpanel::User.count > 0 ) #ensure there's something in adminpanel_users
12
+
13
+ # Dir.mkdir("#{Rails.root.join('tmp/generators')}/db")
14
+ # File.open("#{Rails.root.join('tmp/generators')}/db/seeds.rb", 'w') do
15
+ # "\n"
16
+ # end
17
+ run_generator %w(
18
+ user
19
+ -i
20
+ false
21
+ )
22
+
23
+ #assert has user fields in json format, in an array.
24
+ assert_file(
25
+ 'db/users.json',
26
+ /\[{/,
27
+ /}\]/,
28
+ /"name":"Example User"/,
29
+ /"email":"user@example.com"/,
30
+ /"role_id":/
31
+ )
32
+ # haven't been able to assert injection :(
33
+ # assert_file(
34
+ # 'db/seeds.rb',
35
+ # /objects = JSON.parse(open("#{Rails.root}\/db\/users.json").read)/,
36
+ # /objects.each do |element|/,
37
+ # / Adminpanel::User.create element/,
38
+ # /end/
39
+ # )
40
+ end
41
+
42
+ def test_runs_without_errors
43
+ Dir.mkdir("#{Rails.root.join('tmp/generators')}/db")
44
+ File.open("#{Rails.root.join('tmp/generators')}/db/seeds.rb", 'w') do
45
+ "\n"
46
+ end
47
+ assert_nothing_raised do
48
+ run_generator ['user']
49
+ end
50
+ end
51
+ end