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.
Files changed (261) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +24 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +101 -0
  5. data/Rakefile +26 -0
  6. data/app/assets/images/appyantra_admin/.gitkeep +0 -0
  7. data/app/assets/images/appyantra_admin/breadcrumb_divider.png +0 -0
  8. data/app/assets/images/appyantra_admin/btn_submit.png +0 -0
  9. data/app/assets/images/appyantra_admin/btn_submit_2.png +0 -0
  10. data/app/assets/images/appyantra_admin/btn_view_site.png +0 -0
  11. data/app/assets/images/appyantra_admin/header_bg.png +0 -0
  12. data/app/assets/images/appyantra_admin/header_shadow.png +0 -0
  13. data/app/assets/images/appyantra_admin/icn_add_user.png +0 -0
  14. data/app/assets/images/appyantra_admin/icn_alert_error.png +0 -0
  15. data/app/assets/images/appyantra_admin/icn_alert_info.png +0 -0
  16. data/app/assets/images/appyantra_admin/icn_alert_success.png +0 -0
  17. data/app/assets/images/appyantra_admin/icn_alert_warning.png +0 -0
  18. data/app/assets/images/appyantra_admin/icn_audio.png +0 -0
  19. data/app/assets/images/appyantra_admin/icn_categories.png +0 -0
  20. data/app/assets/images/appyantra_admin/icn_edit.png +0 -0
  21. data/app/assets/images/appyantra_admin/icn_edit_article.png +0 -0
  22. data/app/assets/images/appyantra_admin/icn_folder.png +0 -0
  23. data/app/assets/images/appyantra_admin/icn_jump_back.png +0 -0
  24. data/app/assets/images/appyantra_admin/icn_logout.png +0 -0
  25. data/app/assets/images/appyantra_admin/icn_new_article.png +0 -0
  26. data/app/assets/images/appyantra_admin/icn_photo.png +0 -0
  27. data/app/assets/images/appyantra_admin/icn_profile.png +0 -0
  28. data/app/assets/images/appyantra_admin/icn_search.png +0 -0
  29. data/app/assets/images/appyantra_admin/icn_security.png +0 -0
  30. data/app/assets/images/appyantra_admin/icn_settings.png +0 -0
  31. data/app/assets/images/appyantra_admin/icn_tags.png +0 -0
  32. data/app/assets/images/appyantra_admin/icn_trash.png +0 -0
  33. data/app/assets/images/appyantra_admin/icn_user.png +0 -0
  34. data/app/assets/images/appyantra_admin/icn_video.png +0 -0
  35. data/app/assets/images/appyantra_admin/icn_view_users.png +0 -0
  36. data/app/assets/images/appyantra_admin/module_footer_bg.png +0 -0
  37. data/app/assets/images/appyantra_admin/post_message.png +0 -0
  38. data/app/assets/images/appyantra_admin/secondary_bar.png +0 -0
  39. data/app/assets/images/appyantra_admin/secondary_bar_shadow.png +0 -0
  40. data/app/assets/images/appyantra_admin/sidebar.png +0 -0
  41. data/app/assets/images/appyantra_admin/sidebar_divider.png +0 -0
  42. data/app/assets/images/appyantra_admin/sidebar_shadow.png +0 -0
  43. data/app/assets/images/appyantra_admin/table_sorter_header.png +0 -0
  44. data/app/assets/images/appyantra_admin/trash.png +0 -0
  45. data/app/assets/images/appyantra_admin/view.png +0 -0
  46. data/app/assets/images/website/600x300.gif +0 -0
  47. data/app/assets/images/website/alert-overlay.png +0 -0
  48. data/app/assets/images/website/bg.png +0 -0
  49. data/app/assets/images/website/link_bg.png +0 -0
  50. data/app/assets/images/website/link_border.png +0 -0
  51. data/app/assets/images/website/place_holder_img.png +0 -0
  52. data/app/assets/images/website/triangle.gif +0 -0
  53. data/app/assets/javascripts/appyantra_admin/admin_settings.js.coffee +3 -0
  54. data/app/assets/javascripts/appyantra_admin/admins/profiles.js.coffee +3 -0
  55. data/app/assets/javascripts/appyantra_admin/application.js +9 -0
  56. data/app/assets/javascripts/appyantra_admin/hideshow.js +39 -0
  57. data/app/assets/javascripts/appyantra_admin/home.js.coffee +3 -0
  58. data/app/assets/javascripts/appyantra_admin/jquery-1.5.2.min.js +16 -0
  59. data/app/assets/javascripts/appyantra_admin/jquery.equalHeight.js +20 -0
  60. data/app/assets/javascripts/appyantra_admin/jquery.tablesorter.min.js +4 -0
  61. data/app/assets/javascripts/appyantra_admin/managed_models.js.coffee +7 -0
  62. data/app/assets/javascripts/website/application.js +8 -0
  63. data/app/assets/javascripts/website/ie/DD_belatedPNG_0.0.8a-min.js +13 -0
  64. data/app/assets/javascripts/website/jquery.easing.1.3.js +205 -0
  65. data/app/assets/javascripts/website/jquery.roundabout-1.0.min.js +41 -0
  66. data/app/assets/javascripts/website/jquery.roundabout-shapes-1.1.js +150 -0
  67. data/app/assets/stylesheets/appyantra_admin/admin_settings.css.scss +3 -0
  68. data/app/assets/stylesheets/appyantra_admin/admins/profiles.css.scss +3 -0
  69. data/app/assets/stylesheets/appyantra_admin/application.css +7 -0
  70. data/app/assets/stylesheets/appyantra_admin/ie/ie.css +43 -0
  71. data/app/assets/stylesheets/appyantra_admin/main.css +1191 -0
  72. data/app/assets/stylesheets/appyantra_admin/managed_models.css.scss +3 -0
  73. data/app/assets/stylesheets/website/application.css +7 -0
  74. data/app/assets/stylesheets/website/reset.css +53 -0
  75. data/app/assets/stylesheets/website/styles.css +889 -0
  76. data/app/controllers/appyantra_admin/admin_settings_controller.rb +101 -0
  77. data/app/controllers/appyantra_admin/application_controller.rb +30 -0
  78. data/app/controllers/appyantra_admin/assets_controller.rb +91 -0
  79. data/app/controllers/appyantra_admin/home_controller.rb +24 -0
  80. data/app/controllers/appyantra_admin/pages_controller.rb +123 -0
  81. data/app/controllers/appyantra_admin/passwords_controller.rb +28 -0
  82. data/app/controllers/appyantra_admin/profiles_controller.rb +94 -0
  83. data/app/controllers/appyantra_admin/sessions_controller.rb +20 -0
  84. data/app/controllers/appyantra_admin/users/confirmations_controller.rb +15 -0
  85. data/app/controllers/appyantra_admin/users/passwords_controller.rb +16 -0
  86. data/app/controllers/appyantra_admin/users/registrations_controller.rb +16 -0
  87. data/app/controllers/appyantra_admin/users/sessions_controller.rb +15 -0
  88. data/app/controllers/appyantra_admin/users/user_paths.rb +33 -0
  89. data/app/controllers/appyantra_admin/users_controller.rb +92 -0
  90. data/app/helpers/appyantra_admin/admin_settings_helper.rb +9 -0
  91. data/app/helpers/appyantra_admin/application_helper.rb +73 -0
  92. data/app/helpers/appyantra_admin/pages_helper.rb +38 -0
  93. data/app/models/activity_feed.rb +5 -0
  94. data/app/models/activity_log_observer.rb +58 -0
  95. data/app/models/admin.rb +11 -0
  96. data/app/models/admin_setting.rb +74 -0
  97. data/app/models/encrypted_text.rb +20 -0
  98. data/app/models/link.rb +5 -0
  99. data/app/models/page.rb +24 -0
  100. data/app/models/page_keyword.rb +4 -0
  101. data/app/models/person.rb +14 -0
  102. data/app/models/short_text.rb +23 -0
  103. data/app/models/text.rb +11 -0
  104. data/app/models/user.rb +11 -0
  105. data/app/sweepers/appyantra_admin/pages_sweeper.rb +20 -0
  106. data/app/views/appyantra_admin/admin_settings/edit.html.haml +7 -0
  107. data/app/views/appyantra_admin/admin_settings/index.html.haml +56 -0
  108. data/app/views/appyantra_admin/admin_settings/mail_settings.html.haml +7 -0
  109. data/app/views/appyantra_admin/admin_settings/new.html.haml +7 -0
  110. data/app/views/appyantra_admin/assets/display.js.haml +3 -0
  111. data/app/views/appyantra_admin/assets/edit.html.haml +7 -0
  112. data/app/views/appyantra_admin/assets/new.html.haml +7 -0
  113. data/app/views/appyantra_admin/assets/show.html.haml +55 -0
  114. data/app/views/appyantra_admin/home/index.html.haml +74 -0
  115. data/app/views/appyantra_admin/mailer/reset_password_instructions.html.haml +6 -0
  116. data/app/views/appyantra_admin/mailer/unlock_instructions.html.haml +6 -0
  117. data/app/views/appyantra_admin/pages/_form.html.haml +40 -0
  118. data/app/views/appyantra_admin/pages/_page.html.haml +43 -0
  119. data/app/views/appyantra_admin/pages/edit.html.haml +19 -0
  120. data/app/views/appyantra_admin/pages/index.html.haml +46 -0
  121. data/app/views/appyantra_admin/pages/new.html.haml +7 -0
  122. data/app/views/appyantra_admin/pages/show.html.haml +1 -0
  123. data/app/views/appyantra_admin/passwords/edit.html.haml +15 -0
  124. data/app/views/appyantra_admin/passwords/new.html.haml +11 -0
  125. data/app/views/appyantra_admin/profiles/_admin_profile_form.html.haml +12 -0
  126. data/app/views/appyantra_admin/profiles/_admin_user.html.haml +11 -0
  127. data/app/views/appyantra_admin/profiles/edit.html.haml +18 -0
  128. data/app/views/appyantra_admin/profiles/index.html.haml +51 -0
  129. data/app/views/appyantra_admin/profiles/new.html.haml +6 -0
  130. data/app/views/appyantra_admin/profiles/show.html.haml +10 -0
  131. data/app/views/appyantra_admin/profiles/show.js.haml +3 -0
  132. data/app/views/appyantra_admin/sessions/new.html.haml +17 -0
  133. data/app/views/appyantra_admin/shared/_asset_item.html.haml +15 -0
  134. data/app/views/appyantra_admin/shared/_assets_list.html.haml +6 -0
  135. data/app/views/appyantra_admin/shared/_formtastic_semantic_form.html.haml +3 -0
  136. data/app/views/appyantra_admin/shared/_hash_form.html.haml +7 -0
  137. data/app/views/appyantra_admin/shared/_links.haml +6 -0
  138. data/app/views/appyantra_admin/shared/types/_encrypted_text.html.haml +1 -0
  139. data/app/views/appyantra_admin/shared/types/_link.html.haml +1 -0
  140. data/app/views/appyantra_admin/shared/types/_short_text.html.haml +1 -0
  141. data/app/views/appyantra_admin/shared/types/_text.html.haml +1 -0
  142. data/app/views/appyantra_admin/unlocks/new.html.haml +10 -0
  143. data/app/views/appyantra_admin/users/_form.html.haml +12 -0
  144. data/app/views/appyantra_admin/users/_user.html.haml +11 -0
  145. data/app/views/appyantra_admin/users/edit.html.haml +18 -0
  146. data/app/views/appyantra_admin/users/index.html.haml +54 -0
  147. data/app/views/appyantra_admin/users/new.html.haml +6 -0
  148. data/app/views/appyantra_admin/users/show.html.haml +10 -0
  149. data/app/views/appyantra_admin/users/show.js.haml +3 -0
  150. data/app/views/layouts/application.html.haml +98 -0
  151. data/app/views/layouts/appyantra_admin/application.html.haml +106 -0
  152. data/app/views/layouts/appyantra_admin/landing_page.html.haml +30 -0
  153. data/app/views/layouts/appyantra_admin/website.html.haml +96 -0
  154. data/app/views/pages/_google_analytics.html.haml +11 -0
  155. data/app/views/pages/_meta_tags.html.haml +2 -0
  156. data/app/views/pages/page.html.haml +4 -0
  157. data/app/views/users/confirmations/new.html.haml +26 -0
  158. data/app/views/users/mailer/confirmation_instructions.html.haml +4 -0
  159. data/app/views/users/mailer/reset_password_instructions.html.haml +6 -0
  160. data/app/views/users/mailer/unlock_instructions.html.haml +5 -0
  161. data/app/views/users/passwords/edit.html.haml +31 -0
  162. data/app/views/users/passwords/new.html.haml +22 -0
  163. data/app/views/users/registrations/edit.html.haml +42 -0
  164. data/app/views/users/registrations/new.html.haml +35 -0
  165. data/app/views/users/sessions/new.html.haml +26 -0
  166. data/app/views/website/index.html.haml +50 -0
  167. data/appyantra_admin.gemspec +24 -0
  168. data/config/initializers/devise.rb +209 -0
  169. data/config/initializers/formtastic.rb +82 -0
  170. data/config/initializers/mail_settings.rb +11 -0
  171. data/config/initializers/secret_token.rb +7 -0
  172. data/config/initializers/session_store.rb +8 -0
  173. data/config/initializers/wrap_parameters.rb +14 -0
  174. data/config/routes.rb +71 -0
  175. data/db/migrate/20120123093508_create_links.rb +15 -0
  176. data/db/migrate/20120123093916_create_texts.rb +10 -0
  177. data/db/migrate/20120123094124_create_admin_settings.rb +12 -0
  178. data/db/migrate/20120124202814_devise_create_admins.rb +25 -0
  179. data/db/migrate/20120125093505_add_name_to_admins.rb +6 -0
  180. data/db/migrate/20120217075442_devise_create_users.rb +25 -0
  181. data/db/migrate/20120217090326_add_name_to_users.rb +6 -0
  182. data/db/migrate/20120224210009_create_pages.rb +19 -0
  183. data/db/migrate/20120302084134_add_group_to_admin_settings.rb +5 -0
  184. data/db/migrate/20120309075847_create_encrypted_texts.rb +10 -0
  185. data/db/migrate/20120309075904_create_short_texts.rb +10 -0
  186. data/db/migrate/20120312234850_add_seo_to_pages.rb +5 -0
  187. data/db/migrate/20120312235235_create_keywords.rb +10 -0
  188. data/db/migrate/20120314063338_create_activity_feeds.rb +15 -0
  189. data/lib/appyantra_admin.rb +49 -0
  190. data/lib/appyantra_admin/crypto.rb +43 -0
  191. data/lib/appyantra_admin/engine.rb +17 -0
  192. data/lib/appyantra_admin/utils.rb +27 -0
  193. data/lib/appyantra_admin/version.rb +3 -0
  194. data/lib/generators/appyantra_admin/install/USAGE +8 -0
  195. data/lib/generators/appyantra_admin/install/install_generator.rb +34 -0
  196. data/lib/generators/appyantra_admin/install/templates/appyantra_admin.rb +28 -0
  197. data/lib/tasks/appyantra_admin_tasks.rake +47 -0
  198. data/script/rails +6 -0
  199. data/test/dummy/.gitignore +36 -0
  200. data/test/dummy/.rspec +1 -0
  201. data/test/dummy/Gemfile +43 -0
  202. data/test/dummy/Guardfile +19 -0
  203. data/test/dummy/README +261 -0
  204. data/test/dummy/Rakefile +8 -0
  205. data/test/dummy/app/assets/javascripts/application.js +9 -0
  206. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  207. data/test/dummy/app/controllers/application_controller.rb +3 -0
  208. data/test/dummy/app/helpers/application_helper.rb +2 -0
  209. data/test/dummy/app/models/product.rb +2 -0
  210. data/test/dummy/config.ru +4 -0
  211. data/test/dummy/config/application.rb +48 -0
  212. data/test/dummy/config/boot.rb +6 -0
  213. data/test/dummy/config/environment.rb +5 -0
  214. data/test/dummy/config/environments/development.rb +30 -0
  215. data/test/dummy/config/environments/production.rb +60 -0
  216. data/test/dummy/config/environments/test.rb +39 -0
  217. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  218. data/test/dummy/config/initializers/inflections.rb +10 -0
  219. data/test/dummy/config/initializers/mime_types.rb +5 -0
  220. data/test/dummy/config/initializers/secret_token.rb +7 -0
  221. data/test/dummy/config/initializers/session_store.rb +8 -0
  222. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  223. data/test/dummy/config/locales/en.yml +5 -0
  224. data/test/dummy/config/routes.rb +4 -0
  225. data/test/dummy/db/migrate/20120213070715_create_products.rb +11 -0
  226. data/test/dummy/db/seeds.rb +7 -0
  227. data/test/dummy/doc/README_FOR_APP +2 -0
  228. data/test/dummy/public/404.html +26 -0
  229. data/test/dummy/public/422.html +26 -0
  230. data/test/dummy/public/500.html +26 -0
  231. data/test/dummy/public/favicon.ico +0 -0
  232. data/test/dummy/public/robots.txt +5 -0
  233. data/test/dummy/script/rails +6 -0
  234. data/test/dummy/spec/controllers/appyantra_admin/admin_settings_controller_spec.rb +56 -0
  235. data/test/dummy/spec/controllers/appyantra_admin/assets_controller_spec.rb +64 -0
  236. data/test/dummy/spec/controllers/appyantra_admin/home_controller_spec.rb +28 -0
  237. data/test/dummy/spec/controllers/appyantra_admin/passwords_controller_spec.rb +40 -0
  238. data/test/dummy/spec/controllers/appyantra_admin/profiles_controller_spec.rb +88 -0
  239. data/test/dummy/spec/controllers/appyantra_admin/sessions_controller_spec.rb +32 -0
  240. data/test/dummy/spec/factories.rb +55 -0
  241. data/test/dummy/spec/factories/products.rb +9 -0
  242. data/test/dummy/spec/helpers/appyantra_admin/application_helper_spec.rb +31 -0
  243. data/test/dummy/spec/models/admin_setting_spec.rb +22 -0
  244. data/test/dummy/spec/models/admin_spec.rb +10 -0
  245. data/test/dummy/spec/models/encrypted_text_spec.rb +13 -0
  246. data/test/dummy/spec/models/link_spec.rb +5 -0
  247. data/test/dummy/spec/models/text_spec.rb +5 -0
  248. data/test/dummy/spec/requests/appyantra_admin/admin_user_auth_spec.rb +54 -0
  249. data/test/dummy/spec/requests/appyantra_admin/dashboard_spec.rb +34 -0
  250. data/test/dummy/spec/requests/appyantra_admin/mailer_spec.rb +72 -0
  251. data/test/dummy/spec/requests/appyantra_admin/manage_pages_spec.rb +209 -0
  252. data/test/dummy/spec/requests/appyantra_admin/manage_website_users_spec.rb +97 -0
  253. data/test/dummy/spec/requests/appyantra_admin/website_users_spec.rb +25 -0
  254. data/test/dummy/spec/routing/sessions_routing_spec.rb +11 -0
  255. data/test/dummy/spec/spec_helper.rb +51 -0
  256. data/test/dummy/spec/support/capybara.rb +7 -0
  257. data/test/dummy/spec/support/controller_macros.rb +8 -0
  258. data/test/dummy/spec/support/integration_macros.rb +40 -0
  259. data/test/dummy/spec/support/load_routes.rb +5 -0
  260. data/test/dummy/spec/support/matchers/user_matcher.rb +13 -0
  261. 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,9 @@
1
+ # Read about factories at http://github.com/thoughtbot/factory_girl
2
+
3
+ FactoryGirl.define do
4
+ factory :product do
5
+ name "product1"
6
+ product_type "books"
7
+ description "Book product"
8
+ end
9
+ 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