enju_leaf 1.1.0.beta3

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 (610) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +24 -0
  4. data/Rakefile +35 -0
  5. data/app/assets/images/border.png +0 -0
  6. data/app/assets/images/controls.png +0 -0
  7. data/app/assets/images/icons/arrow_divide.png +0 -0
  8. data/app/assets/images/icons/arrow_down.png +0 -0
  9. data/app/assets/images/icons/arrow_left.png +0 -0
  10. data/app/assets/images/icons/arrow_up.png +0 -0
  11. data/app/assets/images/icons/basket_add.png +0 -0
  12. data/app/assets/images/icons/book.png +0 -0
  13. data/app/assets/images/icons/book_edit.png +0 -0
  14. data/app/assets/images/icons/bullet_go.png +0 -0
  15. data/app/assets/images/icons/cancel.png +0 -0
  16. data/app/assets/images/icons/cd.png +0 -0
  17. data/app/assets/images/icons/comments.png +0 -0
  18. data/app/assets/images/icons/cross.png +0 -0
  19. data/app/assets/images/icons/date.png +0 -0
  20. data/app/assets/images/icons/delete.png +0 -0
  21. data/app/assets/images/icons/dvd.png +0 -0
  22. data/app/assets/images/icons/email.png +0 -0
  23. data/app/assets/images/icons/feed.png +0 -0
  24. data/app/assets/images/icons/film.png +0 -0
  25. data/app/assets/images/icons/group.png +0 -0
  26. data/app/assets/images/icons/help.png +0 -0
  27. data/app/assets/images/icons/lock.png +0 -0
  28. data/app/assets/images/icons/map.png +0 -0
  29. data/app/assets/images/icons/monitor.png +0 -0
  30. data/app/assets/images/icons/newspaper.png +0 -0
  31. data/app/assets/images/icons/page_edit.png +0 -0
  32. data/app/assets/images/icons/page_go.png +0 -0
  33. data/app/assets/images/icons/page_white_acrobat.png +0 -0
  34. data/app/assets/images/icons/page_white_cd.png +0 -0
  35. data/app/assets/images/icons/page_white_delete.png +0 -0
  36. data/app/assets/images/icons/page_white_dvd.png +0 -0
  37. data/app/assets/images/icons/page_white_edit.png +0 -0
  38. data/app/assets/images/icons/page_white_excel.png +0 -0
  39. data/app/assets/images/icons/page_white_flash.png +0 -0
  40. data/app/assets/images/icons/page_white_go.png +0 -0
  41. data/app/assets/images/icons/page_white_picture.png +0 -0
  42. data/app/assets/images/icons/page_white_powerpoint.png +0 -0
  43. data/app/assets/images/icons/page_white_text.png +0 -0
  44. data/app/assets/images/icons/page_white_word.png +0 -0
  45. data/app/assets/images/icons/page_white_zip.png +0 -0
  46. data/app/assets/images/icons/picture.png +0 -0
  47. data/app/assets/images/icons/picture_link.png +0 -0
  48. data/app/assets/images/icons/sound.png +0 -0
  49. data/app/assets/images/icons/star.png +0 -0
  50. data/app/assets/images/icons/stop.png +0 -0
  51. data/app/assets/images/icons/tag_blue_edit.png +0 -0
  52. data/app/assets/images/icons/user.png +0 -0
  53. data/app/assets/images/icons/world.png +0 -0
  54. data/app/assets/images/icons/world_go.png +0 -0
  55. data/app/assets/images/ie6/borderBottomCenter.png +0 -0
  56. data/app/assets/images/ie6/borderBottomLeft.png +0 -0
  57. data/app/assets/images/ie6/borderBottomRight.png +0 -0
  58. data/app/assets/images/ie6/borderMiddleLeft.png +0 -0
  59. data/app/assets/images/ie6/borderMiddleRight.png +0 -0
  60. data/app/assets/images/ie6/borderTopCenter.png +0 -0
  61. data/app/assets/images/ie6/borderTopLeft.png +0 -0
  62. data/app/assets/images/ie6/borderTopRight.png +0 -0
  63. data/app/assets/images/loading.gif +0 -0
  64. data/app/assets/images/loading_background.png +0 -0
  65. data/app/assets/images/overlay.png +0 -0
  66. data/app/assets/images/rails.png +0 -0
  67. data/app/assets/images/spinner.gif +0 -0
  68. data/app/assets/images/unknown_resource.png +0 -0
  69. data/app/assets/javascripts/enju_leaf.js +16 -0
  70. data/app/assets/javascripts/menu.enju.js +10 -0
  71. data/app/assets/javascripts/mobile.js +3 -0
  72. data/app/assets/javascripts/portlets.js +63 -0
  73. data/app/assets/javascripts/select_locale.js +9 -0
  74. data/app/assets/javascripts/tab_view.js +4 -0
  75. data/app/assets/stylesheets/enju.css +536 -0
  76. data/app/assets/stylesheets/enju_leaf.css +14 -0
  77. data/app/assets/stylesheets/enju_mobile.css +3 -0
  78. data/app/assets/stylesheets/enju_print.css +9 -0
  79. data/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  80. data/app/assets/stylesheets/images/border.png +0 -0
  81. data/app/assets/stylesheets/images/controls.png +0 -0
  82. data/app/assets/stylesheets/images/icons-18-black.png +0 -0
  83. data/app/assets/stylesheets/images/icons-18-white.png +0 -0
  84. data/app/assets/stylesheets/images/icons-36-black.png +0 -0
  85. data/app/assets/stylesheets/images/icons-36-white.png +0 -0
  86. data/app/assets/stylesheets/images/ie6/borderBottomCenter.png +0 -0
  87. data/app/assets/stylesheets/images/ie6/borderBottomLeft.png +0 -0
  88. data/app/assets/stylesheets/images/ie6/borderBottomRight.png +0 -0
  89. data/app/assets/stylesheets/images/ie6/borderMiddleLeft.png +0 -0
  90. data/app/assets/stylesheets/images/ie6/borderMiddleRight.png +0 -0
  91. data/app/assets/stylesheets/images/ie6/borderTopCenter.png +0 -0
  92. data/app/assets/stylesheets/images/ie6/borderTopLeft.png +0 -0
  93. data/app/assets/stylesheets/images/ie6/borderTopRight.png +0 -0
  94. data/app/assets/stylesheets/images/loading.gif +0 -0
  95. data/app/assets/stylesheets/images/loading_background.png +0 -0
  96. data/app/assets/stylesheets/images/overlay.png +0 -0
  97. data/app/assets/stylesheets/images/spinner_bar.gif +0 -0
  98. data/app/assets/stylesheets/mobile.css +8 -0
  99. data/app/assets/stylesheets/pagination.css +92 -0
  100. data/app/assets/stylesheets/portlets.css +7 -0
  101. data/app/assets/stylesheets/print.css +7 -0
  102. data/app/assets/stylesheets/scaffold.css +56 -0
  103. data/app/assets/stylesheets/scaffold_modified.css +60 -0
  104. data/app/assets/stylesheets/scaffolds.css.scss +56 -0
  105. data/app/controllers/my_accounts_controller.rb +74 -0
  106. data/app/controllers/page_controller.rb +81 -0
  107. data/app/controllers/roles_controller.rb +44 -0
  108. data/app/controllers/user_groups_controller.rb +84 -0
  109. data/app/controllers/users_controller.rb +195 -0
  110. data/app/helpers/page_helper.rb +2 -0
  111. data/app/mailers/notifier.rb +40 -0
  112. data/app/models/enju_leaf/ability.rb +63 -0
  113. data/app/models/local_patron.rb +27 -0
  114. data/app/models/role.rb +46 -0
  115. data/app/models/setting.rb +4 -0
  116. data/app/models/user_group.rb +39 -0
  117. data/app/models/user_has_role.rb +21 -0
  118. data/app/models/user_sweeper.rb +18 -0
  119. data/app/views/devise/confirmations/new.html.erb +12 -0
  120. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  121. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  122. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  123. data/app/views/devise/passwords/edit.html.erb +24 -0
  124. data/app/views/devise/passwords/new.html.erb +20 -0
  125. data/app/views/devise/registrations/edit.html.erb +33 -0
  126. data/app/views/devise/registrations/new.html.erb +18 -0
  127. data/app/views/devise/sessions/new.html.erb +37 -0
  128. data/app/views/devise/sessions/new.mobile.erb +29 -0
  129. data/app/views/devise/shared/_links.erb +19 -0
  130. data/app/views/devise/unlocks/new.html.erb +12 -0
  131. data/app/views/kaminari/_first_page.html.erb +9 -0
  132. data/app/views/kaminari/_first_page.mobile.erb +12 -0
  133. data/app/views/kaminari/_gap.html.erb +8 -0
  134. data/app/views/kaminari/_gap.mobile.erb +10 -0
  135. data/app/views/kaminari/_last_page.html.erb +9 -0
  136. data/app/views/kaminari/_last_page.mobile.erb +13 -0
  137. data/app/views/kaminari/_next_page.html.erb +9 -0
  138. data/app/views/kaminari/_next_page.mobile.erb +13 -0
  139. data/app/views/kaminari/_page.html.erb +12 -0
  140. data/app/views/kaminari/_page.mobile.erb +12 -0
  141. data/app/views/kaminari/_paginator.html.erb +25 -0
  142. data/app/views/kaminari/_paginator.mobile.erb +25 -0
  143. data/app/views/kaminari/_prev_page.html.erb +9 -0
  144. data/app/views/kaminari/_prev_page.mobile.erb +13 -0
  145. data/app/views/layouts/application.html.erb +34 -0
  146. data/app/views/layouts/application.mobile.erb +18 -0
  147. data/app/views/layouts/devise/passwords.html.erb +21 -0
  148. data/app/views/layouts/devise/passwords.mobile.erb +18 -0
  149. data/app/views/layouts/devise/sessions.html.erb +21 -0
  150. data/app/views/layouts/devise/sessions.mobile.erb +18 -0
  151. data/app/views/layouts/patrons.html.erb +26 -0
  152. data/app/views/layouts/patrons.mobile.erb +18 -0
  153. data/app/views/my_accounts/_edit_credential.html.erb +87 -0
  154. data/app/views/my_accounts/_form.html.erb +24 -0
  155. data/app/views/my_accounts/_show.html.erb +1 -0
  156. data/app/views/my_accounts/edit.html.erb +73 -0
  157. data/app/views/my_accounts/show.html.erb +72 -0
  158. data/app/views/my_accounts/show.mobile.erb +1 -0
  159. data/app/views/notifier/manifestation_info.en.text.erb +18 -0
  160. data/app/views/notifier/manifestation_info.ja.text.erb +18 -0
  161. data/app/views/page/403.html.erb +9 -0
  162. data/app/views/page/403.mobile.erb +5 -0
  163. data/app/views/page/403.xml.erb +4 -0
  164. data/app/views/page/404.html.erb +9 -0
  165. data/app/views/page/404.mobile.erb +5 -0
  166. data/app/views/page/404.xml.erb +4 -0
  167. data/app/views/page/500.html.erb +9 -0
  168. data/app/views/page/500.mobile.erb +5 -0
  169. data/app/views/page/500.xml.erb +4 -0
  170. data/app/views/page/_add.html.erb +11 -0
  171. data/app/views/page/_footer.html.erb +13 -0
  172. data/app/views/page/_footer.mobile.erb +3 -0
  173. data/app/views/page/_header.html.erb +34 -0
  174. data/app/views/page/_include.html.erb +4 -0
  175. data/app/views/page/_index.html.erb +57 -0
  176. data/app/views/page/_index.mobile.erb +25 -0
  177. data/app/views/page/_locale_menu.html.erb +2 -0
  178. data/app/views/page/_login.html.erb +5 -0
  179. data/app/views/page/_menu.html.erb +136 -0
  180. data/app/views/page/_mobile.mobile.erb +3 -0
  181. data/app/views/page/_msie_acceralator.html.erb +6 -0
  182. data/app/views/page/_portlets.html.erb +26 -0
  183. data/app/views/page/_position.html.erb +2 -0
  184. data/app/views/page/_required_field.html.erb +4 -0
  185. data/app/views/page/_search_form.html.erb +11 -0
  186. data/app/views/page/_search_form.mobile.erb +10 -0
  187. data/app/views/page/_select_locale.html.erb +14 -0
  188. data/app/views/page/about.en.html.erb +58 -0
  189. data/app/views/page/about.ja.html.erb +57 -0
  190. data/app/views/page/add_on.html.erb +13 -0
  191. data/app/views/page/advanced_search.html.erb +77 -0
  192. data/app/views/page/configuration.html.erb +113 -0
  193. data/app/views/page/export.html.erb +31 -0
  194. data/app/views/page/import.html.erb +19 -0
  195. data/app/views/page/index.html.erb +5 -0
  196. data/app/views/page/index.mobile.erb +1 -0
  197. data/app/views/page/msie_acceralator.builder +15 -0
  198. data/app/views/page/opensearch.builder +16 -0
  199. data/app/views/page/statistics.html.erb +105 -0
  200. data/app/views/roles/_form.html.erb +19 -0
  201. data/app/views/roles/edit.html.erb +13 -0
  202. data/app/views/roles/index.html.erb +28 -0
  203. data/app/views/roles/new.html.erb +12 -0
  204. data/app/views/roles/show.html.erb +44 -0
  205. data/app/views/user_groups/_form.html.erb +35 -0
  206. data/app/views/user_groups/edit.html.erb +13 -0
  207. data/app/views/user_groups/index.html.erb +41 -0
  208. data/app/views/user_groups/new.html.erb +12 -0
  209. data/app/views/user_groups/show.html.erb +64 -0
  210. data/app/views/users/_edit_credential.html.erb +79 -0
  211. data/app/views/users/_form.html.erb +24 -0
  212. data/app/views/users/_show.html.erb +1 -0
  213. data/app/views/users/edit.html.erb +76 -0
  214. data/app/views/users/index.html.erb +67 -0
  215. data/app/views/users/new.html.erb +85 -0
  216. data/app/views/users/show.html.erb +86 -0
  217. data/app/views/users/show.mobile.erb +1 -0
  218. data/config/initializers/mime_types.rb +13 -0
  219. data/config/locales/devise.en.yml +59 -0
  220. data/config/locales/devise.ja.yml +55 -0
  221. data/config/locales/ja.yml +200 -0
  222. data/config/locales/kaminari.yml +19 -0
  223. data/config/locales/simple_form.en.yml +25 -0
  224. data/config/locales/simple_form.ja.yml +27 -0
  225. data/config/locales/translation_en.yml +423 -0
  226. data/config/locales/translation_ja.yml +400 -0
  227. data/config/routes.rb +33 -0
  228. data/db/fixtures2/bookstores.yml +9 -0
  229. data/db/fixtures2/carrier_type_has_checkout_types.yml +8 -0
  230. data/db/fixtures2/carrier_types.yml +29 -0
  231. data/db/fixtures2/checkout_types.yml +22 -0
  232. data/db/fixtures2/circulation_statuses.yml +106 -0
  233. data/db/fixtures2/classification_types.yml +7 -0
  234. data/db/fixtures2/content_types.yml +22 -0
  235. data/db/fixtures2/countries.yml +2044 -0
  236. data/db/fixtures2/create_types.yml +47 -0
  237. data/db/fixtures2/event_categories.yml +13 -0
  238. data/db/fixtures2/form_of_works.yml +7 -0
  239. data/db/fixtures2/frequencies.yml +55 -0
  240. data/db/fixtures2/languages.yml +1885 -0
  241. data/db/fixtures2/libraries.yml +25 -0
  242. data/db/fixtures2/library_groups.yml +10 -0
  243. data/db/fixtures2/licenses.yml +15 -0
  244. data/db/fixtures2/manifestation_relationship_types.yml +14 -0
  245. data/db/fixtures2/message_templates.yml +84 -0
  246. data/db/fixtures2/patron_relationship_types.yml +20 -0
  247. data/db/fixtures2/patron_types.yml +16 -0
  248. data/db/fixtures2/patrons.yml +19 -0
  249. data/db/fixtures2/produce_types.yml +32 -0
  250. data/db/fixtures2/realize_types.yml +40 -0
  251. data/db/fixtures2/request_status_types.yml +37 -0
  252. data/db/fixtures2/request_types.yml +29 -0
  253. data/db/fixtures2/roles.yml +29 -0
  254. data/db/fixtures2/shelves.yml +15 -0
  255. data/db/fixtures2/subject_types.yml +28 -0
  256. data/db/fixtures2/use_restrictions.yml +79 -0
  257. data/db/fixtures2/user_groups.yml +7 -0
  258. data/db/migrate/041_create_roles.rb +13 -0
  259. data/db/migrate/077_create_user_groups.rb +12 -0
  260. data/db/migrate/20091202124834_create_versions.rb +18 -0
  261. data/db/migrate/20100606065209_create_user_has_roles.rb +12 -0
  262. data/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +11 -0
  263. data/db/migrate/20130221154434_add_additional_attributes_to_user.rb +26 -0
  264. data/db/schema.rb +1896 -0
  265. data/lib/enju_leaf.rb +294 -0
  266. data/lib/enju_leaf/controller.rb +24 -0
  267. data/lib/enju_leaf/engine.rb +16 -0
  268. data/lib/enju_leaf/helper.rb +116 -0
  269. data/lib/enju_leaf/user.rb +285 -0
  270. data/lib/enju_leaf/version.rb +3 -0
  271. data/lib/generators/enju_leaf/USAGE +8 -0
  272. data/lib/generators/enju_leaf/quick_install/USAGE +8 -0
  273. data/lib/generators/enju_leaf/quick_install/quick_install_generator.rb +27 -0
  274. data/lib/generators/enju_leaf/setup/setup_generator.rb +65 -0
  275. data/lib/generators/enju_leaf/setup/templates/config/application.yml +47 -0
  276. data/lib/generators/enju_leaf/setup/templates/config/resque.yml +3 -0
  277. data/lib/generators/enju_leaf/setup/templates/config/schedule.rb +53 -0
  278. data/lib/generators/enju_leaf/setup/templates/db/fixtures/roles.yml +29 -0
  279. data/lib/generators/enju_leaf/setup/templates/db/fixtures/user_groups.yml +7 -0
  280. data/lib/generators/enju_leaf/setup/templates/db/seeds.rb +38 -0
  281. data/lib/generators/enju_leaf/setup/templates/solr/conf/admin-extra.html +31 -0
  282. data/lib/generators/enju_leaf/setup/templates/solr/conf/elevate.xml +36 -0
  283. data/lib/generators/enju_leaf/setup/templates/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  284. data/lib/generators/enju_leaf/setup/templates/solr/conf/protwords.txt +21 -0
  285. data/lib/generators/enju_leaf/setup/templates/solr/conf/schema.xml +255 -0
  286. data/lib/generators/enju_leaf/setup/templates/solr/conf/scripts.conf +24 -0
  287. data/lib/generators/enju_leaf/setup/templates/solr/conf/solrconfig.xml +934 -0
  288. data/lib/generators/enju_leaf/setup/templates/solr/conf/spellings.txt +2 -0
  289. data/lib/generators/enju_leaf/setup/templates/solr/conf/stopwords.txt +58 -0
  290. data/lib/generators/enju_leaf/setup/templates/solr/conf/synonyms.txt +31 -0
  291. data/lib/plugins.rb +2 -0
  292. data/lib/plugins/ext.rb +1 -0
  293. data/lib/plugins/ext/sunspot.rb +3 -0
  294. data/lib/plugins/ext/sunspot/abstract_search.rb +12 -0
  295. data/lib/plugins/ext/sunspot/dismax.rb +41 -0
  296. data/lib/plugins/ext/sunspot/start_record.rb +55 -0
  297. data/lib/tasks/enju_leaf_tasks.rake +14 -0
  298. data/spec/acceptance/acceptance_helper.rb +4 -0
  299. data/spec/acceptance/support/helpers.rb +6 -0
  300. data/spec/acceptance/support/paths.rb +9 -0
  301. data/spec/controllers/my_accounts_controller_spec.rb +199 -0
  302. data/spec/controllers/page_controller_spec.rb +94 -0
  303. data/spec/controllers/roles_controller_spec.rb +136 -0
  304. data/spec/controllers/user_groups_controller_spec.rb +443 -0
  305. data/spec/controllers/users_controller_spec.rb +549 -0
  306. data/spec/dummy/README.rdoc +261 -0
  307. data/spec/dummy/Rakefile +7 -0
  308. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  309. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  310. data/spec/dummy/app/controllers/application_controller.rb +12 -0
  311. data/spec/dummy/app/helpers/application_helper.rb +3 -0
  312. data/spec/dummy/app/models/user.rb +8 -0
  313. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  314. data/spec/dummy/config.ru +4 -0
  315. data/spec/dummy/config/application.rb +59 -0
  316. data/spec/dummy/config/application.yml +47 -0
  317. data/spec/dummy/config/boot.rb +10 -0
  318. data/spec/dummy/config/database.yml +25 -0
  319. data/spec/dummy/config/environment.rb +5 -0
  320. data/spec/dummy/config/environments/development.rb +37 -0
  321. data/spec/dummy/config/environments/production.rb +67 -0
  322. data/spec/dummy/config/environments/test.rb +37 -0
  323. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  324. data/spec/dummy/config/initializers/devise.rb +205 -0
  325. data/spec/dummy/config/initializers/inflections.rb +15 -0
  326. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  327. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  328. data/spec/dummy/config/initializers/session_store.rb +8 -0
  329. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  330. data/spec/dummy/config/locales/en.yml +5 -0
  331. data/spec/dummy/config/routes.rb +59 -0
  332. data/spec/dummy/db/development.sqlite3 +0 -0
  333. data/spec/dummy/db/fixtures/bookstores.yml +9 -0
  334. data/spec/dummy/db/fixtures/carrier_types.yml +29 -0
  335. data/spec/dummy/db/fixtures/content_types.yml +22 -0
  336. data/spec/dummy/db/fixtures/countries.yml +2044 -0
  337. data/spec/dummy/db/fixtures/create_types.yml +47 -0
  338. data/spec/dummy/db/fixtures/form_of_works.yml +7 -0
  339. data/spec/dummy/db/fixtures/frequencies.yml +55 -0
  340. data/spec/dummy/db/fixtures/languages.yml +1885 -0
  341. data/spec/dummy/db/fixtures/libraries.yml +25 -0
  342. data/spec/dummy/db/fixtures/library_groups.yml +10 -0
  343. data/spec/dummy/db/fixtures/licenses.yml +15 -0
  344. data/spec/dummy/db/fixtures/manifestation_relationship_types.yml +14 -0
  345. data/spec/dummy/db/fixtures/patron_relationship_types.yml +20 -0
  346. data/spec/dummy/db/fixtures/patron_types.yml +16 -0
  347. data/spec/dummy/db/fixtures/patrons.yml +19 -0
  348. data/spec/dummy/db/fixtures/produce_types.yml +32 -0
  349. data/spec/dummy/db/fixtures/realize_types.yml +40 -0
  350. data/spec/dummy/db/fixtures/request_status_types.yml +37 -0
  351. data/spec/dummy/db/fixtures/request_types.yml +29 -0
  352. data/spec/dummy/db/fixtures/roles.yml +29 -0
  353. data/spec/dummy/db/fixtures/shelves.yml +15 -0
  354. data/spec/dummy/db/fixtures/user_groups.yml +7 -0
  355. data/spec/dummy/db/migrate/001_create_patrons.rb +53 -0
  356. data/spec/dummy/db/migrate/002_devise_create_users.rb +46 -0
  357. data/spec/dummy/db/migrate/005_create_manifestations.rb +56 -0
  358. data/spec/dummy/db/migrate/006_create_items.rb +28 -0
  359. data/spec/dummy/db/migrate/012_create_owns.rb +12 -0
  360. data/spec/dummy/db/migrate/015_create_creates.rb +12 -0
  361. data/spec/dummy/db/migrate/047_create_produces.rb +12 -0
  362. data/spec/dummy/db/migrate/059_create_libraries.rb +28 -0
  363. data/spec/dummy/db/migrate/069_create_shelves.rb +15 -0
  364. data/spec/dummy/db/migrate/073_create_carrier_types.rb +11 -0
  365. data/spec/dummy/db/migrate/080_create_library_groups.rb +19 -0
  366. data/spec/dummy/db/migrate/112_create_frequencies.rb +12 -0
  367. data/spec/dummy/db/migrate/117_create_form_of_works.rb +12 -0
  368. data/spec/dummy/db/migrate/120_create_baskets.rb +12 -0
  369. data/spec/dummy/db/migrate/124_create_bookstores.rb +17 -0
  370. data/spec/dummy/db/migrate/125_create_donates.rb +12 -0
  371. data/spec/dummy/db/migrate/130_create_request_status_types.rb +12 -0
  372. data/spec/dummy/db/migrate/131_create_request_types.rb +12 -0
  373. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +13 -0
  374. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +13 -0
  375. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +12 -0
  376. data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +17 -0
  377. data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +14 -0
  378. data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +17 -0
  379. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +28 -0
  380. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +23 -0
  381. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +15 -0
  382. data/spec/dummy/db/migrate/20081028083142_create_patron_import_files.rb +22 -0
  383. data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +22 -0
  384. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +15 -0
  385. data/spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +15 -0
  386. data/spec/dummy/db/migrate/20090719201843_create_extents.rb +12 -0
  387. data/spec/dummy/db/migrate/20090720091106_create_medium_of_performances.rb +12 -0
  388. data/spec/dummy/db/migrate/20090720091429_create_content_types.rb +12 -0
  389. data/spec/dummy/db/migrate/20090812151902_create_patron_relationship_types.rb +12 -0
  390. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +27 -0
  391. data/spec/dummy/db/migrate/20091025080447_create_licenses.rb +12 -0
  392. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +13 -0
  393. data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +15 -0
  394. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  395. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +13 -0
  396. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +10 -0
  397. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +13 -0
  398. data/spec/dummy/db/migrate/20100606073747_create_patron_relationships.rb +13 -0
  399. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +12 -0
  400. data/spec/dummy/db/migrate/20100814091104_add_position_to_patron_relationship.rb +11 -0
  401. data/spec/dummy/db/migrate/20100925043847_create_resource_import_results.rb +15 -0
  402. data/spec/dummy/db/migrate/20100925074559_create_patron_import_results.rb +12 -0
  403. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +9 -0
  404. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  405. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +9 -0
  406. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_patron.rb +11 -0
  407. data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +9 -0
  408. data/spec/dummy/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +9 -0
  409. data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +9 -0
  410. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +9 -0
  411. data/spec/dummy/db/migrate/20110620173525_add_bookstore_id_to_item.rb +11 -0
  412. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
  413. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
  414. data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +13 -0
  415. data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +13 -0
  416. data/spec/dummy/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +13 -0
  417. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +13 -0
  418. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +10 -0
  419. data/spec/dummy/db/migrate/20110918161853_rename_series_statement_manifestation_id_to_root_manifestation_id.rb +13 -0
  420. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +9 -0
  421. data/spec/dummy/db/migrate/20111009183423_add_ndc_to_manifestation.rb +9 -0
  422. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +12 -0
  423. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +12 -0
  424. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +12 -0
  425. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +7 -0
  426. data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +5 -0
  427. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +6 -0
  428. data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +12 -0
  429. data/spec/dummy/db/migrate/20120129020544_add_budget_type_id_to_item.rb +6 -0
  430. data/spec/dummy/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +6 -0
  431. data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +14 -0
  432. data/spec/dummy/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +5 -0
  433. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +5 -0
  434. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +5 -0
  435. data/spec/dummy/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +5 -0
  436. data/spec/dummy/db/migrate/20120413161403_add_fingerprint_to_patron_import_file.rb +5 -0
  437. data/spec/dummy/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +5 -0
  438. data/spec/dummy/db/migrate/20120413170720_add_error_message_to_patron_import_file.rb +5 -0
  439. data/spec/dummy/db/migrate/20120415060308_rename_resource_import_file_imported_at_to_executed_at.rb +9 -0
  440. data/spec/dummy/db/migrate/20120415060323_rename_patron_import_file_imported_at_to_executed_at.rb +9 -0
  441. data/spec/dummy/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +5 -0
  442. data/spec/dummy/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +5 -0
  443. data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +5 -0
  444. data/spec/dummy/db/migrate/20120511072422_add_patron_identifier_to_patron.rb +6 -0
  445. data/spec/dummy/db/migrate/20120602141129_add_edit_mode_to_patron_import_file.rb +5 -0
  446. data/spec/dummy/db/migrate/20120728204337_create_series_statement_relationships.rb +11 -0
  447. data/spec/dummy/db/migrate/20121116031206_add_fulltext_content_to_manifestation.rb +5 -0
  448. data/spec/dummy/db/migrate/20121116033446_add_doi_to_manifestation.rb +6 -0
  449. data/spec/dummy/db/migrate/20121119153944_add_manifestation_id_to_item.rb +5 -0
  450. data/spec/dummy/db/schema.rb +822 -0
  451. data/spec/dummy/db/test.sqlite3 +0 -0
  452. data/spec/dummy/public/404.html +26 -0
  453. data/spec/dummy/public/422.html +26 -0
  454. data/spec/dummy/public/500.html +25 -0
  455. data/spec/dummy/public/favicon.ico +0 -0
  456. data/spec/dummy/script/rails +6 -0
  457. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  458. data/spec/dummy/solr/conf/elevate.xml +36 -0
  459. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  460. data/spec/dummy/solr/conf/protwords.txt +21 -0
  461. data/spec/dummy/solr/conf/schema.xml +238 -0
  462. data/spec/dummy/solr/conf/scripts.conf +24 -0
  463. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  464. data/spec/dummy/solr/conf/spellings.txt +2 -0
  465. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  466. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  467. data/spec/dummy/solr/data/test/index/_3b.fdt +0 -0
  468. data/spec/dummy/solr/data/test/index/_3b.fdx +0 -0
  469. data/spec/dummy/solr/data/test/index/_3b.fnm +4 -0
  470. data/spec/dummy/solr/data/test/index/_3b.frq +1 -0
  471. data/spec/dummy/solr/data/test/index/_3b.nrm +1 -0
  472. data/spec/dummy/solr/data/test/index/_3b.prx +0 -0
  473. data/spec/dummy/solr/data/test/index/_3b.tii +0 -0
  474. data/spec/dummy/solr/data/test/index/_3b.tis +0 -0
  475. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  476. data/spec/dummy/solr/data/test/index/segments_6p +0 -0
  477. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  478. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  479. data/spec/dummy/tmp/cache/4F7/F90/default_role +0 -0
  480. data/spec/dummy/tmp/cache/ACB/B20/manifestation_search_total +0 -0
  481. data/spec/factories/basket.rb +5 -0
  482. data/spec/factories/bookstore.rb +5 -0
  483. data/spec/factories/carrier_type.rb +5 -0
  484. data/spec/factories/content_type.rb +5 -0
  485. data/spec/factories/country.rb +8 -0
  486. data/spec/factories/create.rb +6 -0
  487. data/spec/factories/create_types.rb +9 -0
  488. data/spec/factories/donate.rb +6 -0
  489. data/spec/factories/exemplify.rb +6 -0
  490. data/spec/factories/extent.rb +5 -0
  491. data/spec/factories/import_request.rb +5 -0
  492. data/spec/factories/item.rb +7 -0
  493. data/spec/factories/language.rb +8 -0
  494. data/spec/factories/library.rb +13 -0
  495. data/spec/factories/license.rb +5 -0
  496. data/spec/factories/manifestation.rb +6 -0
  497. data/spec/factories/manifestation_relationship.rb +6 -0
  498. data/spec/factories/manifestation_relationship_type.rb +5 -0
  499. data/spec/factories/medium_of_performance.rb +5 -0
  500. data/spec/factories/own.rb +6 -0
  501. data/spec/factories/patron.rb +13 -0
  502. data/spec/factories/patron_relationship.rb +6 -0
  503. data/spec/factories/patron_relationship_type.rb +5 -0
  504. data/spec/factories/patron_type.rb +5 -0
  505. data/spec/factories/produce.rb +6 -0
  506. data/spec/factories/produce_types.rb +9 -0
  507. data/spec/factories/realize.rb +6 -0
  508. data/spec/factories/realize_types.rb +9 -0
  509. data/spec/factories/series_has_manifestation.rb +6 -0
  510. data/spec/factories/series_statement.rb +5 -0
  511. data/spec/factories/shelf.rb +6 -0
  512. data/spec/factories/subscribe.rb +8 -0
  513. data/spec/factories/subscription.rb +6 -0
  514. data/spec/factories/user.rb +59 -0
  515. data/spec/factories/user_checkout_stat.rb +6 -0
  516. data/spec/factories/user_group.rb +5 -0
  517. data/spec/fixtures/baskets.yml +80 -0
  518. data/spec/fixtures/carrier_types.yml +51 -0
  519. data/spec/fixtures/content_types.yml +36 -0
  520. data/spec/fixtures/countries.yml +2059 -0
  521. data/spec/fixtures/create_types.yml +47 -0
  522. data/spec/fixtures/creates.yml +66 -0
  523. data/spec/fixtures/donates.yml +31 -0
  524. data/spec/fixtures/exemplifies.yml +156 -0
  525. data/spec/fixtures/extents.yml +29 -0
  526. data/spec/fixtures/import_requests.yml +27 -0
  527. data/spec/fixtures/items.yml +262 -0
  528. data/spec/fixtures/languages.yml +1901 -0
  529. data/spec/fixtures/libraries.yml +102 -0
  530. data/spec/fixtures/library_groups.yml +34 -0
  531. data/spec/fixtures/licenses.yml +29 -0
  532. data/spec/fixtures/manifestation_relationship_types.yml +29 -0
  533. data/spec/fixtures/manifestation_relationships.yml +30 -0
  534. data/spec/fixtures/manifestations.yml +2021 -0
  535. data/spec/fixtures/medium_of_performances.yml +29 -0
  536. data/spec/fixtures/owns.yml +27 -0
  537. data/spec/fixtures/patron_import_files.yml +47 -0
  538. data/spec/fixtures/patron_import_results.yml +29 -0
  539. data/spec/fixtures/patron_relationship_types.yml +34 -0
  540. data/spec/fixtures/patron_relationships.yml +25 -0
  541. data/spec/fixtures/patron_types.yml +35 -0
  542. data/spec/fixtures/patrons.yml +338 -0
  543. data/spec/fixtures/picture_files.yml +64 -0
  544. data/spec/fixtures/produce_types.yml +31 -0
  545. data/spec/fixtures/produces.yml +150 -0
  546. data/spec/fixtures/realize_types.yml +39 -0
  547. data/spec/fixtures/realizes.yml +87 -0
  548. data/spec/fixtures/resource_import_files.yml +47 -0
  549. data/spec/fixtures/resource_import_results.yml +29 -0
  550. data/spec/fixtures/roles.yml +39 -0
  551. data/spec/fixtures/series_has_manifestations.yml +35 -0
  552. data/spec/fixtures/series_statements.yml +45 -0
  553. data/spec/fixtures/shelves.yml +47 -0
  554. data/spec/fixtures/subscribes.yml +45 -0
  555. data/spec/fixtures/subscriptions.yml +27 -0
  556. data/spec/fixtures/user_groups.yml +50 -0
  557. data/spec/fixtures/user_has_roles.yml +40 -0
  558. data/spec/fixtures/users.yml +151 -0
  559. data/spec/fixtures_old/inventory_files.yml +40 -0
  560. data/spec/models/basket_spec.rb +23 -0
  561. data/spec/models/role_spec.rb +40 -0
  562. data/spec/models/user_group_spec.rb +26 -0
  563. data/spec/models/user_has_role_spec.rb +18 -0
  564. data/spec/models/user_spec.rb +218 -0
  565. data/spec/requests/users_spec.rb +9 -0
  566. data/spec/routing/accounts_spec.rb +14 -0
  567. data/spec/routing/roles_routing_spec.rb +35 -0
  568. data/spec/routing/users_routing_spec.rb +35 -0
  569. data/spec/spec_helper.rb +51 -0
  570. data/spec/support/controller_macros.rb +46 -0
  571. data/spec/support/devise.rb +4 -0
  572. data/spec/views/users/edit.html.erb_spec.rb +25 -0
  573. data/spec/views/users/index.html.erb_spec.rb +16 -0
  574. data/spec/views/users/new.html.erb_spec.rb +25 -0
  575. data/spec/views/users/show.html.erb_spec.rb +15 -0
  576. data/vendor/assets/javascripts/event_calendar.js +37 -0
  577. data/vendor/assets/javascripts/jquery.colorbox.js +1025 -0
  578. data/vendor/assets/javascripts/jquery.cookie.js +94 -0
  579. data/vendor/assets/javascripts/jquery.highlight.js +108 -0
  580. data/vendor/assets/javascripts/jquery.mobile-1.3.0.js +11092 -0
  581. data/vendor/assets/javascripts/jquery.powertip.js +796 -0
  582. data/vendor/assets/javascripts/jquery.shortcut.js +241 -0
  583. data/vendor/assets/javascripts/jquery.ui.menubar.js +327 -0
  584. data/vendor/assets/stylesheets/acts_as_taggable_stylesheet.css +7 -0
  585. data/vendor/assets/stylesheets/colorbox.css +93 -0
  586. data/vendor/assets/stylesheets/event_calendar.css +237 -0
  587. data/vendor/assets/stylesheets/html5-doctor-reset-stylesheet.min.css +14 -0
  588. data/vendor/assets/stylesheets/images/ajax-loader.gif +0 -0
  589. data/vendor/assets/stylesheets/images/border.png +0 -0
  590. data/vendor/assets/stylesheets/images/controls.png +0 -0
  591. data/vendor/assets/stylesheets/images/icons-18-black.png +0 -0
  592. data/vendor/assets/stylesheets/images/icons-18-white.png +0 -0
  593. data/vendor/assets/stylesheets/images/icons-36-black.png +0 -0
  594. data/vendor/assets/stylesheets/images/icons-36-white.png +0 -0
  595. data/vendor/assets/stylesheets/images/ie6/borderBottomCenter.png +0 -0
  596. data/vendor/assets/stylesheets/images/ie6/borderBottomLeft.png +0 -0
  597. data/vendor/assets/stylesheets/images/ie6/borderBottomRight.png +0 -0
  598. data/vendor/assets/stylesheets/images/ie6/borderMiddleLeft.png +0 -0
  599. data/vendor/assets/stylesheets/images/ie6/borderMiddleRight.png +0 -0
  600. data/vendor/assets/stylesheets/images/ie6/borderTopCenter.png +0 -0
  601. data/vendor/assets/stylesheets/images/ie6/borderTopLeft.png +0 -0
  602. data/vendor/assets/stylesheets/images/ie6/borderTopRight.png +0 -0
  603. data/vendor/assets/stylesheets/images/loading.gif +0 -0
  604. data/vendor/assets/stylesheets/images/loading_background.png +0 -0
  605. data/vendor/assets/stylesheets/images/overlay.png +0 -0
  606. data/vendor/assets/stylesheets/images/spinner_bar.gif +0 -0
  607. data/vendor/assets/stylesheets/jquery.mobile-1.3.0.css +3357 -0
  608. data/vendor/assets/stylesheets/jquery.powertip.css +64 -0
  609. data/vendor/assets/stylesheets/jquery.ui.menubar.css +15 -0
  610. metadata +1153 -0
