appyantra_admin 0.0.1
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.
- data/.gitignore +6 -0
- data/Gemfile +24 -0
- data/MIT-LICENSE +20 -0
- data/README.md +101 -0
- data/Rakefile +26 -0
- data/app/assets/images/appyantra_admin/.gitkeep +0 -0
- data/app/assets/images/appyantra_admin/breadcrumb_divider.png +0 -0
- data/app/assets/images/appyantra_admin/btn_submit.png +0 -0
- data/app/assets/images/appyantra_admin/btn_submit_2.png +0 -0
- data/app/assets/images/appyantra_admin/btn_view_site.png +0 -0
- data/app/assets/images/appyantra_admin/header_bg.png +0 -0
- data/app/assets/images/appyantra_admin/header_shadow.png +0 -0
- data/app/assets/images/appyantra_admin/icn_add_user.png +0 -0
- data/app/assets/images/appyantra_admin/icn_alert_error.png +0 -0
- data/app/assets/images/appyantra_admin/icn_alert_info.png +0 -0
- data/app/assets/images/appyantra_admin/icn_alert_success.png +0 -0
- data/app/assets/images/appyantra_admin/icn_alert_warning.png +0 -0
- data/app/assets/images/appyantra_admin/icn_audio.png +0 -0
- data/app/assets/images/appyantra_admin/icn_categories.png +0 -0
- data/app/assets/images/appyantra_admin/icn_edit.png +0 -0
- data/app/assets/images/appyantra_admin/icn_edit_article.png +0 -0
- data/app/assets/images/appyantra_admin/icn_folder.png +0 -0
- data/app/assets/images/appyantra_admin/icn_jump_back.png +0 -0
- data/app/assets/images/appyantra_admin/icn_logout.png +0 -0
- data/app/assets/images/appyantra_admin/icn_new_article.png +0 -0
- data/app/assets/images/appyantra_admin/icn_photo.png +0 -0
- data/app/assets/images/appyantra_admin/icn_profile.png +0 -0
- data/app/assets/images/appyantra_admin/icn_search.png +0 -0
- data/app/assets/images/appyantra_admin/icn_security.png +0 -0
- data/app/assets/images/appyantra_admin/icn_settings.png +0 -0
- data/app/assets/images/appyantra_admin/icn_tags.png +0 -0
- data/app/assets/images/appyantra_admin/icn_trash.png +0 -0
- data/app/assets/images/appyantra_admin/icn_user.png +0 -0
- data/app/assets/images/appyantra_admin/icn_video.png +0 -0
- data/app/assets/images/appyantra_admin/icn_view_users.png +0 -0
- data/app/assets/images/appyantra_admin/module_footer_bg.png +0 -0
- data/app/assets/images/appyantra_admin/post_message.png +0 -0
- data/app/assets/images/appyantra_admin/secondary_bar.png +0 -0
- data/app/assets/images/appyantra_admin/secondary_bar_shadow.png +0 -0
- data/app/assets/images/appyantra_admin/sidebar.png +0 -0
- data/app/assets/images/appyantra_admin/sidebar_divider.png +0 -0
- data/app/assets/images/appyantra_admin/sidebar_shadow.png +0 -0
- data/app/assets/images/appyantra_admin/table_sorter_header.png +0 -0
- data/app/assets/images/appyantra_admin/trash.png +0 -0
- data/app/assets/images/appyantra_admin/view.png +0 -0
- data/app/assets/images/website/600x300.gif +0 -0
- data/app/assets/images/website/alert-overlay.png +0 -0
- data/app/assets/images/website/bg.png +0 -0
- data/app/assets/images/website/link_bg.png +0 -0
- data/app/assets/images/website/link_border.png +0 -0
- data/app/assets/images/website/place_holder_img.png +0 -0
- data/app/assets/images/website/triangle.gif +0 -0
- data/app/assets/javascripts/appyantra_admin/admin_settings.js.coffee +3 -0
- data/app/assets/javascripts/appyantra_admin/admins/profiles.js.coffee +3 -0
- data/app/assets/javascripts/appyantra_admin/application.js +9 -0
- data/app/assets/javascripts/appyantra_admin/hideshow.js +39 -0
- data/app/assets/javascripts/appyantra_admin/home.js.coffee +3 -0
- data/app/assets/javascripts/appyantra_admin/jquery-1.5.2.min.js +16 -0
- data/app/assets/javascripts/appyantra_admin/jquery.equalHeight.js +20 -0
- data/app/assets/javascripts/appyantra_admin/jquery.tablesorter.min.js +4 -0
- data/app/assets/javascripts/appyantra_admin/managed_models.js.coffee +7 -0
- data/app/assets/javascripts/website/application.js +8 -0
- data/app/assets/javascripts/website/ie/DD_belatedPNG_0.0.8a-min.js +13 -0
- data/app/assets/javascripts/website/jquery.easing.1.3.js +205 -0
- data/app/assets/javascripts/website/jquery.roundabout-1.0.min.js +41 -0
- data/app/assets/javascripts/website/jquery.roundabout-shapes-1.1.js +150 -0
- data/app/assets/stylesheets/appyantra_admin/admin_settings.css.scss +3 -0
- data/app/assets/stylesheets/appyantra_admin/admins/profiles.css.scss +3 -0
- data/app/assets/stylesheets/appyantra_admin/application.css +7 -0
- data/app/assets/stylesheets/appyantra_admin/ie/ie.css +43 -0
- data/app/assets/stylesheets/appyantra_admin/main.css +1191 -0
- data/app/assets/stylesheets/appyantra_admin/managed_models.css.scss +3 -0
- data/app/assets/stylesheets/website/application.css +7 -0
- data/app/assets/stylesheets/website/reset.css +53 -0
- data/app/assets/stylesheets/website/styles.css +889 -0
- data/app/controllers/appyantra_admin/admin_settings_controller.rb +101 -0
- data/app/controllers/appyantra_admin/application_controller.rb +30 -0
- data/app/controllers/appyantra_admin/assets_controller.rb +91 -0
- data/app/controllers/appyantra_admin/home_controller.rb +24 -0
- data/app/controllers/appyantra_admin/pages_controller.rb +123 -0
- data/app/controllers/appyantra_admin/passwords_controller.rb +28 -0
- data/app/controllers/appyantra_admin/profiles_controller.rb +94 -0
- data/app/controllers/appyantra_admin/sessions_controller.rb +20 -0
- data/app/controllers/appyantra_admin/users/confirmations_controller.rb +15 -0
- data/app/controllers/appyantra_admin/users/passwords_controller.rb +16 -0
- data/app/controllers/appyantra_admin/users/registrations_controller.rb +16 -0
- data/app/controllers/appyantra_admin/users/sessions_controller.rb +15 -0
- data/app/controllers/appyantra_admin/users/user_paths.rb +33 -0
- data/app/controllers/appyantra_admin/users_controller.rb +92 -0
- data/app/helpers/appyantra_admin/admin_settings_helper.rb +9 -0
- data/app/helpers/appyantra_admin/application_helper.rb +73 -0
- data/app/helpers/appyantra_admin/pages_helper.rb +38 -0
- data/app/models/activity_feed.rb +5 -0
- data/app/models/activity_log_observer.rb +58 -0
- data/app/models/admin.rb +11 -0
- data/app/models/admin_setting.rb +74 -0
- data/app/models/encrypted_text.rb +20 -0
- data/app/models/link.rb +5 -0
- data/app/models/page.rb +24 -0
- data/app/models/page_keyword.rb +4 -0
- data/app/models/person.rb +14 -0
- data/app/models/short_text.rb +23 -0
- data/app/models/text.rb +11 -0
- data/app/models/user.rb +11 -0
- data/app/sweepers/appyantra_admin/pages_sweeper.rb +20 -0
- data/app/views/appyantra_admin/admin_settings/edit.html.haml +7 -0
- data/app/views/appyantra_admin/admin_settings/index.html.haml +56 -0
- data/app/views/appyantra_admin/admin_settings/mail_settings.html.haml +7 -0
- data/app/views/appyantra_admin/admin_settings/new.html.haml +7 -0
- data/app/views/appyantra_admin/assets/display.js.haml +3 -0
- data/app/views/appyantra_admin/assets/edit.html.haml +7 -0
- data/app/views/appyantra_admin/assets/new.html.haml +7 -0
- data/app/views/appyantra_admin/assets/show.html.haml +55 -0
- data/app/views/appyantra_admin/home/index.html.haml +74 -0
- data/app/views/appyantra_admin/mailer/reset_password_instructions.html.haml +6 -0
- data/app/views/appyantra_admin/mailer/unlock_instructions.html.haml +6 -0
- data/app/views/appyantra_admin/pages/_form.html.haml +40 -0
- data/app/views/appyantra_admin/pages/_page.html.haml +43 -0
- data/app/views/appyantra_admin/pages/edit.html.haml +19 -0
- data/app/views/appyantra_admin/pages/index.html.haml +46 -0
- data/app/views/appyantra_admin/pages/new.html.haml +7 -0
- data/app/views/appyantra_admin/pages/show.html.haml +1 -0
- data/app/views/appyantra_admin/passwords/edit.html.haml +15 -0
- data/app/views/appyantra_admin/passwords/new.html.haml +11 -0
- data/app/views/appyantra_admin/profiles/_admin_profile_form.html.haml +12 -0
- data/app/views/appyantra_admin/profiles/_admin_user.html.haml +11 -0
- data/app/views/appyantra_admin/profiles/edit.html.haml +18 -0
- data/app/views/appyantra_admin/profiles/index.html.haml +51 -0
- data/app/views/appyantra_admin/profiles/new.html.haml +6 -0
- data/app/views/appyantra_admin/profiles/show.html.haml +10 -0
- data/app/views/appyantra_admin/profiles/show.js.haml +3 -0
- data/app/views/appyantra_admin/sessions/new.html.haml +17 -0
- data/app/views/appyantra_admin/shared/_asset_item.html.haml +15 -0
- data/app/views/appyantra_admin/shared/_assets_list.html.haml +6 -0
- data/app/views/appyantra_admin/shared/_formtastic_semantic_form.html.haml +3 -0
- data/app/views/appyantra_admin/shared/_hash_form.html.haml +7 -0
- data/app/views/appyantra_admin/shared/_links.haml +6 -0
- data/app/views/appyantra_admin/shared/types/_encrypted_text.html.haml +1 -0
- data/app/views/appyantra_admin/shared/types/_link.html.haml +1 -0
- data/app/views/appyantra_admin/shared/types/_short_text.html.haml +1 -0
- data/app/views/appyantra_admin/shared/types/_text.html.haml +1 -0
- data/app/views/appyantra_admin/unlocks/new.html.haml +10 -0
- data/app/views/appyantra_admin/users/_form.html.haml +12 -0
- data/app/views/appyantra_admin/users/_user.html.haml +11 -0
- data/app/views/appyantra_admin/users/edit.html.haml +18 -0
- data/app/views/appyantra_admin/users/index.html.haml +54 -0
- data/app/views/appyantra_admin/users/new.html.haml +6 -0
- data/app/views/appyantra_admin/users/show.html.haml +10 -0
- data/app/views/appyantra_admin/users/show.js.haml +3 -0
- data/app/views/layouts/application.html.haml +98 -0
- data/app/views/layouts/appyantra_admin/application.html.haml +106 -0
- data/app/views/layouts/appyantra_admin/landing_page.html.haml +30 -0
- data/app/views/layouts/appyantra_admin/website.html.haml +96 -0
- data/app/views/pages/_google_analytics.html.haml +11 -0
- data/app/views/pages/_meta_tags.html.haml +2 -0
- data/app/views/pages/page.html.haml +4 -0
- data/app/views/users/confirmations/new.html.haml +26 -0
- data/app/views/users/mailer/confirmation_instructions.html.haml +4 -0
- data/app/views/users/mailer/reset_password_instructions.html.haml +6 -0
- data/app/views/users/mailer/unlock_instructions.html.haml +5 -0
- data/app/views/users/passwords/edit.html.haml +31 -0
- data/app/views/users/passwords/new.html.haml +22 -0
- data/app/views/users/registrations/edit.html.haml +42 -0
- data/app/views/users/registrations/new.html.haml +35 -0
- data/app/views/users/sessions/new.html.haml +26 -0
- data/app/views/website/index.html.haml +50 -0
- data/appyantra_admin.gemspec +24 -0
- data/config/initializers/devise.rb +209 -0
- data/config/initializers/formtastic.rb +82 -0
- data/config/initializers/mail_settings.rb +11 -0
- data/config/initializers/secret_token.rb +7 -0
- data/config/initializers/session_store.rb +8 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/routes.rb +71 -0
- data/db/migrate/20120123093508_create_links.rb +15 -0
- data/db/migrate/20120123093916_create_texts.rb +10 -0
- data/db/migrate/20120123094124_create_admin_settings.rb +12 -0
- data/db/migrate/20120124202814_devise_create_admins.rb +25 -0
- data/db/migrate/20120125093505_add_name_to_admins.rb +6 -0
- data/db/migrate/20120217075442_devise_create_users.rb +25 -0
- data/db/migrate/20120217090326_add_name_to_users.rb +6 -0
- data/db/migrate/20120224210009_create_pages.rb +19 -0
- data/db/migrate/20120302084134_add_group_to_admin_settings.rb +5 -0
- data/db/migrate/20120309075847_create_encrypted_texts.rb +10 -0
- data/db/migrate/20120309075904_create_short_texts.rb +10 -0
- data/db/migrate/20120312234850_add_seo_to_pages.rb +5 -0
- data/db/migrate/20120312235235_create_keywords.rb +10 -0
- data/db/migrate/20120314063338_create_activity_feeds.rb +15 -0
- data/lib/appyantra_admin.rb +49 -0
- data/lib/appyantra_admin/crypto.rb +43 -0
- data/lib/appyantra_admin/engine.rb +17 -0
- data/lib/appyantra_admin/utils.rb +27 -0
- data/lib/appyantra_admin/version.rb +3 -0
- data/lib/generators/appyantra_admin/install/USAGE +8 -0
- data/lib/generators/appyantra_admin/install/install_generator.rb +34 -0
- data/lib/generators/appyantra_admin/install/templates/appyantra_admin.rb +28 -0
- data/lib/tasks/appyantra_admin_tasks.rake +47 -0
- data/script/rails +6 -0
- data/test/dummy/.gitignore +36 -0
- data/test/dummy/.rspec +1 -0
- data/test/dummy/Gemfile +43 -0
- data/test/dummy/Guardfile +19 -0
- data/test/dummy/README +261 -0
- data/test/dummy/Rakefile +8 -0
- data/test/dummy/app/assets/javascripts/application.js +9 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/product.rb +2 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +48 -0
- data/test/dummy/config/boot.rb +6 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/db/migrate/20120213070715_create_products.rb +11 -0
- data/test/dummy/db/seeds.rb +7 -0
- data/test/dummy/doc/README_FOR_APP +2 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/robots.txt +5 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/spec/controllers/appyantra_admin/admin_settings_controller_spec.rb +56 -0
- data/test/dummy/spec/controllers/appyantra_admin/assets_controller_spec.rb +64 -0
- data/test/dummy/spec/controllers/appyantra_admin/home_controller_spec.rb +28 -0
- data/test/dummy/spec/controllers/appyantra_admin/passwords_controller_spec.rb +40 -0
- data/test/dummy/spec/controllers/appyantra_admin/profiles_controller_spec.rb +88 -0
- data/test/dummy/spec/controllers/appyantra_admin/sessions_controller_spec.rb +32 -0
- data/test/dummy/spec/factories.rb +55 -0
- data/test/dummy/spec/factories/products.rb +9 -0
- data/test/dummy/spec/helpers/appyantra_admin/application_helper_spec.rb +31 -0
- data/test/dummy/spec/models/admin_setting_spec.rb +22 -0
- data/test/dummy/spec/models/admin_spec.rb +10 -0
- data/test/dummy/spec/models/encrypted_text_spec.rb +13 -0
- data/test/dummy/spec/models/link_spec.rb +5 -0
- data/test/dummy/spec/models/text_spec.rb +5 -0
- data/test/dummy/spec/requests/appyantra_admin/admin_user_auth_spec.rb +54 -0
- data/test/dummy/spec/requests/appyantra_admin/dashboard_spec.rb +34 -0
- data/test/dummy/spec/requests/appyantra_admin/mailer_spec.rb +72 -0
- data/test/dummy/spec/requests/appyantra_admin/manage_pages_spec.rb +209 -0
- data/test/dummy/spec/requests/appyantra_admin/manage_website_users_spec.rb +97 -0
- data/test/dummy/spec/requests/appyantra_admin/website_users_spec.rb +25 -0
- data/test/dummy/spec/routing/sessions_routing_spec.rb +11 -0
- data/test/dummy/spec/spec_helper.rb +51 -0
- data/test/dummy/spec/support/capybara.rb +7 -0
- data/test/dummy/spec/support/controller_macros.rb +8 -0
- data/test/dummy/spec/support/integration_macros.rb +40 -0
- data/test/dummy/spec/support/load_routes.rb +5 -0
- data/test/dummy/spec/support/matchers/user_matcher.rb +13 -0
- metadata +428 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::AdminSettingsController do
|
|
4
|
+
|
|
5
|
+
login_admin
|
|
6
|
+
|
|
7
|
+
let(:website_link) { FactoryGirl.build(:link) }
|
|
8
|
+
let(:website_link2) { FactoryGirl.create(:link) }
|
|
9
|
+
let(:website_link_setting) { FactoryGirl.create(:admin_setting, entity_type: 'Link', entity_id: website_link2.id) }
|
|
10
|
+
|
|
11
|
+
describe "GET 'index'" do
|
|
12
|
+
it "returns http success" do
|
|
13
|
+
get 'index'
|
|
14
|
+
response.should be_success
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "GET 'new'" do
|
|
19
|
+
it "returns http success" do
|
|
20
|
+
get 'new', {setting_name: 'website_url', entity_type: 'Link'}
|
|
21
|
+
response.should be_success
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "POST 'create'" do
|
|
26
|
+
it "returns http success" do
|
|
27
|
+
post 'create', { setting_name: 'website_url', entity_type: 'Link', link: website_link.attributes, group: 'General' }
|
|
28
|
+
response.should be_redirect
|
|
29
|
+
response.should redirect_to '/appyantra_admin/settings'
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "GET 'edit'" do
|
|
34
|
+
it "returns http success" do
|
|
35
|
+
get 'edit', {id: website_link_setting.id, link: website_link.attributes }
|
|
36
|
+
response.should be_success
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "PUT 'update'" do
|
|
41
|
+
it "returns http success" do
|
|
42
|
+
put 'update', {id: website_link_setting.id}
|
|
43
|
+
response.should be_redirect
|
|
44
|
+
response.should redirect_to '/appyantra_admin/settings'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe "DELETE 'destroy'" do
|
|
49
|
+
it "returns http success" do
|
|
50
|
+
delete 'destroy', {id: website_link_setting.id}
|
|
51
|
+
response.should be_redirect
|
|
52
|
+
response.should redirect_to '/appyantra_admin/settings'
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::AssetsController do
|
|
4
|
+
|
|
5
|
+
login_admin
|
|
6
|
+
|
|
7
|
+
let(:product_asset) { FactoryGirl.build(:product) }
|
|
8
|
+
let(:product_asset2) { FactoryGirl.create(:product) }
|
|
9
|
+
let(:asset_name) { 'Product'}
|
|
10
|
+
|
|
11
|
+
describe "GET 'show'" do
|
|
12
|
+
it "returns http success" do
|
|
13
|
+
get 'show', { asset_name: 'Product'}
|
|
14
|
+
response.should be_success
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "GET 'new'" do
|
|
19
|
+
it "returns http success" do
|
|
20
|
+
get 'new', { asset_name: 'Product'}
|
|
21
|
+
response.should be_success
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "POST 'create'" do
|
|
26
|
+
it "returns http success" do
|
|
27
|
+
post 'create', { asset_name: asset_name}
|
|
28
|
+
asset_object = assigns(:asset_object)
|
|
29
|
+
response.should be_redirect
|
|
30
|
+
response.should redirect_to "/appyantra_admin/assets/#{asset_name}/#{asset_object.id}/show"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "GET 'edit'" do
|
|
35
|
+
it "returns http success" do
|
|
36
|
+
get 'edit', { asset_name: 'Product', id: product_asset2.id }
|
|
37
|
+
response.should be_success
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe "PUT 'update'" do
|
|
42
|
+
it "returns http success" do
|
|
43
|
+
put 'update', { asset_name: asset_name, id: product_asset2.id, product: product_asset2.attributes }
|
|
44
|
+
asset_object = assigns(:asset_object)
|
|
45
|
+
response.should be_redirect
|
|
46
|
+
response.should redirect_to "/appyantra_admin/assets/#{asset_name}/#{asset_object.id}/show"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe "GET 'display'" do
|
|
51
|
+
it "returns http success" do
|
|
52
|
+
pending 'JS test case for display asset'
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
describe "DELETE 'destroy'" do
|
|
57
|
+
it "returns http success" do
|
|
58
|
+
delete 'destroy', { asset_name: 'Product', id: product_asset2.id }
|
|
59
|
+
response.should be_redirect
|
|
60
|
+
response.should redirect_to "/appyantra_admin/assets/#{asset_name}"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::HomeController do
|
|
4
|
+
|
|
5
|
+
context "Admin user is signed in" do
|
|
6
|
+
|
|
7
|
+
login_admin
|
|
8
|
+
|
|
9
|
+
describe "GET 'index'" do
|
|
10
|
+
it "returns http success" do
|
|
11
|
+
get 'index'
|
|
12
|
+
assigns(:assets).should eq(AppyantraAdmin.assets)
|
|
13
|
+
response.should be_success
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context "Admin user not signed in" do
|
|
19
|
+
describe "GET 'index'" do
|
|
20
|
+
it "returns http success" do
|
|
21
|
+
get 'index'
|
|
22
|
+
response.should be_redirect
|
|
23
|
+
response.should redirect_to '/appyantra_admin/sign_in'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::PasswordsController do
|
|
4
|
+
|
|
5
|
+
let(:admin_user) { FactoryGirl.create(:admin) }
|
|
6
|
+
|
|
7
|
+
before(:each) do
|
|
8
|
+
@request.env["devise.mapping"] = Devise.mappings[:admin]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe "POST 'create'" do
|
|
12
|
+
it "returns http success" do
|
|
13
|
+
post 'create', { admin: { email: admin_user.email } }
|
|
14
|
+
response.should be_redirect
|
|
15
|
+
response.should redirect_to '/appyantra_admin/sign_in'
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe "GET 'new'" do
|
|
20
|
+
it "returns http success" do
|
|
21
|
+
get 'new'
|
|
22
|
+
response.should be_success
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "GET 'edit'" do
|
|
27
|
+
it "returns http success" do
|
|
28
|
+
get 'edit', {reset_password_token: admin_user.reset_password_token }
|
|
29
|
+
response.should be_success
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "PUT 'update'" do
|
|
34
|
+
it "returns http success" do
|
|
35
|
+
put 'update', {admin: { password: 'admin123', password_confirmation: 'admin123', reset_password_token: admin_user.reset_password_token } }
|
|
36
|
+
response.should be_success
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::ProfilesController do
|
|
4
|
+
|
|
5
|
+
let(:admin_user1) { FactoryGirl.create(:admin, email: 'admin1@appyantra.com') }
|
|
6
|
+
let(:admin_user2) { FactoryGirl.create(:admin, email: 'admin2@appyantra.com') }
|
|
7
|
+
let(:admin_user3) { FactoryGirl.create(:admin, email: 'admin3@appyantra.com') }
|
|
8
|
+
let(:admin_user_attrs) { { first_name: 'Tony', last_name: 'Stark', email: 'tony.stark@appyantra.com' } }
|
|
9
|
+
let(:new_admin_password) { { password: 'admin567', password_confirmation: 'admin567' }}
|
|
10
|
+
let(:admin_user_obj) { FactoryGirl.build(:admin, email: 'admin4@appyantra.com' ) }
|
|
11
|
+
|
|
12
|
+
context "Admin user is signed in" do
|
|
13
|
+
|
|
14
|
+
login_admin
|
|
15
|
+
|
|
16
|
+
describe "GET 'index'" do
|
|
17
|
+
it "returns http success" do
|
|
18
|
+
get 'index'
|
|
19
|
+
assigns(:admin_users).should eq(Admin.all)
|
|
20
|
+
response.should be_success
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe "GET 'show'" do
|
|
25
|
+
it "returns http success" do
|
|
26
|
+
get 'show', { id: admin_user1.id }
|
|
27
|
+
assigns(:selected_admin_user).should eq(admin_user1)
|
|
28
|
+
response.should be_success
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
describe "GET 'new'" do
|
|
33
|
+
it "returns http success" do
|
|
34
|
+
get 'new'
|
|
35
|
+
assigns(:admin_user).should be
|
|
36
|
+
response.should be_success
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe "POST 'create'" do
|
|
41
|
+
it "returns http success" do
|
|
42
|
+
post 'create', { admin_user: admin_user_obj.attributes }
|
|
43
|
+
response.should be_redirect
|
|
44
|
+
response.should redirect_to '/appyantra_admin/profiles'
|
|
45
|
+
Admin.find_by_email(admin_user_obj.email).should be
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe "GET 'edit'" do
|
|
50
|
+
it "returns http success" do
|
|
51
|
+
get 'edit', { id: admin_user1.id }
|
|
52
|
+
assigns(:admin_user).should eq(Admin.find(admin_user1.id))
|
|
53
|
+
response.should be_success
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe "PUT 'update'" do
|
|
58
|
+
it "returns http success" do
|
|
59
|
+
put 'update', { id: admin_user1.id , admin_user: admin_user_attrs }
|
|
60
|
+
response.should be_redirect
|
|
61
|
+
response.should redirect_to '/appyantra_admin/profiles'
|
|
62
|
+
admin_user = Admin.find(admin_user1.id)
|
|
63
|
+
admin_user.first_name.should eq(admin_user_attrs[:first_name])
|
|
64
|
+
admin_user.last_name.should eq(admin_user_attrs[:last_name])
|
|
65
|
+
admin_user.email.should eq(admin_user_attrs[:email])
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe "DELETE 'destroy'" do
|
|
70
|
+
it "returns http success" do
|
|
71
|
+
delete 'destroy', { id: admin_user2.id }
|
|
72
|
+
response.should be_redirect
|
|
73
|
+
response.should redirect_to '/appyantra_admin/profiles'
|
|
74
|
+
Admin.exists?(admin_user2.id).should be_false
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
describe "PUT 'update_password'" do
|
|
79
|
+
it "returns http success" do
|
|
80
|
+
put 'update_password', { id: admin_user3.id, admin_user: new_admin_password }
|
|
81
|
+
response.should be_redirect
|
|
82
|
+
response.should redirect_to '/appyantra_admin/profiles'
|
|
83
|
+
pending 'test password change'
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AppyantraAdmin::SessionsController do
|
|
4
|
+
|
|
5
|
+
let(:admin_user) { FactoryGirl.build(:admin) }
|
|
6
|
+
|
|
7
|
+
before(:each) do
|
|
8
|
+
@request.env["devise.mapping"] = Devise.mappings[:admin]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe "GET 'new'" do
|
|
12
|
+
it "returns http success" do
|
|
13
|
+
get 'new'
|
|
14
|
+
response.should be_success
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "POST 'create'" do
|
|
19
|
+
it "returns http success" do
|
|
20
|
+
post :create, admin: admin_user.attributes
|
|
21
|
+
response.should be_success
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "DELETE 'destroy'" do
|
|
26
|
+
it "returns http success" do
|
|
27
|
+
delete 'destroy'
|
|
28
|
+
response.should be_redirect
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
FactoryGirl.define do
|
|
2
|
+
|
|
3
|
+
factory :admin do
|
|
4
|
+
first_name 'Speedy'
|
|
5
|
+
last_name 'Gonzalves'
|
|
6
|
+
sequence(:email) { |n| "admin#{n}@example.com" }
|
|
7
|
+
password 'admin123'
|
|
8
|
+
password_confirmation 'admin123'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
factory :user do
|
|
12
|
+
first_name 'Stan'
|
|
13
|
+
last_name 'Marsh'
|
|
14
|
+
sequence(:email) { |n| "user#{n}@example.com" }
|
|
15
|
+
password 'admin123'
|
|
16
|
+
password_confirmation 'admin123'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
factory :link do
|
|
20
|
+
name 'website_url'
|
|
21
|
+
text 'Go to the Website'
|
|
22
|
+
href 'http://www.appyantra.com'
|
|
23
|
+
# rel
|
|
24
|
+
# target
|
|
25
|
+
# type
|
|
26
|
+
title 'Website URL'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
factory :text do
|
|
30
|
+
name 'company_name'
|
|
31
|
+
value 'AppYantra'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
factory :admin_setting do
|
|
35
|
+
name 'website_url'
|
|
36
|
+
display_name 'Website URL'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
factory :page_keyword do
|
|
40
|
+
keyword 'keyword'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
factory :page do
|
|
44
|
+
sequence(:title) { |n| "Page#{n}" }
|
|
45
|
+
description 'This is a test page'
|
|
46
|
+
published true
|
|
47
|
+
layout 'application'
|
|
48
|
+
category 'static-page'
|
|
49
|
+
content 'This is a test page.'
|
|
50
|
+
keywords {|keywords| [keywords.association(:page_keyword)]}
|
|
51
|
+
association :created_by, factory: :admin
|
|
52
|
+
association :last_updated_by, factory: :admin
|
|
53
|
+
slug nil
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
# Specs in this file have access to a helper object that includes
|
|
4
|
+
# the AppyantraAdmin::PagesHelper. For example:
|
|
5
|
+
#
|
|
6
|
+
# describe AppyantraAdmin::PagesHelper do
|
|
7
|
+
# describe "string concat" do
|
|
8
|
+
# it "concats two strings with spaces" do
|
|
9
|
+
# helper.concat_strings("this","that").should == "this that"
|
|
10
|
+
# end
|
|
11
|
+
# end
|
|
12
|
+
# end
|
|
13
|
+
describe AppyantraAdmin::ApplicationHelper do
|
|
14
|
+
|
|
15
|
+
let(:field_name) { 'Name'}
|
|
16
|
+
let(:asset_class_name) { 'Product'}
|
|
17
|
+
let(:product_asset) { FactoryGirl.create(:product) }
|
|
18
|
+
|
|
19
|
+
it "setting_value should render setting value partial"
|
|
20
|
+
|
|
21
|
+
it "breadcrumb should render the breadcrums html"
|
|
22
|
+
|
|
23
|
+
it "asset_display_field should display the name of the first field of a model" do
|
|
24
|
+
helper.asset_display_field(asset_class_name).should eq(field_name)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "asset_display_name should display the value of the first field of a model object (asset)" do
|
|
28
|
+
helper.asset_display_name(product_asset).should eq(product_asset.name)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe AdminSetting do
|
|
4
|
+
|
|
5
|
+
let(:link) { FactoryGirl.create(:link) }
|
|
6
|
+
let(:text_entity) { FactoryGirl.create(:text) }
|
|
7
|
+
let(:link_admin_setting) { FactoryGirl.create(:admin_setting, entity_type: 'Link', entity_id: link.id) }
|
|
8
|
+
|
|
9
|
+
it "should return the associated setting entity" do
|
|
10
|
+
link_admin_setting.entity.should eq link
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "can be created using an existing entity" do
|
|
14
|
+
AdminSetting.create_from_entity(text_entity.name, text_entity)
|
|
15
|
+
admin_setting = AdminSetting.find_by_name(text_entity.name)
|
|
16
|
+
admin_setting.should be
|
|
17
|
+
admin_setting.name.should eq(text_entity.name)
|
|
18
|
+
admin_setting.display_name.should eq(text_entity.name.titleize)
|
|
19
|
+
admin_setting.entity_id.should == text_entity.id
|
|
20
|
+
admin_setting.entity_type.should eq(text_entity.class.name)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Admin do
|
|
4
|
+
|
|
5
|
+
let(:admin_user) { FactoryGirl.create(:admin, first_name: 'Eric', last_name: 'Cartman' ) }
|
|
6
|
+
|
|
7
|
+
it "should return a display name" do
|
|
8
|
+
admin_user.display_name.should eq admin_user.first_name + ' ' + admin_user.last_name
|
|
9
|
+
end
|
|
10
|
+
end
|