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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -5
- data/CONTRIBUTING.md +22 -0
- data/Gemfile +1 -6
- data/README.md +8 -13
- data/Rakefile +4 -6
- data/adminpanel.gemspec +29 -24
- data/app/assets/javascripts/{application-admin.js → adminpanel/application.js} +2 -1
- data/app/assets/javascripts/adminpanel/images_form_add_remove_fields.js.coffee +11 -0
- data/app/assets/javascripts/adminpanel/sections.js.coffee +9 -0
- data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
- data/app/assets/javascripts/adminpanel/tables.js +4 -3
- data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +4 -1
- data/app/assets/stylesheets/{application-admin.css → adminpanel/application.css} +2 -2
- data/app/assets/stylesheets/adminpanel/fa-hidden.css.scss +7 -0
- data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +3 -27
- data/app/assets/stylesheets/adminpanel/turbolinks_progress_load.css.scss +5 -0
- data/app/controllers/adminpanel/analytics_controller.rb +3 -3
- data/app/controllers/adminpanel/application_controller.rb +5 -11
- data/app/controllers/adminpanel/auths_controller.rb +6 -0
- data/app/controllers/adminpanel/categories_controller.rb +26 -60
- data/app/controllers/adminpanel/permissions_controller.rb +1 -2
- data/app/controllers/adminpanel/roles_controller.rb +10 -0
- data/app/controllers/adminpanel/sections_controller.rb +14 -14
- data/app/controllers/adminpanel/sessions_controller.rb +4 -3
- data/app/controllers/adminpanel/users_controller.rb +2 -2
- data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +1 -1
- data/app/controllers/concerns/adminpanel/facebook_actions.rb +13 -12
- data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +13 -9
- data/app/controllers/concerns/adminpanel/rest_actions.rb +65 -59
- data/app/controllers/concerns/adminpanel/sitemap_actions.rb +1 -1
- data/app/controllers/concerns/adminpanel/sortable_actions.rb +29 -0
- data/app/controllers/concerns/adminpanel/twitter_actions.rb +5 -5
- data/app/helpers/adminpanel/adminpanel_form_builder.rb +104 -64
- data/app/helpers/adminpanel/application_helper.rb +20 -9
- data/app/helpers/adminpanel/breadcrumbs_helper.rb +2 -2
- data/app/helpers/adminpanel/router_helper.rb +8 -4
- data/app/helpers/adminpanel/shared_pages_helper.rb +59 -11
- data/app/models/ability.rb +2 -2
- data/app/models/adminpanel/analytic.rb +3 -3
- data/app/models/adminpanel/permission.rb +19 -19
- data/app/models/adminpanel/{rol.rb → role.rb} +9 -2
- data/app/models/adminpanel/section.rb +10 -6
- data/app/models/adminpanel/{image.rb → sectionfile.rb} +1 -1
- data/app/models/adminpanel/user.rb +27 -31
- data/app/models/concerns/adminpanel/base.rb +33 -19
- data/app/models/concerns/adminpanel/galleryzation.rb +18 -5
- data/app/models/concerns/adminpanel/sitemap.rb +1 -1
- data/app/models/concerns/adminpanel/sortable.rb +69 -0
- data/app/uploaders/adminpanel/.keep +1 -0
- data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +27 -27
- data/app/views/adminpanel/categories/_categories_table.html.erb +4 -4
- data/app/views/adminpanel/categories/_category_form.html.erb +26 -6
- data/app/views/adminpanel/categories/create.js.erb +4 -5
- data/app/views/adminpanel/categories/index.html.erb +23 -16
- data/app/views/adminpanel/categories/new.js.erb +1 -1
- data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +24 -0
- data/app/views/adminpanel/form/_belongs_to.html.erb +24 -0
- data/app/views/adminpanel/form/_file_field.html.erb +4 -0
- data/app/views/adminpanel/form/_has_many.html.erb +19 -0
- data/app/views/adminpanel/form/_non_image_file_field.html.erb +4 -0
- data/app/views/{shared/_delete_icon_button.html.erb → adminpanel/icons/_delete.html.erb} +3 -1
- data/app/views/{shared/_edit_icon_button.html.erb → adminpanel/icons/_edit.html.erb} +3 -3
- data/app/views/{shared/_fb_icon_button.html.erb → adminpanel/icons/_facebook.html.erb} +6 -5
- data/app/views/adminpanel/icons/_move_to_better.html.erb +16 -0
- data/app/views/adminpanel/icons/_move_to_worst.html.erb +17 -0
- data/app/views/{shared/_show_icon_button.html.erb → adminpanel/icons/_show.html.erb} +1 -1
- data/app/views/{shared/_twitter_icon_button.html.erb → adminpanel/icons/_twitter.html.erb} +1 -1
- data/app/views/adminpanel/sections/_sections_table.html.erb +1 -1
- data/app/views/adminpanel/sections/edit.html.erb +25 -17
- data/app/views/adminpanel/sections/index.html.erb +1 -1
- data/app/views/adminpanel/sections/show.html.erb +2 -2
- data/app/views/{shared → adminpanel/shared}/_breadcrumb.html.erb +0 -0
- data/app/views/adminpanel/shared/_create_remote_resource_button.html.erb +21 -0
- data/app/views/{shared → adminpanel/shared}/_error_messages.html.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/_fb_publish_modal.html.erb +2 -2
- data/app/views/adminpanel/shared/_form_fields.html.erb +21 -0
- data/app/views/adminpanel/shared/_gallery_entries.html.erb +11 -0
- data/app/views/adminpanel/shared/_image_fields.html.erb +3 -0
- data/app/views/adminpanel/shared/_index_records.html.erb +32 -0
- data/app/views/adminpanel/shared/_modal.html.erb +20 -0
- data/app/views/adminpanel/shared/_new_resource_button.html.erb +17 -0
- data/app/views/adminpanel/shared/_remote_form_fields.html.erb +28 -0
- data/app/views/{shared → adminpanel/shared}/_twitter_publish_modal.html.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/create_belongs_to.js.erb +0 -0
- data/app/views/{shared → adminpanel/shared}/create_has_many.js.erb +0 -0
- data/app/views/adminpanel/shared/edit.html.erb +42 -0
- data/app/views/{shared → adminpanel/shared}/fb_choose_page.html.erb +2 -2
- data/app/views/adminpanel/shared/gallery_entries.js.erb +1 -0
- data/app/views/adminpanel/shared/index.html.erb +43 -0
- data/app/views/adminpanel/shared/index_records.js.erb +1 -0
- data/app/views/adminpanel/shared/new.html.erb +42 -0
- data/app/views/adminpanel/shared/new.js.erb +2 -0
- data/app/views/adminpanel/shared/show.html.erb +77 -0
- data/app/views/layouts/{_shim.html.erb → adminpanel/_shim.html.erb} +0 -0
- data/app/views/layouts/adminpanel/_side_menu.html.erb +32 -0
- data/app/views/layouts/{_top_bar.html.erb → adminpanel/_top_bar.html.erb} +4 -2
- data/app/views/layouts/{admin-login.html.erb → adminpanel/application-login.html.erb} +4 -4
- data/app/views/layouts/{admin.html.erb → adminpanel/application.html.erb} +8 -6
- data/config/initializers/adminpanel/clear_cache.rb +4 -0
- data/config/initializers/{pluralization_es.rb → adminpanel/pluralization_es.rb} +0 -0
- data/config/initializers/{twitter-oauth.rb → adminpanel/twitter_oauth.rb} +0 -0
- data/config/locales/en.yml +93 -59
- data/config/locales/es.yml +34 -14
- data/config/routes.rb +27 -24
- data/lib/adminpanel.rb +3 -1
- data/lib/adminpanel/engine.rb +6 -3
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/contact/contact_generator.rb +12 -0
- data/{app/models/contact.rb → lib/generators/adminpanel/contact/templates/contact_template.rb} +0 -0
- data/lib/generators/adminpanel/dump/dump_generator.rb +37 -0
- data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -0
- data/lib/generators/adminpanel/gallery/templates/uploader.rb +7 -9
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +2 -2
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +23 -34
- data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +6 -8
- data/lib/generators/adminpanel/resource/resource_generator.rb +3 -2
- data/lib/generators/adminpanel/resource/resource_generator_helper.rb +6 -8
- data/lib/generators/adminpanel/resource/templates/adminpanel_controller_template.rb +1 -1
- data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +2 -2
- data/lib/tasks/adminpanel/adminpanel.rake +11 -24
- data/lib/tasks/adminpanel/sections.rake +65 -0
- data/test/dummy/app/controllers/adminpanel/file_resources_controller.rb +12 -0
- data/test/dummy/app/controllers/adminpanel/galleries_controller.rb +4 -0
- data/test/dummy/app/controllers/adminpanel/products_controller.rb +5 -5
- data/test/dummy/app/models/adminpanel/category.rb +2 -0
- data/test/dummy/app/models/adminpanel/file_resource.rb +34 -0
- data/test/dummy/app/models/adminpanel/file_resourcefile.rb +13 -0
- data/test/dummy/app/models/adminpanel/gallery.rb +32 -0
- data/test/dummy/app/models/adminpanel/galleryfile.rb +19 -0
- data/test/dummy/app/models/adminpanel/mug.rb +14 -14
- data/test/dummy/app/models/adminpanel/photo.rb +1 -0
- data/test/dummy/app/models/adminpanel/product.rb +7 -7
- data/test/dummy/app/models/adminpanel/test_object.rb +53 -0
- data/test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb +82 -0
- data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +5 -9
- data/test/dummy/app/uploader/adminpanel/section_uploader.rb +5 -9
- data/test/dummy/config/application.rb +3 -30
- data/test/dummy/config/carrierwave.rb +1 -1
- data/test/dummy/config/environments/test.rb +10 -4
- data/test/dummy/config/initializers/adminpanel_setup.rb +5 -2
- data/test/dummy/db/schema.rb +65 -34
- data/test/dummy/test/fixtures/adminpanel/categories.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +18 -0
- data/test/dummy/test/fixtures/adminpanel/permissions.yml +7 -7
- data/test/dummy/test/fixtures/adminpanel/products.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/{rols.yml → roles.yml} +0 -0
- data/test/dummy/test/fixtures/adminpanel/test_objects.yml +7 -0
- data/test/dummy/test/fixtures/adminpanel/users.yml +7 -7
- data/test/dummy/test/fixtures/dog fries.png +0 -0
- data/test/features/categories/categories_index_test.rb +31 -0
- data/test/features/shared/concerns/galleryzable_test.rb +22 -0
- data/test/features/shared/concerns/sortable_test.rb +26 -0
- data/test/features/shared/form/has_many_through_non_category_modal_test.rb +1 -1
- data/test/features/shared/form/remote_resource_modal_test.rb +41 -0
- data/test/features/shared/resource/edit_test.rb +7 -6
- data/test/features/shared/resource/new_test.rb +3 -2
- data/test/features/shared/ui/max_images_gallery_test.rb +52 -0
- data/test/generators/contact_generator_test.rb +20 -0
- data/test/generators/dump_generator_test.rb +51 -0
- data/test/generators/resource_generator_test.rb +46 -1
- data/test/helpers/breadcrumbs_helper_test.rb +3 -4
- data/test/helpers/router_helper_test.rb +1 -1
- data/test/helpers/shared_pages_helper_test.rb +120 -0
- data/test/models/adminpanel/gallery_test.rb +16 -23
- data/test/models/adminpanel/user_test.rb +1 -1
- data/test/support/view_case.rb +18 -19
- data/test/tasks/adminpanel_rake_test.rb +5 -3
- data/test/test_helper.rb +2 -5
- metadata +204 -150
- data/.rspec +0 -2
- data/app/assets/javascripts/adminpanel/images_form.js +0 -23
- data/app/assets/javascripts/adminpanel/imagesloaded.js +0 -16
- data/app/controllers/adminpanel/galleries_controller.rb +0 -75
- data/app/controllers/adminpanel/rols_controller.rb +0 -10
- data/app/models/adminpanel/gallery.rb +0 -82
- data/app/uploaders/adminpanel/gallery_uploader.rb +0 -56
- data/app/views/adminpanel/galleries/_galleries_table.html.erb +0 -15
- data/app/views/adminpanel/galleries/create.html.erb +0 -2
- data/app/views/adminpanel/galleries/index.html.erb +0 -52
- data/app/views/adminpanel/galleries/move_better.js.erb +0 -1
- data/app/views/adminpanel/galleries/move_worst.js.erb +0 -1
- data/app/views/layouts/_side_menu.html.erb +0 -40
- data/app/views/shared/_create_remote_resource_button.html.erb +0 -23
- data/app/views/shared/_form_fields.html.erb +0 -63
- data/app/views/shared/_gallery_entries.html.erb +0 -11
- data/app/views/shared/_image_fields.html.erb +0 -3
- data/app/views/shared/_modal.html.erb +0 -8
- data/app/views/shared/_new_resource_button.html.erb +0 -17
- data/app/views/shared/_remote_form_fields.html.erb +0 -12
- data/app/views/shared/edit.html.erb +0 -29
- data/app/views/shared/gallery_entries.js.erb +0 -1
- data/app/views/shared/index.html.erb +0 -68
- data/app/views/shared/new.html.erb +0 -41
- data/app/views/shared/new.js.erb +0 -2
- data/app/views/shared/show.html.erb +0 -92
- data/test/dummy/README.rdoc +0 -261
- data/test/dummy/config/environments/development.rb +0 -29
- data/test/dummy/config/environments/production.rb +0 -80
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/script/rails +0 -6
- data/test/unit/gallery_unit_test.rb +0 -21
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 %>
|
|
File without changes
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
54
|
+
role: Superuser
|
|
55
55
|
created_at: <%= Date.today %>
|
|
56
56
|
updated_at: <%= Date.today %>
|
|
Binary file
|
|
@@ -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
|
|
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(
|
|
10
|
+
assert_button("Actualizar #{adminpanel_products(:first).name}")
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def test_submitting_with_same_information
|
|
14
|
-
click_button(
|
|
15
|
-
assert_content(
|
|
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', :
|
|
20
|
-
fill_in 'product_price', :
|
|
21
|
-
click_button(
|
|
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(
|
|
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(
|
|
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
|