@@ -0,0 +1,549 @@
1
+ require 'spec_helper'
2
+
3
+ describe UsersController do
4
+ fixtures :all
5
+
6
+ describe "GET index", :solr => true do
7
+ before do
8
+ User.reindex
9
+ end
10
+
11
+ describe "When logged in as Administrator" do
12
+ login_fixture_admin
13
+
14
+ it "assigns all users as @users" do
15
+ get :index
16
+ assigns(:users).should_not be_nil
17
+ end
18
+ end
19
+
20
+ describe "When logged in as Librarian" do
21
+ login_fixture_librarian
22
+
23
+ it "assigns all users as @users" do
24
+ get :index
25
+ assigns(:users).should_not be_nil
26
+ end
27
+
28
+ it "should get index with query" do
29
+ get :index, :query => 'user1'
30
+ response.should be_success
31
+ assigns(:users).should_not be_empty
32
+ end
33
+
34
+ it "should get sorted index" do
35
+ get :index, :query => 'user1', :sort_by => 'username', :order => 'desc'
36
+ response.should be_success
37
+ assigns(:users).should_not be_empty
38
+ end
39
+ end
40
+
41
+ describe "When logged in as User" do
42
+ login_fixture_user
43
+
44
+ it "assigns all users as @users" do
45
+ get :index
46
+ assigns(:users).should be_nil
47
+ response.should be_forbidden
48
+ end
49
+ end
50
+
51
+ describe "When not logged in" do
52
+ it "assigns all users as @users" do
53
+ get :index
54
+ assigns(:users).should be_nil
55
+ response.should redirect_to(new_user_session_url)
56
+ end
57
+ end
58
+ end
59
+
60
+ describe "GET show" do
61
+ describe "When logged in as Administrator" do
62
+ login_fixture_admin
63
+
64
+ it "assigns the requested user as @user" do
65
+ get :show, :id => 'admin'
66
+ assigns(:user).should eq(User.find('admin'))
67
+ end
68
+
69
+ it "should not show missing user" do
70
+ get :show, :id => 'missing'
71
+ response.should be_missing
72
+ end
73
+ end
74
+
75
+ describe "When logged in as Librarian" do
76
+ login_fixture_librarian
77
+
78
+ it "assigns the requested user as @user" do
79
+ get :show, :id => users(:librarian1).username
80
+ assigns(:user).should eq(users(:librarian1))
81
+ end
82
+ end
83
+
84
+ describe "When logged in as User" do
85
+ login_fixture_user
86
+
87
+ it "assigns the requested user as @user" do
88
+ get :show, :id => users(:user1).username
89
+ assigns(:user).should eq(users(:user1))
90
+ end
91
+
92
+ it "should redirect to my user account" do
93
+ get :show, :id => users(:user1).username
94
+ assert_redirected_to my_account_url
95
+ end
96
+
97
+ it "should show other user's account" do
98
+ get :show, :id => users(:admin).username
99
+ assigns(:user).should eq(users(:admin))
100
+ response.should be_success
101
+ end
102
+ end
103
+
104
+ describe "When not logged in" do
105
+ it "assigns the requested user as @user" do
106
+ get :show, :id => 'admin'
107
+ assigns(:user).should eq(User.find('admin'))
108
+ response.should redirect_to(new_user_session_url)
109
+ end
110
+ end
111
+ end
112
+
113
+ describe "GET new" do
114
+ describe "When logged in as Administrator" do
115
+ login_fixture_admin
116
+
117
+ it "assigns the requested user as @user" do
118
+ get :new
119
+ assigns(:user).should_not be_valid
120
+ end
121
+ end
122
+
123
+ describe "When logged in as Librarian" do
124
+ login_fixture_librarian
125
+
126
+ it "should not assign the requested user as @user" do
127
+ get :new
128
+ assigns(:user).should_not be_valid
129
+ end
130
+ end
131
+
132
+ describe "When logged in as User" do
133
+ login_fixture_user
134
+
135
+ it "should not assign the requested user as @user" do
136
+ get :new
137
+ assigns(:user).should_not be_valid
138
+ response.should be_forbidden
139
+ end
140
+ end
141
+
142
+ describe "When not logged in" do
143
+ it "should not assign the requested user as @user" do
144
+ get :new
145
+ assigns(:user).should_not be_valid
146
+ response.should redirect_to(new_user_session_url)
147
+ end
148
+ end
149
+ end
150
+
151
+ describe "GET edit" do
152
+ describe "When logged in as Administrator" do
153
+ login_fixture_admin
154
+
155
+ it "assigns the requested user as @user" do
156
+ user = FactoryGirl.create(:user)
157
+ get :edit, :id => user.id
158
+ assigns(:user).should eq(user)
159
+ end
160
+
161
+ it "should not edit missing user" do
162
+ get :edit, :id => 'missing'
163
+ response.should be_missing
164
+ end
165
+ end
166
+
167
+ describe "When logged in as Librarian" do
168
+ login_fixture_librarian
169
+
170
+ it "should assign the requested user as @user" do
171
+ user = FactoryGirl.create(:user)
172
+ get :edit, :id => user.id
173
+ assigns(:user).should eq(user)
174
+ end
175
+ end
176
+
177
+ describe "When logged in as User" do
178
+ login_fixture_user
179
+
180
+ it "should not assign the requested user as @user" do
181
+ user = FactoryGirl.create(:user)
182
+ get :edit, :id => user.id
183
+ assigns(:user).should eq(user)
184
+ response.should be_forbidden
185
+ end
186
+
187
+ it "should edit myself" do
188
+ get :edit, :id => users(:user1).username
189
+ response.should redirect_to edit_my_account_url
190
+ end
191
+ end
192
+
193
+ describe "When not logged in" do
194
+ it "should not assign the requested user as @user" do
195
+ user = FactoryGirl.create(:user)
196
+ get :edit, :id => user.id
197
+ assigns(:user).should eq(user)
198
+ response.should redirect_to(new_user_session_url)
199
+ end
200
+ end
201
+ end
202
+
203
+ describe "POST create" do
204
+ before(:each) do
205
+ @attrs = FactoryGirl.attributes_for(:user)
206
+ @invalid_attrs = {:username => ''}
207
+ end
208
+
209
+ describe "When logged in as Administrator" do
210
+ login_fixture_admin
211
+
212
+ describe "with valid params" do
213
+ it "assigns a newly created user as @user" do
214
+ post :create, :user => @attrs
215
+ assigns(:user).should be_valid
216
+ end
217
+
218
+ it "redirects to the created user" do
219
+ post :create, :user => @attrs
220
+ response.should redirect_to(user_url(assigns(:user)))
221
+ end
222
+ end
223
+
224
+ describe "with invalid params" do
225
+ it "assigns a newly created but unsaved user as @user" do
226
+ post :create, :user => @invalid_attrs
227
+ assigns(:user).should_not be_valid
228
+ end
229
+
230
+ it "re-renders the 'new' template" do
231
+ post :create, :user => @invalid_attrs
232
+ response.should render_template("new")
233
+ end
234
+ end
235
+ end
236
+
237
+ describe "When logged in as Librarian" do
238
+ login_fixture_librarian
239
+
240
+ describe "with valid params" do
241
+ it "assigns a newly created user as @user" do
242
+ post :create, :user => @attrs
243
+ assigns(:user).should be_valid
244
+ end
245
+
246
+ it "redirects to the created user" do
247
+ post :create, :user => @attrs
248
+ response.should redirect_to(user_url(assigns(:user)))
249
+ end
250
+ end
251
+
252
+ describe "with invalid params" do
253
+ it "assigns a newly created but unsaved user as @user" do
254
+ post :create, :user => @invalid_attrs
255
+ assigns(:user).should_not be_valid
256
+ end
257
+
258
+ it "re-renders the 'new' template" do
259
+ post :create, :user => @invalid_attrs
260
+ response.should render_template("new")
261
+ end
262
+ end
263
+
264
+ it "should not create user without username" do
265
+ post :create, :user => { :username => '' }
266
+ assigns(:user).should_not be_valid
267
+ response.should be_success
268
+ end
269
+
270
+ it "should create user" do
271
+ post :create, :user => { :username => 'test10' }
272
+ assigns(:user).should be_valid
273
+ response.should redirect_to user_url(assigns(:user))
274
+ end
275
+ end
276
+
277
+ describe "When logged in as User" do
278
+ login_fixture_user
279
+
280
+ it "should not create user" do
281
+ post :create, :user => { :username => 'test10' }
282
+ assigns(:user).should_not be_valid
283
+ response.should be_forbidden
284
+ end
285
+ end
286
+
287
+ describe "When not logged in" do
288
+ it "should not create user" do
289
+ post :create, :user => { :username => 'test10' }
290
+ response.should redirect_to new_user_session_url
291
+ end
292
+ end
293
+ end
294
+
295
+ describe "PUT update" do
296
+ before(:each) do
297
+ @user = users(:user1)
298
+ @attrs = {:email => 'newaddress@example.jp', :locale => 'en'}
299
+ @invalid_attrs = {:email => 'invalid'}
300
+ end
301
+
302
+ describe "When logged in as Administrator" do
303
+ login_fixture_admin
304
+
305
+ describe "with valid params" do
306
+ it "updates the requested user" do
307
+ put :update, :id => @user.id, :user => @attrs
308
+ end
309
+
310
+ it "assigns the requested user as @user" do
311
+ put :update, :id => @user.id, :user => @attrs
312
+ assigns(:user).should eq(@user)
313
+ end
314
+
315
+ it "redirects to the user" do
316
+ put :update, :id => @user.id, :user => @attrs
317
+ assigns(:user).should eq(@user)
318
+ response.should redirect_to(@user)
319
+ end
320
+ end
321
+
322
+ describe "with invalid params" do
323
+ it "assigns the requested user as @user" do
324
+ put :update, :id => @user.id, :user => @invalid_attrs
325
+ assigns(:user).should eq(@user)
326
+ end
327
+
328
+ it "re-renders the 'edit' template" do
329
+ put :update, :id => @user, :user => @invalid_attrs
330
+ response.should render_template("edit")
331
+ end
332
+ end
333
+
334
+ it "should update other user's role" do
335
+ put :update, :id => users(:user1).username, :user => {:user_has_role_attributes => {:role_id => 4}, :locale => 'en'}
336
+ response.should redirect_to user_url(assigns(:user))
337
+ assigns(:user).reload
338
+ assigns(:user).role.should eq Role.find_by_name('Administrator')
339
+ end
340
+ end
341
+
342
+ describe "When logged in as Librarian" do
343
+ login_fixture_librarian
344
+
345
+ describe "with valid params" do
346
+ it "updates the requested user" do
347
+ put :update, :id => @user.id, :user => @attrs
348
+ end
349
+
350
+ it "assigns the requested user as @user" do
351
+ put :update, :id => @user.id, :user => @attrs
352
+ assigns(:user).should eq(@user)
353
+ end
354
+
355
+ it "redirects to the user" do
356
+ put :update, :id => @user.id, :user => @attrs
357
+ assigns(:user).should eq(@user)
358
+ response.should redirect_to(@user)
359
+ end
360
+ end
361
+
362
+ describe "with invalid params" do
363
+ it "assigns the user as @user" do
364
+ put :update, :id => @user, :user => @invalid_attrs
365
+ assigns(:user).should_not be_valid
366
+ end
367
+
368
+ it "re-renders the 'edit' template" do
369
+ put :update, :id => @user, :user => @invalid_attrs
370
+ response.should render_template("edit")
371
+ end
372
+ end
373
+
374
+ it "should update other user" do
375
+ put :update, :id => users(:user1).username, :user => {:user_number => '00003', :locale => 'en'}
376
+ response.should redirect_to user_url(assigns(:user))
377
+ end
378
+
379
+ it "should update other user's user_group" do
380
+ put :update, :id => users(:user1).username, :user => {:user_group_id => 3, :locale => 'en'}
381
+ response.should redirect_to user_url(assigns(:user))
382
+ assigns(:user).user_group_id.should eq 3
383
+ end
384
+
385
+ it "should update other user's note" do
386
+ put :update, :id => users(:user1).username, :user => {:note => 'test', :locale => 'en'}
387
+ response.should redirect_to user_url(assigns(:user))
388
+ assert_equal assigns(:user).note, 'test'
389
+ end
390
+ end
391
+
392
+ describe "When logged in as User" do
393
+ login_fixture_user
394
+
395
+ describe "with valid params" do
396
+ it "updates the requested user" do
397
+ put :update, :id => @user.id, :user => @attrs
398
+ end
399
+
400
+ it "assigns the requested user as @user" do
401
+ put :update, :id => @user.id, :user => @attrs
402
+ assigns(:user).should be_valid
403
+ response.should redirect_to user_url(assigns(:user))
404
+ end
405
+ end
406
+
407
+ describe "with invalid params" do
408
+ it "assigns the requested user as @user" do
409
+ put :update, :id => @user.id, :user => @invalid_attrs
410
+ assigns(:user).should_not be_valid
411
+ response.should be_success
412
+ end
413
+ end
414
+
415
+ it "should update myself" do
416
+ put :update, :id => users(:user1).username, :user => { }
417
+ response.should redirect_to user_url(assigns(:user))
418
+ end
419
+
420
+ it "should not update my role" do
421
+ put :update, :id => users(:user1).username, :user => {:user_has_role_attributes => {:role_id => 4}}
422
+ response.should redirect_to user_url(assigns(:user))
423
+ assigns(:user).role.should_not eq Role.find_by_name('Administrator')
424
+ end
425
+
426
+ it "should not update my user_group" do
427
+ put :update, :id => users(:user1).username, :user => {:user_group_id => 3}
428
+ response.should redirect_to user_url(assigns(:user))
429
+ assigns(:user).user_group.id.should eq 1
430
+ end
431
+
432
+ it "should not update my note" do
433
+ put :update, :id => users(:user1).username, :user => {:note => 'test'}
434
+ response.should redirect_to user_url(assigns(:user))
435
+ assigns(:user).note.should be_nil
436
+ end
437
+
438
+ it "should update my keyword_list" do
439
+ put :update, :id => users(:user1).username, :user => {:keyword_list => 'test'}
440
+ response.should redirect_to user_url(assigns(:user))
441
+ assigns(:user).keyword_list.should eq 'test'
442
+ assigns(:user).role.name.should eq 'User'
443
+ end
444
+
445
+ it "should not update other user" do
446
+ put :update, :id => users(:user2).username, :user => { }
447
+ assigns(:user).should be_valid
448
+ response.should be_forbidden
449
+ end
450
+ end
451
+
452
+ describe "When not logged in" do
453
+ describe "with valid params" do
454
+ it "updates the requested user" do
455
+ put :update, :id => @user.id, :user => @attrs
456
+ end
457
+
458
+ it "should be forbidden" do
459
+ put :update, :id => @user.id, :user => @attrs
460
+ response.should redirect_to(new_user_session_url)
461
+ end
462
+ end
463
+
464
+ describe "with invalid params" do
465
+ it "assigns the requested user as @user" do
466
+ put :update, :id => @user.id, :user => @invalid_attrs
467
+ response.should redirect_to(new_user_session_url)
468
+ end
469
+ end
470
+ end
471
+ end
472
+
473
+ describe "DELETE destroy" do
474
+ describe "When logged in as Administrator" do
475
+ login_fixture_admin
476
+
477
+ it "destroys the requested user" do
478
+ delete :destroy, :id => users(:user2).username
479
+ end
480
+
481
+ it "redirects to the users list" do
482
+ delete :destroy, :id => users(:user2).username
483
+ response.should redirect_to(users_url)
484
+ end
485
+
486
+ it "should destroy librarian" do
487
+ delete :destroy, :id => users(:librarian2).username
488
+ response.should redirect_to(users_url)
489
+ end
490
+ end
491
+
492
+ describe "When logged in as Librarian" do
493
+ login_fixture_librarian
494
+
495
+ it "destroys the requested user" do
496
+ delete :destroy, :id => users(:user2).username
497
+ end
498
+
499
+ it "redirects to the users list" do
500
+ delete :destroy, :id => users(:user2).username
501
+ response.should redirect_to(users_url)
502
+ end
503
+
504
+ it "should not destroy librarian" do
505
+ delete :destroy, :id => users(:librarian2).username
506
+ response.should be_forbidden
507
+ end
508
+
509
+ it "should not destroy admin" do
510
+ delete :destroy, :id => users(:admin).username
511
+ response.should be_forbidden
512
+ end
513
+
514
+ it "should not destroy myself" do
515
+ delete :destroy, :id => users(:librarian1).username
516
+ response.should be_forbidden
517
+ end
518
+ end
519
+
520
+ describe "When logged in as User" do
521
+ login_fixture_user
522
+
523
+ it "destroys the requested user" do
524
+ delete :destroy, :id => users(:user2).username
525
+ end
526
+
527
+ it "should be forbidden" do
528
+ delete :destroy, :id => users(:user2).username
529
+ response.should be_forbidden
530
+ end
531
+
532
+ it "should not destroy myself" do
533
+ delete :destroy, :id => users(:user1).username
534
+ response.should be_forbidden
535
+ end
536
+ end
537
+
538
+ describe "When not logged in" do
539
+ it "destroys the requested user" do
540
+ delete :destroy, :id => users(:user2).username
541
+ end
542
+
543
+ it "should be forbidden" do
544
+ delete :destroy, :id => users(:user2).username
545
+ response.should redirect_to(new_user_session_url)
546
+ end
547
+ end
548
+ end
549
+ end