openbill 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (703) hide show
  1. data/LICENSE +20 -20
  2. data/README +63 -63
  3. data/test/functional/products_controller_test.rb +8 -8
  4. data/test/functional/sessions_controller_test.rb +8 -8
  5. data/test/functional/settings_controller_test.rb +8 -8
  6. data/test/functional/users_controller_test.rb +8 -0
  7. data/test/unit/user_mailer_test.rb +7 -7
  8. data/test/unit/user_test.rb +7 -7
  9. metadata +9 -730
  10. data/.actionScriptProperties +0 -26
  11. data/.flexProperties +0 -2
  12. data/.gitignore +0 -4
  13. data/.loadpath +0 -7
  14. data/.project +0 -24
  15. data/CONTRIBUTORS +0 -6
  16. data/INSTALL +0 -15
  17. data/Rakefile +0 -51
  18. data/VERSION +0 -1
  19. data/app/controllers/application.rb +0 -49
  20. data/app/controllers/carts_controller.rb +0 -226
  21. data/app/controllers/products_controller.rb +0 -19
  22. data/app/controllers/sessions_controller.rb +0 -39
  23. data/app/controllers/settings_controller.rb +0 -15
  24. data/app/helpers/application_helper.rb +0 -3
  25. data/app/helpers/carts_helper.rb +0 -5
  26. data/app/helpers/products_helper.rb +0 -2
  27. data/app/helpers/sessions_helper.rb +0 -2
  28. data/app/helpers/settings_helper.rb +0 -2
  29. data/app/models/account.rb +0 -16
  30. data/app/models/billingcycle.rb +0 -7
  31. data/app/models/currency.rb +0 -5
  32. data/app/models/emailtemplate.rb +0 -5
  33. data/app/models/invoice.rb +0 -13
  34. data/app/models/invoicedetail.rb +0 -8
  35. data/app/models/option.rb +0 -5
  36. data/app/models/order.rb +0 -7
  37. data/app/models/orderdetail.rb +0 -11
  38. data/app/models/paymentgateway.rb +0 -5
  39. data/app/models/product.rb +0 -10
  40. data/app/models/registrar.rb +0 -7
  41. data/app/models/registrarlog.rb +0 -6
  42. data/app/models/role.rb +0 -7
  43. data/app/models/server.rb +0 -5
  44. data/app/models/serverlog.rb +0 -6
  45. data/app/models/setting.rb +0 -6
  46. data/app/models/tld.rb +0 -9
  47. data/app/models/transaction.rb +0 -8
  48. data/app/models/user.rb +0 -68
  49. data/app/models/user_mailer.rb +0 -24
  50. data/app/models/user_observer.rb +0 -11
  51. data/app/models/userfieldname.rb +0 -8
  52. data/app/models/userfieldvalue.rb +0 -6
  53. data/app/views/carts/_cart_details.html.erb +0 -36
  54. data/app/views/carts/_check_domain_availability.html.erb +0 -7
  55. data/app/views/carts/_loginbox.html.erb +0 -33
  56. data/app/views/carts/_new_domain_available.html.erb +0 -14
  57. data/app/views/carts/_new_domain_not_available.html.erb +0 -10
  58. data/app/views/carts/_orderinfobox.html.erb +0 -1
  59. data/app/views/carts/_product_details.html.erb +0 -43
  60. data/app/views/carts/_products_list.html.erb +0 -22
  61. data/app/views/carts/_signupbox.html.erb +0 -51
  62. data/app/views/carts/checkout.html.erb +0 -22
  63. data/app/views/carts/customer.html.erb +0 -26
  64. data/app/views/carts/order.html.erb +0 -17
  65. data/app/views/layouts/default.html.erb +0 -43
  66. data/app/views/user_mailer/activation.erb +0 -3
  67. data/app/views/user_mailer/signup_notification.erb +0 -8
  68. data/config/boot.rb +0 -109
  69. data/config/database.yml +0 -20
  70. data/config/environment.rb +0 -76
  71. data/config/environments/development.rb +0 -17
  72. data/config/environments/production.rb +0 -24
  73. data/config/environments/test.rb +0 -22
  74. data/config/initializers/inflections.rb +0 -10
  75. data/config/initializers/mime_types.rb +0 -5
  76. data/config/initializers/new_rails_defaults.rb +0 -17
  77. data/config/initializers/site_keys.rb +0 -38
  78. data/config/locales/en.yml +0 -2
  79. data/config/routes.rb +0 -31
  80. data/db/migrate/20090429095737_create_settings.rb +0 -28
  81. data/db/migrate/20090429102507_create_users.rb +0 -25
  82. data/db/migrate/20090429113405_create_accounts.rb +0 -12
  83. data/db/migrate/20090430091300_create_roles.rb +0 -14
  84. data/db/migrate/20090430103415_create_products.rb +0 -24
  85. data/db/migrate/20090509144706_create_sessions.rb +0 -16
  86. data/db/migrate/20090518070457_create_billingcycles.rb +0 -15
  87. data/db/migrate/20090518105551_create_orders.rb +0 -13
  88. data/db/migrate/20090518105611_create_invoices.rb +0 -17
  89. data/db/migrate/20090518105912_create_orderdetails.rb +0 -24
  90. data/db/migrate/20090518105931_create_invoicedetails.rb +0 -14
  91. data/db/migrate/20090519051441_create_servers.rb +0 -14
  92. data/db/migrate/20090519051509_create_registrars.rb +0 -13
  93. data/db/migrate/20090519051536_create_paymentgateways.rb +0 -13
  94. data/db/migrate/20090519052025_create_tlds.rb +0 -15
  95. data/db/migrate/20090519070149_create_transactions.rb +0 -17
  96. data/db/migrate/20090519070225_create_registrarlogs.rb +0 -16
  97. data/db/migrate/20090519070248_create_serverlogs.rb +0 -16
  98. data/db/migrate/20090519071741_create_emailtemplates.rb +0 -18
  99. data/db/migrate/20090519083539_create_currencies.rb +0 -18
  100. data/db/migrate/20090522102336_create_userfieldnames.rb +0 -16
  101. data/db/migrate/20090522102401_create_userfieldvalues.rb +0 -14
  102. data/db/migrate/20090526092119_create_options.rb +0 -14
  103. data/html-template/AC_OETags.js +0 -292
  104. data/html-template/history/history.css +0 -6
  105. data/html-template/history/history.js +0 -662
  106. data/html-template/history/historyFrame.html +0 -29
  107. data/html-template/index.template.html +0 -121
  108. data/html-template/playerProductInstall.swf +0 -0
  109. data/lib/authenticated_system.rb +0 -189
  110. data/lib/authenticated_test_helper.rb +0 -11
  111. data/lib/tasks/empty +0 -0
  112. data/openbill.gemspec +0 -788
  113. data/pkg/openbill-0.0.0.gem +0 -0
  114. data/pkg/openbill-0.1.3.gem +0 -0
  115. data/pkg/openbill-0.1.4.gem +0 -0
  116. data/pkg/openbill-0.1.5.gem +0 -0
  117. data/public/404.html +0 -30
  118. data/public/422.html +0 -30
  119. data/public/500.html +0 -33
  120. data/public/AC_OETags.js +0 -292
  121. data/public/admin.html +0 -121
  122. data/public/admin.swf +0 -0
  123. data/public/assets/LoadingUndefinedSkin.swf +0 -0
  124. data/public/assets/UndefinedPersonalSkinLoad.swf +0 -0
  125. data/public/assets/blanc.png +0 -0
  126. data/public/assets/botones/Boton_dis.png +0 -0
  127. data/public/assets/botones/PopUpButton.png +0 -0
  128. data/public/assets/botones/PopUpButton1.png +0 -0
  129. data/public/assets/botones/PopUpButton2.png +0 -0
  130. data/public/assets/botones/PopUpButton_0.png +0 -0
  131. data/public/assets/botones/PopUpButton_1.png +0 -0
  132. data/public/assets/botones/PopUpButton_2.png +0 -0
  133. data/public/assets/botones/PopUpButton_dis.png +0 -0
  134. data/public/assets/botones/PopUpMenuButton.png +0 -0
  135. data/public/assets/botones/PopUpMenuButton1.png +0 -0
  136. data/public/assets/botones/PopUpMenuButton2.png +0 -0
  137. data/public/assets/botones/PopUpMenuButton_0.png +0 -0
  138. data/public/assets/botones/PopUpMenuButton_1.png +0 -0
  139. data/public/assets/botones/PopUpMenuButton_2.png +0 -0
  140. data/public/assets/botones/PopUpMenuButton_dis.png +0 -0
  141. data/public/assets/botones/Scroll_barra.png +0 -0
  142. data/public/assets/botones/Scroll_barra1.png +0 -0
  143. data/public/assets/botones/Scroll_barra2.png +0 -0
  144. data/public/assets/botones/Scroll_down.png +0 -0
  145. data/public/assets/botones/Scroll_down1.png +0 -0
  146. data/public/assets/botones/Scroll_fondo.png +0 -0
  147. data/public/assets/botones/Scroll_icon.png +0 -0
  148. data/public/assets/botones/Scroll_up.png +0 -0
  149. data/public/assets/botones/Scroll_up1.png +0 -0
  150. data/public/assets/botones/TabNavigator.png +0 -0
  151. data/public/assets/botones/TabNavigator1.png +0 -0
  152. data/public/assets/botones/TabNavigator2.png +0 -0
  153. data/public/assets/botones/TabNavigator3.png +0 -0
  154. data/public/assets/botones/Thumbs.db +0 -0
  155. data/public/assets/botones/accordion_backround.png +0 -0
  156. data/public/assets/botones/accordion_barra.png +0 -0
  157. data/public/assets/botones/accordion_barra1.png +0 -0
  158. data/public/assets/botones/accordion_barra2.png +0 -0
  159. data/public/assets/botones/accordion_barra3.png +0 -0
  160. data/public/assets/botones/adelante.png +0 -0
  161. data/public/assets/botones/adelante1.png +0 -0
  162. data/public/assets/botones/adelante2.png +0 -0
  163. data/public/assets/botones/adelante_dis.png +0 -0
  164. data/public/assets/botones/atras.png +0 -0
  165. data/public/assets/botones/atras1.png +0 -0
  166. data/public/assets/botones/atras2.png +0 -0
  167. data/public/assets/botones/atras_dis.png +0 -0
  168. data/public/assets/botones/barra.png +0 -0
  169. data/public/assets/botones/barra_dis.png +0 -0
  170. data/public/assets/botones/barra_v.png +0 -0
  171. data/public/assets/botones/boton.jpg +0 -0
  172. data/public/assets/botones/boton.png +0 -0
  173. data/public/assets/botones/boton1.png +0 -0
  174. data/public/assets/botones/boton2.png +0 -0
  175. data/public/assets/botones/boton_classic.png +0 -0
  176. data/public/assets/botones/boton_classic1.png +0 -0
  177. data/public/assets/botones/boton_classic2.png +0 -0
  178. data/public/assets/botones/bullet.png +0 -0
  179. data/public/assets/botones/bullet1.png +0 -0
  180. data/public/assets/botones/bullet_V_dis.png +0 -0
  181. data/public/assets/botones/bullet_dis.png +0 -0
  182. data/public/assets/botones/bullet_v.png +0 -0
  183. data/public/assets/botones/bullet_v1.png +0 -0
  184. data/public/assets/botones/chekOff.png +0 -0
  185. data/public/assets/botones/chekOff1.png +0 -0
  186. data/public/assets/botones/chekOff2.png +0 -0
  187. data/public/assets/botones/chekOn.png +0 -0
  188. data/public/assets/botones/chekOn1.png +0 -0
  189. data/public/assets/botones/chekOn2.png +0 -0
  190. data/public/assets/botones/chek_dis.png +0 -0
  191. data/public/assets/botones/close.png +0 -0
  192. data/public/assets/botones/close1.png +0 -0
  193. data/public/assets/botones/close2.png +0 -0
  194. data/public/assets/botones/close_folder.png +0 -0
  195. data/public/assets/botones/colorPicker.png +0 -0
  196. data/public/assets/botones/colorPicker1.png +0 -0
  197. data/public/assets/botones/colorPicker2.png +0 -0
  198. data/public/assets/botones/colorPicker_blanco.png +0 -0
  199. data/public/assets/botones/colorPicker_blanco1.png +0 -0
  200. data/public/assets/botones/colorPicker_blanco2.png +0 -0
  201. data/public/assets/botones/colorPicker_dis.png +0 -0
  202. data/public/assets/botones/combo.png +0 -0
  203. data/public/assets/botones/combo1.png +0 -0
  204. data/public/assets/botones/combo2.png +0 -0
  205. data/public/assets/botones/combo_dis.png +0 -0
  206. data/public/assets/botones/dataIcon.png +0 -0
  207. data/public/assets/botones/dataIcon1.png +0 -0
  208. data/public/assets/botones/dataIcon2.png +0 -0
  209. data/public/assets/botones/dataIcon_dis.png +0 -0
  210. data/public/assets/botones/dataText.png +0 -0
  211. data/public/assets/botones/folder_close.png +0 -0
  212. data/public/assets/botones/folder_open.png +0 -0
  213. data/public/assets/botones/hoja.png +0 -0
  214. data/public/assets/botones/icon_down.png +0 -0
  215. data/public/assets/botones/icon_up.png +0 -0
  216. data/public/assets/botones/last_toggle.png +0 -0
  217. data/public/assets/botones/last_toggle1.png +0 -0
  218. data/public/assets/botones/last_toggle2.png +0 -0
  219. data/public/assets/botones/last_toggle3.png +0 -0
  220. data/public/assets/botones/numericStepper_Down.png +0 -0
  221. data/public/assets/botones/numericStepper_Down1.png +0 -0
  222. data/public/assets/botones/numericStepper_Down2.png +0 -0
  223. data/public/assets/botones/numericStepper_Down_dis.png +0 -0
  224. data/public/assets/botones/numericStepper_Text.png +0 -0
  225. data/public/assets/botones/numericStepper_Up.png +0 -0
  226. data/public/assets/botones/numericStepper_Up1.png +0 -0
  227. data/public/assets/botones/numericStepper_Up2.png +0 -0
  228. data/public/assets/botones/numericStepper_Up_dis.png +0 -0
  229. data/public/assets/botones/open_folder.png +0 -0
  230. data/public/assets/botones/prev_toggle.png +0 -0
  231. data/public/assets/botones/prev_toggle1.png +0 -0
  232. data/public/assets/botones/prev_toggle2.png +0 -0
  233. data/public/assets/botones/prev_toggle3.png +0 -0
  234. data/public/assets/botones/progress.png +0 -0
  235. data/public/assets/botones/progress_barra.png +0 -0
  236. data/public/assets/botones/progress_charning.png +0 -0
  237. data/public/assets/botones/progress_dis.png +0 -0
  238. data/public/assets/botones/radio.png +0 -0
  239. data/public/assets/botones/radio1.png +0 -0
  240. data/public/assets/botones/radio2.png +0 -0
  241. data/public/assets/botones/radio3.png +0 -0
  242. data/public/assets/botones/radio4.png +0 -0
  243. data/public/assets/botones/radio_dis.png +0 -0
  244. data/public/assets/botones/seleccionData.png +0 -0
  245. data/public/assets/botones/seleccionDataSelected.png +0 -0
  246. data/public/assets/botones/seleccionDataUp.png +0 -0
  247. data/public/assets/botones/textArea.png +0 -0
  248. data/public/assets/botones/textInput.png +0 -0
  249. data/public/assets/botones/textInput_error.png +0 -0
  250. data/public/assets/botones/textInput_no.png +0 -0
  251. data/public/assets/botones/toggle_medio.png +0 -0
  252. data/public/assets/botones/toggle_medio1.png +0 -0
  253. data/public/assets/botones/toggle_medio2.png +0 -0
  254. data/public/assets/botones/toggle_medio3.png +0 -0
  255. data/public/assets/botones/toolTip.png +0 -0
  256. data/public/assets/general/Fondo4.jpg +0 -0
  257. data/public/assets/general/Fondo5.jpg +0 -0
  258. data/public/assets/general/MenuItem.png +0 -0
  259. data/public/assets/general/MenuItem1.png +0 -0
  260. data/public/assets/general/Thumbs.db +0 -0
  261. data/public/assets/general/alert_fondo.png +0 -0
  262. data/public/assets/general/alert_fondo1.png +0 -0
  263. data/public/assets/general/alert_titulo.png +0 -0
  264. data/public/assets/general/alert_titulo1.png +0 -0
  265. data/public/assets/general/blanc.png +0 -0
  266. data/public/assets/general/fondo.jpg +0 -0
  267. data/public/assets/general/fondo1.jpg +0 -0
  268. data/public/assets/general/fondo2.jpg +0 -0
  269. data/public/assets/general/fondo3.jpg +0 -0
  270. data/public/assets/general/fondo_list.png +0 -0
  271. data/public/assets/general/menu.png +0 -0
  272. data/public/assets/general/panel.png +0 -0
  273. data/public/assets/general/separator.png +0 -0
  274. data/public/assets/general/titleWindow.png +0 -0
  275. data/public/assets/general/titleWindow1.png +0 -0
  276. data/public/assets/icons/Thumbs.db +0 -0
  277. data/public/assets/icons/ai.jpg +0 -0
  278. data/public/assets/icons/air.jpg +0 -0
  279. data/public/assets/icons/fl.jpg +0 -0
  280. data/public/assets/icons/fw.jpg +0 -0
  281. data/public/assets/icons/fx.jpg +0 -0
  282. data/public/assets/icons/ps.jpg +0 -0
  283. data/public/assets/scroll/Thumbs.db +0 -0
  284. data/public/assets/scroll/barra.png +0 -0
  285. data/public/assets/scroll/barra1.png +0 -0
  286. data/public/assets/scroll/barra2.png +0 -0
  287. data/public/assets/scroll/barra_1.png +0 -0
  288. data/public/assets/scroll/barra_2.png +0 -0
  289. data/public/assets/scroll/down.png +0 -0
  290. data/public/assets/scroll/down1.png +0 -0
  291. data/public/assets/scroll/down_1.png +0 -0
  292. data/public/assets/scroll/down_2.png +0 -0
  293. data/public/assets/scroll/fondo.png +0 -0
  294. data/public/assets/scroll/fondo_1.png +0 -0
  295. data/public/assets/scroll/fondo_2.png +0 -0
  296. data/public/assets/scroll/up.png +0 -0
  297. data/public/assets/scroll/up1.png +0 -0
  298. data/public/assets/scroll/up_1.png +0 -0
  299. data/public/assets/scroll/up_2.png +0 -0
  300. data/public/assets/xml/listData.xml +0 -21
  301. data/public/dispatch.cgi +0 -10
  302. data/public/dispatch.fcgi +0 -24
  303. data/public/dispatch.rb +0 -10
  304. data/public/favicon.ico +0 -0
  305. data/public/framework_3.0.0.477.swf +0 -0
  306. data/public/framework_3.0.0.477.swz +0 -0
  307. data/public/history/history.css +0 -6
  308. data/public/history/history.js +0 -662
  309. data/public/history/historyFrame.html +0 -29
  310. data/public/images/avatar.png +0 -0
  311. data/public/images/logo.png +0 -0
  312. data/public/images/rails.png +0 -0
  313. data/public/images/spinner.gif +0 -0
  314. data/public/index.html +0 -1
  315. data/public/javascripts/application.js +0 -2
  316. data/public/javascripts/controls.js +0 -963
  317. data/public/javascripts/dragdrop.js +0 -973
  318. data/public/javascripts/effects.js +0 -1128
  319. data/public/javascripts/jquery-1.3.min.js +0 -19
  320. data/public/javascripts/jquery.localscroll.js +0 -104
  321. data/public/javascripts/jquery.scrollTo.js +0 -150
  322. data/public/javascripts/prototype.js +0 -4320
  323. data/public/playerProductInstall.swf +0 -0
  324. data/public/robots.txt +0 -5
  325. data/public/stylesheets/base.css +0 -336
  326. data/public/stylesheets/darkroom.css +0 -1374
  327. data/public/stylesheets/darkroom.swf +0 -0
  328. data/public/stylesheets/default.css +0 -1034
  329. data/public/stylesheets/myriad.swf +0 -0
  330. data/public/stylesheets/scaffold.css +0 -54
  331. data/public/stylesheets/themes/bec-green/style.css +0 -290
  332. data/public/stylesheets/themes/bec/style.css +0 -301
  333. data/public/stylesheets/themes/blue/style.css +0 -280
  334. data/public/stylesheets/themes/default/style.css +0 -267
  335. data/public/stylesheets/themes/djime-cerulean/style.css +0 -298
  336. data/public/stylesheets/themes/kathleene/style.css +0 -272
  337. data/public/stylesheets/themes/openbill/style.css +0 -272
  338. data/public/stylesheets/themes/orange/style.css +0 -263
  339. data/public/stylesheets/themes/reidb-greenish/style.css +0 -301
  340. data/rdoc/empty +0 -0
  341. data/rdoc/logo.max +0 -0
  342. data/rdoc/logo.png +0 -0
  343. data/script/about +0 -4
  344. data/script/console +0 -3
  345. data/script/dbconsole +0 -3
  346. data/script/destroy +0 -3
  347. data/script/generate +0 -3
  348. data/script/performance/benchmarker +0 -3
  349. data/script/performance/profiler +0 -3
  350. data/script/performance/request +0 -3
  351. data/script/plugin +0 -3
  352. data/script/process/inspector +0 -3
  353. data/script/process/reaper +0 -3
  354. data/script/process/spawner +0 -3
  355. data/script/runner +0 -3
  356. data/script/server +0 -3
  357. data/src/admin.mxml +0 -62
  358. data/src/assets/LoadingUndefinedSkin.swf +0 -0
  359. data/src/assets/UndefinedPersonalSkinLoad.swf +0 -0
  360. data/src/assets/blanc.png +0 -0
  361. data/src/assets/botones/Boton_dis.png +0 -0
  362. data/src/assets/botones/PopUpButton.png +0 -0
  363. data/src/assets/botones/PopUpButton1.png +0 -0
  364. data/src/assets/botones/PopUpButton2.png +0 -0
  365. data/src/assets/botones/PopUpButton_0.png +0 -0
  366. data/src/assets/botones/PopUpButton_1.png +0 -0
  367. data/src/assets/botones/PopUpButton_2.png +0 -0
  368. data/src/assets/botones/PopUpButton_dis.png +0 -0
  369. data/src/assets/botones/PopUpMenuButton.png +0 -0
  370. data/src/assets/botones/PopUpMenuButton1.png +0 -0
  371. data/src/assets/botones/PopUpMenuButton2.png +0 -0
  372. data/src/assets/botones/PopUpMenuButton_0.png +0 -0
  373. data/src/assets/botones/PopUpMenuButton_1.png +0 -0
  374. data/src/assets/botones/PopUpMenuButton_2.png +0 -0
  375. data/src/assets/botones/PopUpMenuButton_dis.png +0 -0
  376. data/src/assets/botones/Scroll_barra.png +0 -0
  377. data/src/assets/botones/Scroll_barra1.png +0 -0
  378. data/src/assets/botones/Scroll_barra2.png +0 -0
  379. data/src/assets/botones/Scroll_down.png +0 -0
  380. data/src/assets/botones/Scroll_down1.png +0 -0
  381. data/src/assets/botones/Scroll_fondo.png +0 -0
  382. data/src/assets/botones/Scroll_icon.png +0 -0
  383. data/src/assets/botones/Scroll_up.png +0 -0
  384. data/src/assets/botones/Scroll_up1.png +0 -0
  385. data/src/assets/botones/TabNavigator.png +0 -0
  386. data/src/assets/botones/TabNavigator1.png +0 -0
  387. data/src/assets/botones/TabNavigator2.png +0 -0
  388. data/src/assets/botones/TabNavigator3.png +0 -0
  389. data/src/assets/botones/Thumbs.db +0 -0
  390. data/src/assets/botones/accordion_backround.png +0 -0
  391. data/src/assets/botones/accordion_barra.png +0 -0
  392. data/src/assets/botones/accordion_barra1.png +0 -0
  393. data/src/assets/botones/accordion_barra2.png +0 -0
  394. data/src/assets/botones/accordion_barra3.png +0 -0
  395. data/src/assets/botones/adelante.png +0 -0
  396. data/src/assets/botones/adelante1.png +0 -0
  397. data/src/assets/botones/adelante2.png +0 -0
  398. data/src/assets/botones/adelante_dis.png +0 -0
  399. data/src/assets/botones/atras.png +0 -0
  400. data/src/assets/botones/atras1.png +0 -0
  401. data/src/assets/botones/atras2.png +0 -0
  402. data/src/assets/botones/atras_dis.png +0 -0
  403. data/src/assets/botones/barra.png +0 -0
  404. data/src/assets/botones/barra_dis.png +0 -0
  405. data/src/assets/botones/barra_v.png +0 -0
  406. data/src/assets/botones/boton.jpg +0 -0
  407. data/src/assets/botones/boton.png +0 -0
  408. data/src/assets/botones/boton1.png +0 -0
  409. data/src/assets/botones/boton2.png +0 -0
  410. data/src/assets/botones/boton_classic.png +0 -0
  411. data/src/assets/botones/boton_classic1.png +0 -0
  412. data/src/assets/botones/boton_classic2.png +0 -0
  413. data/src/assets/botones/bullet.png +0 -0
  414. data/src/assets/botones/bullet1.png +0 -0
  415. data/src/assets/botones/bullet_V_dis.png +0 -0
  416. data/src/assets/botones/bullet_dis.png +0 -0
  417. data/src/assets/botones/bullet_v.png +0 -0
  418. data/src/assets/botones/bullet_v1.png +0 -0
  419. data/src/assets/botones/chekOff.png +0 -0
  420. data/src/assets/botones/chekOff1.png +0 -0
  421. data/src/assets/botones/chekOff2.png +0 -0
  422. data/src/assets/botones/chekOn.png +0 -0
  423. data/src/assets/botones/chekOn1.png +0 -0
  424. data/src/assets/botones/chekOn2.png +0 -0
  425. data/src/assets/botones/chek_dis.png +0 -0
  426. data/src/assets/botones/close.png +0 -0
  427. data/src/assets/botones/close1.png +0 -0
  428. data/src/assets/botones/close2.png +0 -0
  429. data/src/assets/botones/close_folder.png +0 -0
  430. data/src/assets/botones/colorPicker.png +0 -0
  431. data/src/assets/botones/colorPicker1.png +0 -0
  432. data/src/assets/botones/colorPicker2.png +0 -0
  433. data/src/assets/botones/colorPicker_blanco.png +0 -0
  434. data/src/assets/botones/colorPicker_blanco1.png +0 -0
  435. data/src/assets/botones/colorPicker_blanco2.png +0 -0
  436. data/src/assets/botones/colorPicker_dis.png +0 -0
  437. data/src/assets/botones/combo.png +0 -0
  438. data/src/assets/botones/combo1.png +0 -0
  439. data/src/assets/botones/combo2.png +0 -0
  440. data/src/assets/botones/combo_dis.png +0 -0
  441. data/src/assets/botones/dataIcon.png +0 -0
  442. data/src/assets/botones/dataIcon1.png +0 -0
  443. data/src/assets/botones/dataIcon2.png +0 -0
  444. data/src/assets/botones/dataIcon_dis.png +0 -0
  445. data/src/assets/botones/dataText.png +0 -0
  446. data/src/assets/botones/folder_close.png +0 -0
  447. data/src/assets/botones/folder_open.png +0 -0
  448. data/src/assets/botones/hoja.png +0 -0
  449. data/src/assets/botones/icon_down.png +0 -0
  450. data/src/assets/botones/icon_up.png +0 -0
  451. data/src/assets/botones/last_toggle.png +0 -0
  452. data/src/assets/botones/last_toggle1.png +0 -0
  453. data/src/assets/botones/last_toggle2.png +0 -0
  454. data/src/assets/botones/last_toggle3.png +0 -0
  455. data/src/assets/botones/numericStepper_Down.png +0 -0
  456. data/src/assets/botones/numericStepper_Down1.png +0 -0
  457. data/src/assets/botones/numericStepper_Down2.png +0 -0
  458. data/src/assets/botones/numericStepper_Down_dis.png +0 -0
  459. data/src/assets/botones/numericStepper_Text.png +0 -0
  460. data/src/assets/botones/numericStepper_Up.png +0 -0
  461. data/src/assets/botones/numericStepper_Up1.png +0 -0
  462. data/src/assets/botones/numericStepper_Up2.png +0 -0
  463. data/src/assets/botones/numericStepper_Up_dis.png +0 -0
  464. data/src/assets/botones/open_folder.png +0 -0
  465. data/src/assets/botones/prev_toggle.png +0 -0
  466. data/src/assets/botones/prev_toggle1.png +0 -0
  467. data/src/assets/botones/prev_toggle2.png +0 -0
  468. data/src/assets/botones/prev_toggle3.png +0 -0
  469. data/src/assets/botones/progress.png +0 -0
  470. data/src/assets/botones/progress_barra.png +0 -0
  471. data/src/assets/botones/progress_charning.png +0 -0
  472. data/src/assets/botones/progress_dis.png +0 -0
  473. data/src/assets/botones/radio.png +0 -0
  474. data/src/assets/botones/radio1.png +0 -0
  475. data/src/assets/botones/radio2.png +0 -0
  476. data/src/assets/botones/radio3.png +0 -0
  477. data/src/assets/botones/radio4.png +0 -0
  478. data/src/assets/botones/radio_dis.png +0 -0
  479. data/src/assets/botones/seleccionData.png +0 -0
  480. data/src/assets/botones/seleccionDataSelected.png +0 -0
  481. data/src/assets/botones/seleccionDataUp.png +0 -0
  482. data/src/assets/botones/textArea.png +0 -0
  483. data/src/assets/botones/textInput.png +0 -0
  484. data/src/assets/botones/textInput_error.png +0 -0
  485. data/src/assets/botones/textInput_no.png +0 -0
  486. data/src/assets/botones/toggle_medio.png +0 -0
  487. data/src/assets/botones/toggle_medio1.png +0 -0
  488. data/src/assets/botones/toggle_medio2.png +0 -0
  489. data/src/assets/botones/toggle_medio3.png +0 -0
  490. data/src/assets/botones/toolTip.png +0 -0
  491. data/src/assets/general/Fondo4.jpg +0 -0
  492. data/src/assets/general/Fondo5.jpg +0 -0
  493. data/src/assets/general/MenuItem.png +0 -0
  494. data/src/assets/general/MenuItem1.png +0 -0
  495. data/src/assets/general/Thumbs.db +0 -0
  496. data/src/assets/general/alert_fondo.png +0 -0
  497. data/src/assets/general/alert_fondo1.png +0 -0
  498. data/src/assets/general/alert_titulo.png +0 -0
  499. data/src/assets/general/alert_titulo1.png +0 -0
  500. data/src/assets/general/blanc.png +0 -0
  501. data/src/assets/general/fondo.jpg +0 -0
  502. data/src/assets/general/fondo1.jpg +0 -0
  503. data/src/assets/general/fondo2.jpg +0 -0
  504. data/src/assets/general/fondo3.jpg +0 -0
  505. data/src/assets/general/fondo_list.png +0 -0
  506. data/src/assets/general/menu.png +0 -0
  507. data/src/assets/general/panel.png +0 -0
  508. data/src/assets/general/separator.png +0 -0
  509. data/src/assets/general/titleWindow.png +0 -0
  510. data/src/assets/general/titleWindow1.png +0 -0
  511. data/src/assets/icons/Thumbs.db +0 -0
  512. data/src/assets/icons/ai.jpg +0 -0
  513. data/src/assets/icons/air.jpg +0 -0
  514. data/src/assets/icons/fl.jpg +0 -0
  515. data/src/assets/icons/fw.jpg +0 -0
  516. data/src/assets/icons/fx.jpg +0 -0
  517. data/src/assets/icons/ps.jpg +0 -0
  518. data/src/assets/programmatic/BigThumbClass.as +0 -14
  519. data/src/assets/programmatic/CustomPreloader.as +0 -79
  520. data/src/assets/programmatic/MyDateField.as +0 -22
  521. data/src/assets/scroll/Thumbs.db +0 -0
  522. data/src/assets/scroll/barra.png +0 -0
  523. data/src/assets/scroll/barra1.png +0 -0
  524. data/src/assets/scroll/barra2.png +0 -0
  525. data/src/assets/scroll/barra_1.png +0 -0
  526. data/src/assets/scroll/barra_2.png +0 -0
  527. data/src/assets/scroll/down.png +0 -0
  528. data/src/assets/scroll/down1.png +0 -0
  529. data/src/assets/scroll/down_1.png +0 -0
  530. data/src/assets/scroll/down_2.png +0 -0
  531. data/src/assets/scroll/fondo.png +0 -0
  532. data/src/assets/scroll/fondo_1.png +0 -0
  533. data/src/assets/scroll/fondo_2.png +0 -0
  534. data/src/assets/scroll/up.png +0 -0
  535. data/src/assets/scroll/up1.png +0 -0
  536. data/src/assets/scroll/up_1.png +0 -0
  537. data/src/assets/scroll/up_2.png +0 -0
  538. data/src/assets/xml/listData.xml +0 -21
  539. data/src/images/logo.png +0 -0
  540. data/src/libs/Cairngorm.swc +0 -0
  541. data/src/libs/flexlib.swc +0 -0
  542. data/src/org/rsos/openbill/business/RailsDelegate.as +0 -109
  543. data/src/org/rsos/openbill/business/Services.mxml +0 -15
  544. data/src/org/rsos/openbill/command/FpCommand.as +0 -44
  545. data/src/org/rsos/openbill/command/LoginCommand.as +0 -52
  546. data/src/org/rsos/openbill/command/LogoutCommand.as +0 -43
  547. data/src/org/rsos/openbill/command/ProductCommand.as +0 -49
  548. data/src/org/rsos/openbill/command/SettingCommand.as +0 -39
  549. data/src/org/rsos/openbill/control/OpenbillController.as +0 -25
  550. data/src/org/rsos/openbill/event/FpEvent.as +0 -29
  551. data/src/org/rsos/openbill/event/LoginEvent.as +0 -29
  552. data/src/org/rsos/openbill/event/LogoutEvent.as +0 -26
  553. data/src/org/rsos/openbill/event/ProductEvent.as +0 -29
  554. data/src/org/rsos/openbill/event/SettingEvent.as +0 -29
  555. data/src/org/rsos/openbill/model/OpenbillModelLocator.as +0 -188
  556. data/src/org/rsos/openbill/util/ValueObjectUtil.as +0 -19
  557. data/src/org/rsos/openbill/view/Content.mxml +0 -4
  558. data/src/org/rsos/openbill/view/Footer.mxml +0 -25
  559. data/src/org/rsos/openbill/view/Header.mxml +0 -31
  560. data/src/org/rsos/openbill/view/Product.mxml +0 -82
  561. data/src/org/rsos/openbill/view/Setting.mxml +0 -111
  562. data/src/org/rsos/openbill/view/SignIn.mxml +0 -67
  563. data/src/org/rsos/openbill/vo/AccountVO.as +0 -13
  564. data/src/org/rsos/openbill/vo/CurrencyVO.as +0 -18
  565. data/src/org/rsos/openbill/vo/ProductVO.as +0 -17
  566. data/src/org/rsos/openbill/vo/RoleVO.as +0 -14
  567. data/src/org/rsos/openbill/vo/SettingVO.as +0 -29
  568. data/src/org/rsos/openbill/vo/UserVO.as +0 -18
  569. data/src/stylesheets/darkroom.css +0 -1374
  570. data/src/stylesheets/darkroom.swf +0 -0
  571. data/src/stylesheets/default.css +0 -1034
  572. data/src/stylesheets/myriad.swf +0 -0
  573. data/test/fixtures/accounts.yml +0 -3
  574. data/test/fixtures/billingcycles.yml +0 -41
  575. data/test/fixtures/currencies.yml +0 -11
  576. data/test/fixtures/emailtemplates.yml +0 -8
  577. data/test/fixtures/invoicedetails.yml +0 -0
  578. data/test/fixtures/invoices.yml +0 -0
  579. data/test/fixtures/options.yml +0 -0
  580. data/test/fixtures/orderdetails.yml +0 -0
  581. data/test/fixtures/orders.yml +0 -0
  582. data/test/fixtures/paymentgateways.yml +0 -0
  583. data/test/fixtures/products.yml +0 -40
  584. data/test/fixtures/registrarlogs.yml +0 -0
  585. data/test/fixtures/registrars.yml +0 -4
  586. data/test/fixtures/roles.yml +0 -19
  587. data/test/fixtures/serverlogs.yml +0 -0
  588. data/test/fixtures/servers.yml +0 -0
  589. data/test/fixtures/settings.yml +0 -7
  590. data/test/fixtures/tlds.yml +0 -17
  591. data/test/fixtures/transactions.yml +0 -0
  592. data/test/fixtures/userfieldnames.yml +0 -9
  593. data/test/fixtures/userfieldvalues.yml +0 -11
  594. data/test/fixtures/users.yml +0 -28
  595. data/test/integration/empty +0 -0
  596. data/vendor/generators/cairngorm/USAGE +0 -7
  597. data/vendor/generators/cairngorm/cairngorm_generator.rb +0 -23
  598. data/vendor/generators/cairngorm/templates/Controller_template.as +0 -20
  599. data/vendor/generators/cairngorm/templates/ModelLocator_template.as +0 -29
  600. data/vendor/generators/cairngorm/templates/Services_template.mxml +0 -8
  601. data/vendor/generators/cairngorm/templates/ValueObjectUtil_template.as +0 -19
  602. data/vendor/generators/cairngorm/templates/main_template.mxml +0 -27
  603. data/vendor/generators/command/USAGE +0 -10
  604. data/vendor/generators/command/command_generator.rb +0 -8
  605. data/vendor/generators/command/templates/command_template.as +0 -39
  606. data/vendor/generators/command/templates/event_template.as +0 -26
  607. data/vendor/generators/delegate/USAGE +0 -8
  608. data/vendor/generators/delegate/delegate_generator.rb +0 -7
  609. data/vendor/generators/delegate/templates/delegate_template.as +0 -26
  610. data/vendor/generators/event/USAGE +0 -8
  611. data/vendor/generators/event/event_generator.rb +0 -7
  612. data/vendor/generators/event/templates/event_template.as +0 -26
  613. data/vendor/generators/vo/USAGE +0 -9
  614. data/vendor/generators/vo/templates/vo_template.as +0 -18
  615. data/vendor/generators/vo/vo_generator.rb +0 -7
  616. data/vendor/generators/worbservice/USAGE +0 -8
  617. data/vendor/generators/worbservice/templates/service.rb +0 -11
  618. data/vendor/generators/worbservice/worbservice_generator.rb +0 -7
  619. data/vendor/plugins/enum-column/init.rb +0 -9
  620. data/vendor/plugins/enum-column/lib/enum/active_record_helper.rb +0 -107
  621. data/vendor/plugins/enum-column/lib/enum/enum_adapter.rb +0 -76
  622. data/vendor/plugins/enum-column/lib/enum/mysql_adapter.rb +0 -33
  623. data/vendor/plugins/enum-column/lib/enum/postgresql_adapter.rb +0 -64
  624. data/vendor/plugins/enum-column/lib/enum/quoting.rb +0 -17
  625. data/vendor/plugins/enum-column/lib/enum/schema_definitions.rb +0 -12
  626. data/vendor/plugins/enum-column/lib/enum/schema_statements.rb +0 -32
  627. data/vendor/plugins/enum-column/lib/enum/sqlite3_adapter.rb +0 -52
  628. data/vendor/plugins/enum-column/lib/enum/validations.rb +0 -40
  629. data/vendor/plugins/enum-column/readme.html +0 -125
  630. data/vendor/plugins/enum-column/test/db/schema.rb +0 -28
  631. data/vendor/plugins/enum-column/test/enum_mysql_test.rb +0 -220
  632. data/vendor/plugins/enum-column/test/fixtures/db_definitions/mysql.drop.sql +0 -32
  633. data/vendor/plugins/enum-column/test/fixtures/db_definitions/mysql.sql +0 -244
  634. data/vendor/plugins/enum-column/test/fixtures/enumeration.rb +0 -20
  635. data/vendor/plugins/enum-column/test/test_helper.rb +0 -18
  636. data/vendor/plugins/restful-authentication/.gitignore +0 -21
  637. data/vendor/plugins/restful-authentication/CHANGELOG +0 -68
  638. data/vendor/plugins/restful-authentication/LICENSE +0 -20
  639. data/vendor/plugins/restful-authentication/README.textile +0 -224
  640. data/vendor/plugins/restful-authentication/Rakefile +0 -32
  641. data/vendor/plugins/restful-authentication/TODO +0 -15
  642. data/vendor/plugins/restful-authentication/generators/authenticated/USAGE +0 -1
  643. data/vendor/plugins/restful-authentication/generators/authenticated/authenticated_generator.rb +0 -478
  644. data/vendor/plugins/restful-authentication/generators/authenticated/lib/insert_routes.rb +0 -54
  645. data/vendor/plugins/restful-authentication/generators/authenticated/templates/_model_partial.html.erb +0 -8
  646. data/vendor/plugins/restful-authentication/generators/authenticated/templates/activation.erb +0 -3
  647. data/vendor/plugins/restful-authentication/generators/authenticated/templates/authenticated_system.rb +0 -189
  648. data/vendor/plugins/restful-authentication/generators/authenticated/templates/authenticated_test_helper.rb +0 -22
  649. data/vendor/plugins/restful-authentication/generators/authenticated/templates/controller.rb +0 -43
  650. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/accounts.feature +0 -109
  651. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/sessions.feature +0 -134
  652. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_env.rb +0 -9
  653. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_navigation_steps.rb +0 -48
  654. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_resource_steps.rb +0 -178
  655. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_response_steps.rb +0 -169
  656. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/rest_auth_features_helper.rb +0 -81
  657. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/user_steps.rb +0 -131
  658. data/vendor/plugins/restful-authentication/generators/authenticated/templates/helper.rb +0 -2
  659. data/vendor/plugins/restful-authentication/generators/authenticated/templates/login.html.erb +0 -16
  660. data/vendor/plugins/restful-authentication/generators/authenticated/templates/mailer.rb +0 -25
  661. data/vendor/plugins/restful-authentication/generators/authenticated/templates/migration.rb +0 -26
  662. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model.rb +0 -83
  663. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_controller.rb +0 -85
  664. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_helper.rb +0 -93
  665. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_helper_spec.rb +0 -158
  666. data/vendor/plugins/restful-authentication/generators/authenticated/templates/observer.rb +0 -11
  667. data/vendor/plugins/restful-authentication/generators/authenticated/templates/signup.html.erb +0 -19
  668. data/vendor/plugins/restful-authentication/generators/authenticated/templates/signup_notification.erb +0 -8
  669. data/vendor/plugins/restful-authentication/generators/authenticated/templates/site_keys.rb +0 -38
  670. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/access_control_spec.rb +0 -90
  671. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/authenticated_system_spec.rb +0 -102
  672. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/sessions_controller_spec.rb +0 -139
  673. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/users_controller_spec.rb +0 -198
  674. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/fixtures/users.yml +0 -60
  675. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/helpers/users_helper_spec.rb +0 -141
  676. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/models/user_spec.rb +0 -290
  677. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/functional_test.rb +0 -82
  678. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/mailer_test.rb +0 -31
  679. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/model_functional_test.rb +0 -93
  680. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/unit_test.rb +0 -164
  681. data/vendor/plugins/restful-authentication/init.rb +0 -1
  682. data/vendor/plugins/restful-authentication/lib/authentication.rb +0 -40
  683. data/vendor/plugins/restful-authentication/lib/authentication/by_cookie_token.rb +0 -82
  684. data/vendor/plugins/restful-authentication/lib/authentication/by_password.rb +0 -64
  685. data/vendor/plugins/restful-authentication/lib/authorization.rb +0 -14
  686. data/vendor/plugins/restful-authentication/lib/authorization/aasm_roles.rb +0 -63
  687. data/vendor/plugins/restful-authentication/lib/authorization/stateful_roles.rb +0 -62
  688. data/vendor/plugins/restful-authentication/lib/trustification.rb +0 -14
  689. data/vendor/plugins/restful-authentication/lib/trustification/email_validation.rb +0 -20
  690. data/vendor/plugins/restful-authentication/notes/AccessControl.txt +0 -2
  691. data/vendor/plugins/restful-authentication/notes/Authentication.txt +0 -5
  692. data/vendor/plugins/restful-authentication/notes/Authorization.txt +0 -154
  693. data/vendor/plugins/restful-authentication/notes/RailsPlugins.txt +0 -78
  694. data/vendor/plugins/restful-authentication/notes/SecurityFramework.graffle +0 -0
  695. data/vendor/plugins/restful-authentication/notes/SecurityFramework.png +0 -0
  696. data/vendor/plugins/restful-authentication/notes/SecurityPatterns.txt +0 -163
  697. data/vendor/plugins/restful-authentication/notes/Tradeoffs.txt +0 -126
  698. data/vendor/plugins/restful-authentication/notes/Trustification.txt +0 -49
  699. data/vendor/plugins/restful-authentication/rails/init.rb +0 -3
  700. data/vendor/plugins/restful-authentication/restful-authentication.gemspec +0 -33
  701. data/vendor/plugins/restful-authentication/tasks/auth.rake +0 -33
  702. data/vendor/plugins/ruby-enom/README.markdown +0 -37
  703. data/vendor/plugins/ruby-enom/ruby-enom.rb +0 -198
@@ -1,198 +0,0 @@
1
- require File.dirname(__FILE__) + '<%= ('/..'*model_controller_class_nesting_depth) + '/../spec_helper' %>'
2
-
3
- # Be sure to include AuthenticatedTestHelper in spec/spec_helper.rb instead
4
- # Then, you can remove it from this and the units test.
5
- include AuthenticatedTestHelper
6
-
7
- describe <%= model_controller_class_name %>Controller do
8
- fixtures :<%= table_name %>
9
-
10
- it 'allows signup' do
11
- lambda do
12
- create_<%= file_name %>
13
- response.should be_redirect
14
- end.should change(<%= class_name %>, :count).by(1)
15
- end
16
-
17
- <% if options[:stateful] %>
18
- it 'signs up user in pending state' do
19
- create_<%= file_name %>
20
- assigns(:<%= file_name %>).reload
21
- assigns(:<%= file_name %>).should be_pending
22
- end<% end %>
23
-
24
- <% if options[:include_activation] -%>
25
- it 'signs up user with activation code' do
26
- create_<%= file_name %>
27
- assigns(:<%= file_name %>).reload
28
- assigns(:<%= file_name %>).activation_code.should_not be_nil
29
- end<% end -%>
30
-
31
- it 'requires login on signup' do
32
- lambda do
33
- create_<%= file_name %>(:login => nil)
34
- assigns[:<%= file_name %>].errors.on(:login).should_not be_nil
35
- response.should be_success
36
- end.should_not change(<%= class_name %>, :count)
37
- end
38
-
39
- it 'requires password on signup' do
40
- lambda do
41
- create_<%= file_name %>(:password => nil)
42
- assigns[:<%= file_name %>].errors.on(:password).should_not be_nil
43
- response.should be_success
44
- end.should_not change(<%= class_name %>, :count)
45
- end
46
-
47
- it 'requires password confirmation on signup' do
48
- lambda do
49
- create_<%= file_name %>(:password_confirmation => nil)
50
- assigns[:<%= file_name %>].errors.on(:password_confirmation).should_not be_nil
51
- response.should be_success
52
- end.should_not change(<%= class_name %>, :count)
53
- end
54
-
55
- it 'requires email on signup' do
56
- lambda do
57
- create_<%= file_name %>(:email => nil)
58
- assigns[:<%= file_name %>].errors.on(:email).should_not be_nil
59
- response.should be_success
60
- end.should_not change(<%= class_name %>, :count)
61
- end
62
-
63
- <% if options[:include_activation] %>
64
- it 'activates user' do
65
- <%= class_name %>.authenticate('aaron', 'monkey').should be_nil
66
- get :activate, :activation_code => <%= table_name %>(:aaron).activation_code
67
- response.should redirect_to('/login')
68
- flash[:notice].should_not be_nil
69
- flash[:error ].should be_nil
70
- <%= class_name %>.authenticate('aaron', 'monkey').should == <%= table_name %>(:aaron)
71
- end
72
-
73
- it 'does not activate user without key' do
74
- get :activate
75
- flash[:notice].should be_nil
76
- flash[:error ].should_not be_nil
77
- end
78
-
79
- it 'does not activate user with blank key' do
80
- get :activate, :activation_code => ''
81
- flash[:notice].should be_nil
82
- flash[:error ].should_not be_nil
83
- end
84
-
85
- it 'does not activate user with bogus key' do
86
- get :activate, :activation_code => 'i_haxxor_joo'
87
- flash[:notice].should be_nil
88
- flash[:error ].should_not be_nil
89
- end<% end %>
90
-
91
- def create_<%= file_name %>(options = {})
92
- post :create, :<%= file_name %> => { :login => 'quire', :email => 'quire@example.com',
93
- :password => 'quire69', :password_confirmation => 'quire69' }.merge(options)
94
- end
95
- end
96
-
97
- describe <%= model_controller_class_name %>Controller do
98
- describe "route generation" do
99
- it "should route <%= model_controller_controller_name %>'s 'index' action correctly" do
100
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'index').should == "/<%= model_controller_routing_path %>"
101
- end
102
-
103
- it "should route <%= model_controller_controller_name %>'s 'new' action correctly" do
104
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'new').should == "/signup"
105
- end
106
-
107
- it "should route {:controller => '<%= model_controller_controller_name %>', :action => 'create'} correctly" do
108
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'create').should == "/register"
109
- end
110
-
111
- it "should route <%= model_controller_controller_name %>'s 'show' action correctly" do
112
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'show', :id => '1').should == "/<%= model_controller_routing_path %>/1"
113
- end
114
-
115
- it "should route <%= model_controller_controller_name %>'s 'edit' action correctly" do
116
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'edit', :id => '1').should == "/<%= model_controller_routing_path %>/1/edit"
117
- end
118
-
119
- it "should route <%= model_controller_controller_name %>'s 'update' action correctly" do
120
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'update', :id => '1').should == "/<%= model_controller_routing_path %>/1"
121
- end
122
-
123
- it "should route <%= model_controller_controller_name %>'s 'destroy' action correctly" do
124
- route_for(:controller => '<%= model_controller_controller_name %>', :action => 'destroy', :id => '1').should == "/<%= model_controller_routing_path %>/1"
125
- end
126
- end
127
-
128
- describe "route recognition" do
129
- it "should generate params for <%= model_controller_controller_name %>'s index action from GET /<%= model_controller_routing_path %>" do
130
- params_from(:get, '/<%= model_controller_routing_path %>').should == {:controller => '<%= model_controller_controller_name %>', :action => 'index'}
131
- params_from(:get, '/<%= model_controller_routing_path %>.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'index', :format => 'xml'}
132
- params_from(:get, '/<%= model_controller_routing_path %>.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'index', :format => 'json'}
133
- end
134
-
135
- it "should generate params for <%= model_controller_controller_name %>'s new action from GET /<%= model_controller_routing_path %>" do
136
- params_from(:get, '/<%= model_controller_routing_path %>/new').should == {:controller => '<%= model_controller_controller_name %>', :action => 'new'}
137
- params_from(:get, '/<%= model_controller_routing_path %>/new.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'new', :format => 'xml'}
138
- params_from(:get, '/<%= model_controller_routing_path %>/new.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'new', :format => 'json'}
139
- end
140
-
141
- it "should generate params for <%= model_controller_controller_name %>'s create action from POST /<%= model_controller_routing_path %>" do
142
- params_from(:post, '/<%= model_controller_routing_path %>').should == {:controller => '<%= model_controller_controller_name %>', :action => 'create'}
143
- params_from(:post, '/<%= model_controller_routing_path %>.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'create', :format => 'xml'}
144
- params_from(:post, '/<%= model_controller_routing_path %>.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'create', :format => 'json'}
145
- end
146
-
147
- it "should generate params for <%= model_controller_controller_name %>'s show action from GET /<%= model_controller_routing_path %>/1" do
148
- params_from(:get , '/<%= model_controller_routing_path %>/1').should == {:controller => '<%= model_controller_controller_name %>', :action => 'show', :id => '1'}
149
- params_from(:get , '/<%= model_controller_routing_path %>/1.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'show', :id => '1', :format => 'xml'}
150
- params_from(:get , '/<%= model_controller_routing_path %>/1.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'show', :id => '1', :format => 'json'}
151
- end
152
-
153
- it "should generate params for <%= model_controller_controller_name %>'s edit action from GET /<%= model_controller_routing_path %>/1/edit" do
154
- params_from(:get , '/<%= model_controller_routing_path %>/1/edit').should == {:controller => '<%= model_controller_controller_name %>', :action => 'edit', :id => '1'}
155
- end
156
-
157
- it "should generate params {:controller => '<%= model_controller_controller_name %>', :action => update', :id => '1'} from PUT /<%= model_controller_routing_path %>/1" do
158
- params_from(:put , '/<%= model_controller_routing_path %>/1').should == {:controller => '<%= model_controller_controller_name %>', :action => 'update', :id => '1'}
159
- params_from(:put , '/<%= model_controller_routing_path %>/1.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'update', :id => '1', :format => 'xml'}
160
- params_from(:put , '/<%= model_controller_routing_path %>/1.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'update', :id => '1', :format => 'json'}
161
- end
162
-
163
- it "should generate params for <%= model_controller_controller_name %>'s destroy action from DELETE /<%= model_controller_routing_path %>/1" do
164
- params_from(:delete, '/<%= model_controller_routing_path %>/1').should == {:controller => '<%= model_controller_controller_name %>', :action => 'destroy', :id => '1'}
165
- params_from(:delete, '/<%= model_controller_routing_path %>/1.xml').should == {:controller => '<%= model_controller_controller_name %>', :action => 'destroy', :id => '1', :format => 'xml'}
166
- params_from(:delete, '/<%= model_controller_routing_path %>/1.json').should == {:controller => '<%= model_controller_controller_name %>', :action => 'destroy', :id => '1', :format => 'json'}
167
- end
168
- end
169
-
170
- describe "named routing" do
171
- before(:each) do
172
- get :new
173
- end
174
-
175
- it "should route <%= model_controller_routing_name %>_path() to /<%= model_controller_routing_path %>" do
176
- <%= model_controller_routing_name %>_path().should == "/<%= model_controller_routing_path %>"
177
- formatted_<%= model_controller_routing_name %>_path(:format => 'xml').should == "/<%= model_controller_routing_path %>.xml"
178
- formatted_<%= model_controller_routing_name %>_path(:format => 'json').should == "/<%= model_controller_routing_path %>.json"
179
- end
180
-
181
- it "should route new_<%= model_controller_routing_name.singularize %>_path() to /<%= model_controller_routing_path %>/new" do
182
- new_<%= model_controller_routing_name.singularize %>_path().should == "/<%= model_controller_routing_path %>/new"
183
- formatted_new_<%= model_controller_routing_name.singularize %>_path(:format => 'xml').should == "/<%= model_controller_routing_path %>/new.xml"
184
- formatted_new_<%= model_controller_routing_name.singularize %>_path(:format => 'json').should == "/<%= model_controller_routing_path %>/new.json"
185
- end
186
-
187
- it "should route <%= model_controller_routing_name.singularize %>_(:id => '1') to /<%= model_controller_routing_path %>/1" do
188
- <%= model_controller_routing_name.singularize %>_path(:id => '1').should == "/<%= model_controller_routing_path %>/1"
189
- formatted_<%= model_controller_routing_name.singularize %>_path(:id => '1', :format => 'xml').should == "/<%= model_controller_routing_path %>/1.xml"
190
- formatted_<%= model_controller_routing_name.singularize %>_path(:id => '1', :format => 'json').should == "/<%= model_controller_routing_path %>/1.json"
191
- end
192
-
193
- it "should route edit_<%= model_controller_routing_name.singularize %>_path(:id => '1') to /<%= model_controller_routing_path %>/1/edit" do
194
- edit_<%= model_controller_routing_name.singularize %>_path(:id => '1').should == "/<%= model_controller_routing_path %>/1/edit"
195
- end
196
- end
197
-
198
- end
@@ -1,60 +0,0 @@
1
- <%
2
- ## this code must match that in templates/model.rb
3
- require 'digest/sha1'
4
- def make_fake_token
5
- @fake_token_counter ||= 0
6
- @fake_token_counter += 1
7
- Digest::SHA1.hexdigest(@fake_token_counter.to_s)
8
- end
9
- salts = (1..2).map{ make_fake_token }
10
- passwds = salts.map{ |salt| password_digest('monkey', salt) }
11
- -%>
12
-
13
- quentin:
14
- id: 1
15
- login: quentin
16
- email: quentin@example.com
17
- salt: <%= salts[0] %> # SHA1('0')
18
- crypted_password: <%= passwds[0] %> # 'monkey'
19
- created_at: <%%= 5.days.ago.to_s :db %>
20
- remember_token_expires_at: <%%= 1.days.from_now.to_s %>
21
- remember_token: <%= make_fake_token %>
22
- <% if options[:include_activation] -%>
23
- activation_code:
24
- activated_at: <%%= 5.days.ago.to_s :db %>
25
- <% end -%>
26
- <% if options[:stateful] -%>
27
- state: active
28
- <% end -%>
29
-
30
- aaron:
31
- id: 2
32
- login: aaron
33
- email: aaron@example.com
34
- salt: <%= salts[1] %> # SHA1('1')
35
- crypted_password: <%= passwds[1] %> # 'monkey'
36
- created_at: <%%= 1.days.ago.to_s :db %>
37
- remember_token_expires_at:
38
- remember_token:
39
- <% if options[:include_activation] -%>
40
- activation_code: <%= make_fake_token %>
41
- activated_at:
42
- <% end -%>
43
- <% if options[:stateful] %>
44
- state: pending
45
- <% end -%>
46
-
47
-
48
- old_password_holder:
49
- id: 3
50
- login: old_password_holder
51
- email: salty_dog@example.com
52
- salt: 7e3041ebc2fc05a40c60028e2c4901a81035d3cd
53
- crypted_password: 00742970dc9e6319f8019fd54864d3ea740f04b1 # test
54
- created_at: <%%= 1.days.ago.to_s :db %>
55
- <% if options[:include_activation] %>
56
- activation_code:
57
- activated_at: <%%= 5.days.ago.to_s :db %>
58
- <% end %>
59
- <% if options[:stateful] %>
60
- state: active<% end %>
@@ -1,141 +0,0 @@
1
- require File.dirname(__FILE__) + '<%= ('/..'*model_controller_class_nesting_depth) + '/../spec_helper' %>'
2
- include ApplicationHelper
3
- include <%= model_controller_class_name %>Helper
4
- include AuthenticatedTestHelper
5
-
6
- describe <%= model_controller_class_name %>Helper do
7
- before do
8
- @<%= file_name %> = mock_<%= file_name %>
9
- end
10
-
11
- describe "if_authorized" do
12
- it "yields if authorized" do
13
- should_receive(:authorized?).with('a','r').and_return(true)
14
- if_authorized?('a','r'){|action,resource| [action,resource,'hi'] }.should == ['a','r','hi']
15
- end
16
- it "does nothing if not authorized" do
17
- should_receive(:authorized?).with('a','r').and_return(false)
18
- if_authorized?('a','r'){ 'hi' }.should be_nil
19
- end
20
- end
21
-
22
- describe "link_to_<%= file_name %>" do
23
- it "should give an error on a nil <%= file_name %>" do
24
- lambda { link_to_<%= file_name %>(nil) }.should raise_error('Invalid <%= file_name %>')
25
- end
26
- it "should link to the given <%= file_name %>" do
27
- should_receive(:<%= model_controller_routing_name.singularize %>_path).at_least(:once).and_return('/<%= model_controller_file_path %>/1')
28
- link_to_<%= file_name %>(@<%= file_name %>).should have_tag("a[href='/<%= model_controller_file_path %>/1']")
29
- end
30
- it "should use given link text if :content_text is specified" do
31
- link_to_<%= file_name %>(@<%= file_name %>, :content_text => 'Hello there!').should have_tag("a", 'Hello there!')
32
- end
33
- it "should use the login as link text with no :content_method specified" do
34
- link_to_<%= file_name %>(@<%= file_name %>).should have_tag("a", 'user_name')
35
- end
36
- it "should use the name as link text with :content_method => :name" do
37
- link_to_<%= file_name %>(@<%= file_name %>, :content_method => :name).should have_tag("a", 'U. Surname')
38
- end
39
- it "should use the login as title with no :title_method specified" do
40
- link_to_<%= file_name %>(@<%= file_name %>).should have_tag("a[title='user_name']")
41
- end
42
- it "should use the name as link title with :content_method => :name" do
43
- link_to_<%= file_name %>(@<%= file_name %>, :title_method => :name).should have_tag("a[title='U. Surname']")
44
- end
45
- it "should have nickname as a class by default" do
46
- link_to_<%= file_name %>(@<%= file_name %>).should have_tag("a.nickname")
47
- end
48
- it "should take other classes and no longer have the nickname class" do
49
- result = link_to_<%= file_name %>(@<%= file_name %>, :class => 'foo bar')
50
- result.should have_tag("a.foo")
51
- result.should have_tag("a.bar")
52
- end
53
- end
54
-
55
- describe "link_to_login_with_IP" do
56
- it "should link to the login_path" do
57
- link_to_login_with_IP().should have_tag("a[href='/login']")
58
- end
59
- it "should use given link text if :content_text is specified" do
60
- link_to_login_with_IP('Hello there!').should have_tag("a", 'Hello there!')
61
- end
62
- it "should use the login as link text with no :content_method specified" do
63
- link_to_login_with_IP().should have_tag("a", '0.0.0.0')
64
- end
65
- it "should use the ip address as title" do
66
- link_to_login_with_IP().should have_tag("a[title='0.0.0.0']")
67
- end
68
- it "should by default be like school in summer and have no class" do
69
- link_to_login_with_IP().should_not have_tag("a.nickname")
70
- end
71
- it "should have some class if you tell it to" do
72
- result = link_to_login_with_IP(nil, :class => 'foo bar')
73
- result.should have_tag("a.foo")
74
- result.should have_tag("a.bar")
75
- end
76
- it "should have some class if you tell it to" do
77
- result = link_to_login_with_IP(nil, :tag => 'abbr')
78
- result.should have_tag("abbr[title='0.0.0.0']")
79
- end
80
- end
81
-
82
- describe "link_to_current_<%= file_name %>, When logged in" do
83
- before do
84
- stub!(:current_<%= file_name %>).and_return(@<%= file_name %>)
85
- end
86
- it "should link to the given <%= file_name %>" do
87
- should_receive(:<%= model_controller_routing_name.singularize %>_path).at_least(:once).and_return('/<%= model_controller_file_path %>/1')
88
- link_to_current_<%= file_name %>().should have_tag("a[href='/<%= model_controller_file_path %>/1']")
89
- end
90
- it "should use given link text if :content_text is specified" do
91
- link_to_current_<%= file_name %>(:content_text => 'Hello there!').should have_tag("a", 'Hello there!')
92
- end
93
- it "should use the login as link text with no :content_method specified" do
94
- link_to_current_<%= file_name %>().should have_tag("a", 'user_name')
95
- end
96
- it "should use the name as link text with :content_method => :name" do
97
- link_to_current_<%= file_name %>(:content_method => :name).should have_tag("a", 'U. Surname')
98
- end
99
- it "should use the login as title with no :title_method specified" do
100
- link_to_current_<%= file_name %>().should have_tag("a[title='user_name']")
101
- end
102
- it "should use the name as link title with :content_method => :name" do
103
- link_to_current_<%= file_name %>(:title_method => :name).should have_tag("a[title='U. Surname']")
104
- end
105
- it "should have nickname as a class" do
106
- link_to_current_<%= file_name %>().should have_tag("a.nickname")
107
- end
108
- it "should take other classes and no longer have the nickname class" do
109
- result = link_to_current_<%= file_name %>(:class => 'foo bar')
110
- result.should have_tag("a.foo")
111
- result.should have_tag("a.bar")
112
- end
113
- end
114
-
115
- describe "link_to_current_<%= file_name %>, When logged out" do
116
- before do
117
- stub!(:current_<%= file_name %>).and_return(nil)
118
- end
119
- it "should link to the login_path" do
120
- link_to_current_<%= file_name %>().should have_tag("a[href='/login']")
121
- end
122
- it "should use given link text if :content_text is specified" do
123
- link_to_current_<%= file_name %>(:content_text => 'Hello there!').should have_tag("a", 'Hello there!')
124
- end
125
- it "should use 'not signed in' as link text with no :content_method specified" do
126
- link_to_current_<%= file_name %>().should have_tag("a", 'not signed in')
127
- end
128
- it "should use the ip address as title" do
129
- link_to_current_<%= file_name %>().should have_tag("a[title='0.0.0.0']")
130
- end
131
- it "should by default be like school in summer and have no class" do
132
- link_to_current_<%= file_name %>().should_not have_tag("a.nickname")
133
- end
134
- it "should have some class if you tell it to" do
135
- result = link_to_current_<%= file_name %>(:class => 'foo bar')
136
- result.should have_tag("a.foo")
137
- result.should have_tag("a.bar")
138
- end
139
- end
140
-
141
- end
@@ -1,290 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require File.dirname(__FILE__) + '<%= ('/..'*model_controller_class_nesting_depth) + '/../spec_helper' %>'
3
-
4
- # Be sure to include AuthenticatedTestHelper in spec/spec_helper.rb instead.
5
- # Then, you can remove it from this and the functional test.
6
- include AuthenticatedTestHelper
7
-
8
- describe <%= class_name %> do
9
- fixtures :<%= table_name %>
10
-
11
- describe 'being created' do
12
- before do
13
- @<%= file_name %> = nil
14
- @creating_<%= file_name %> = lambda do
15
- @<%= file_name %> = create_<%= file_name %>
16
- violated "#{@<%= file_name %>.errors.full_messages.to_sentence}" if @<%= file_name %>.new_record?
17
- end
18
- end
19
-
20
- it 'increments <%= class_name %>#count' do
21
- @creating_<%= file_name %>.should change(<%= class_name %>, :count).by(1)
22
- end
23
- <% if options[:include_activation] %>
24
- it 'initializes #activation_code' do
25
- @creating_<%= file_name %>.call
26
- @<%= file_name %>.reload
27
- @<%= file_name %>.activation_code.should_not be_nil
28
- end
29
- <% end %><% if options[:stateful] %>
30
- it 'starts in pending state' do
31
- @creating_<%= file_name %>.call
32
- @<%= file_name %>.reload
33
- @<%= file_name %>.should be_pending
34
- end
35
- <% end %> end
36
-
37
- #
38
- # Validations
39
- #
40
-
41
- it 'requires login' do
42
- lambda do
43
- u = create_<%= file_name %>(:login => nil)
44
- u.errors.on(:login).should_not be_nil
45
- end.should_not change(<%= class_name %>, :count)
46
- end
47
-
48
- describe 'allows legitimate logins:' do
49
- ['123', '1234567890_234567890_234567890_234567890',
50
- 'hello.-_there@funnychar.com'].each do |login_str|
51
- it "'#{login_str}'" do
52
- lambda do
53
- u = create_<%= file_name %>(:login => login_str)
54
- u.errors.on(:login).should be_nil
55
- end.should change(<%= class_name %>, :count).by(1)
56
- end
57
- end
58
- end
59
- describe 'disallows illegitimate logins:' do
60
- ['12', '1234567890_234567890_234567890_234567890_', "tab\t", "newline\n",
61
- "Iñtërnâtiônàlizætiøn hasn't happened to ruby 1.8 yet",
62
- 'semicolon;', 'quote"', 'tick\'', 'backtick`', 'percent%', 'plus+', 'space '].each do |login_str|
63
- it "'#{login_str}'" do
64
- lambda do
65
- u = create_<%= file_name %>(:login => login_str)
66
- u.errors.on(:login).should_not be_nil
67
- end.should_not change(<%= class_name %>, :count)
68
- end
69
- end
70
- end
71
-
72
- it 'requires password' do
73
- lambda do
74
- u = create_<%= file_name %>(:password => nil)
75
- u.errors.on(:password).should_not be_nil
76
- end.should_not change(<%= class_name %>, :count)
77
- end
78
-
79
- it 'requires password confirmation' do
80
- lambda do
81
- u = create_<%= file_name %>(:password_confirmation => nil)
82
- u.errors.on(:password_confirmation).should_not be_nil
83
- end.should_not change(<%= class_name %>, :count)
84
- end
85
-
86
- it 'requires email' do
87
- lambda do
88
- u = create_<%= file_name %>(:email => nil)
89
- u.errors.on(:email).should_not be_nil
90
- end.should_not change(<%= class_name %>, :count)
91
- end
92
-
93
- describe 'allows legitimate emails:' do
94
- ['foo@bar.com', 'foo@newskool-tld.museum', 'foo@twoletter-tld.de', 'foo@nonexistant-tld.qq',
95
- 'r@a.wk', '1234567890-234567890-234567890-234567890-234567890-234567890-234567890-234567890-234567890@gmail.com',
96
- 'hello.-_there@funnychar.com', 'uucp%addr@gmail.com', 'hello+routing-str@gmail.com',
97
- 'domain@can.haz.many.sub.doma.in', 'student.name@university.edu'
98
- ].each do |email_str|
99
- it "'#{email_str}'" do
100
- lambda do
101
- u = create_<%= file_name %>(:email => email_str)
102
- u.errors.on(:email).should be_nil
103
- end.should change(<%= class_name %>, :count).by(1)
104
- end
105
- end
106
- end
107
- describe 'disallows illegitimate emails' do
108
- ['!!@nobadchars.com', 'foo@no-rep-dots..com', 'foo@badtld.xxx', 'foo@toolongtld.abcdefg',
109
- 'Iñtërnâtiônàlizætiøn@hasnt.happened.to.email', 'need.domain.and.tld@de', "tab\t", "newline\n",
110
- 'r@.wk', '1234567890-234567890-234567890-234567890-234567890-234567890-234567890-234567890-234567890@gmail2.com',
111
- # these are technically allowed but not seen in practice:
112
- 'uucp!addr@gmail.com', 'semicolon;@gmail.com', 'quote"@gmail.com', 'tick\'@gmail.com', 'backtick`@gmail.com', 'space @gmail.com', 'bracket<@gmail.com', 'bracket>@gmail.com'
113
- ].each do |email_str|
114
- it "'#{email_str}'" do
115
- lambda do
116
- u = create_<%= file_name %>(:email => email_str)
117
- u.errors.on(:email).should_not be_nil
118
- end.should_not change(<%= class_name %>, :count)
119
- end
120
- end
121
- end
122
-
123
- describe 'allows legitimate names:' do
124
- ['Andre The Giant (7\'4", 520 lb.) -- has a posse',
125
- '', '1234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890',
126
- ].each do |name_str|
127
- it "'#{name_str}'" do
128
- lambda do
129
- u = create_<%= file_name %>(:name => name_str)
130
- u.errors.on(:name).should be_nil
131
- end.should change(<%= class_name %>, :count).by(1)
132
- end
133
- end
134
- end
135
- describe "disallows illegitimate names" do
136
- ["tab\t", "newline\n",
137
- '1234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890_234567890_',
138
- ].each do |name_str|
139
- it "'#{name_str}'" do
140
- lambda do
141
- u = create_<%= file_name %>(:name => name_str)
142
- u.errors.on(:name).should_not be_nil
143
- end.should_not change(<%= class_name %>, :count)
144
- end
145
- end
146
- end
147
-
148
- it 'resets password' do
149
- <%= table_name %>(:quentin).update_attributes(:password => 'new password', :password_confirmation => 'new password')
150
- <%= class_name %>.authenticate('quentin', 'new password').should == <%= table_name %>(:quentin)
151
- end
152
-
153
- it 'does not rehash password' do
154
- <%= table_name %>(:quentin).update_attributes(:login => 'quentin2')
155
- <%= class_name %>.authenticate('quentin2', 'monkey').should == <%= table_name %>(:quentin)
156
- end
157
-
158
- #
159
- # Authentication
160
- #
161
-
162
- it 'authenticates <%= file_name %>' do
163
- <%= class_name %>.authenticate('quentin', 'monkey').should == <%= table_name %>(:quentin)
164
- end
165
-
166
- it "doesn't authenticate <%= file_name %> with bad password" do
167
- <%= class_name %>.authenticate('quentin', 'invalid_password').should be_nil
168
- end
169
-
170
- if REST_AUTH_SITE_KEY.blank?
171
- # old-school passwords
172
- it "authenticates a user against a hard-coded old-style password" do
173
- <%= class_name %>.authenticate('old_password_holder', 'test').should == <%= table_name %>(:old_password_holder)
174
- end
175
- else
176
- it "doesn't authenticate a user against a hard-coded old-style password" do
177
- <%= class_name %>.authenticate('old_password_holder', 'test').should be_nil
178
- end
179
-
180
- # New installs should bump this up and set REST_AUTH_DIGEST_STRETCHES to give a 10ms encrypt time or so
181
- desired_encryption_expensiveness_ms = 0.1
182
- it "takes longer than #{desired_encryption_expensiveness_ms}ms to encrypt a password" do
183
- test_reps = 100
184
- start_time = Time.now; test_reps.times{ <%= class_name %>.authenticate('quentin', 'monkey'+rand.to_s) }; end_time = Time.now
185
- auth_time_ms = 1000 * (end_time - start_time)/test_reps
186
- auth_time_ms.should > desired_encryption_expensiveness_ms
187
- end
188
- end
189
-
190
- #
191
- # Authentication
192
- #
193
-
194
- it 'sets remember token' do
195
- <%= table_name %>(:quentin).remember_me
196
- <%= table_name %>(:quentin).remember_token.should_not be_nil
197
- <%= table_name %>(:quentin).remember_token_expires_at.should_not be_nil
198
- end
199
-
200
- it 'unsets remember token' do
201
- <%= table_name %>(:quentin).remember_me
202
- <%= table_name %>(:quentin).remember_token.should_not be_nil
203
- <%= table_name %>(:quentin).forget_me
204
- <%= table_name %>(:quentin).remember_token.should be_nil
205
- end
206
-
207
- it 'remembers me for one week' do
208
- before = 1.week.from_now.utc
209
- <%= table_name %>(:quentin).remember_me_for 1.week
210
- after = 1.week.from_now.utc
211
- <%= table_name %>(:quentin).remember_token.should_not be_nil
212
- <%= table_name %>(:quentin).remember_token_expires_at.should_not be_nil
213
- <%= table_name %>(:quentin).remember_token_expires_at.between?(before, after).should be_true
214
- end
215
-
216
- it 'remembers me until one week' do
217
- time = 1.week.from_now.utc
218
- <%= table_name %>(:quentin).remember_me_until time
219
- <%= table_name %>(:quentin).remember_token.should_not be_nil
220
- <%= table_name %>(:quentin).remember_token_expires_at.should_not be_nil
221
- <%= table_name %>(:quentin).remember_token_expires_at.should == time
222
- end
223
-
224
- it 'remembers me default two weeks' do
225
- before = 2.weeks.from_now.utc
226
- <%= table_name %>(:quentin).remember_me
227
- after = 2.weeks.from_now.utc
228
- <%= table_name %>(:quentin).remember_token.should_not be_nil
229
- <%= table_name %>(:quentin).remember_token_expires_at.should_not be_nil
230
- <%= table_name %>(:quentin).remember_token_expires_at.between?(before, after).should be_true
231
- end
232
- <% if options[:stateful] %>
233
- it 'registers passive <%= file_name %>' do
234
- <%= file_name %> = create_<%= file_name %>(:password => nil, :password_confirmation => nil)
235
- <%= file_name %>.should be_passive
236
- <%= file_name %>.update_attributes(:password => 'new password', :password_confirmation => 'new password')
237
- <%= file_name %>.register!
238
- <%= file_name %>.should be_pending
239
- end
240
-
241
- it 'suspends <%= file_name %>' do
242
- <%= table_name %>(:quentin).suspend!
243
- <%= table_name %>(:quentin).should be_suspended
244
- end
245
-
246
- it 'does not authenticate suspended <%= file_name %>' do
247
- <%= table_name %>(:quentin).suspend!
248
- <%= class_name %>.authenticate('quentin', 'monkey').should_not == <%= table_name %>(:quentin)
249
- end
250
-
251
- it 'deletes <%= file_name %>' do
252
- <%= table_name %>(:quentin).deleted_at.should be_nil
253
- <%= table_name %>(:quentin).delete!
254
- <%= table_name %>(:quentin).deleted_at.should_not be_nil
255
- <%= table_name %>(:quentin).should be_deleted
256
- end
257
-
258
- describe "being unsuspended" do
259
- fixtures :<%= table_name %>
260
-
261
- before do
262
- @<%= file_name %> = <%= table_name %>(:quentin)
263
- @<%= file_name %>.suspend!
264
- end
265
-
266
- it 'reverts to active state' do
267
- @<%= file_name %>.unsuspend!
268
- @<%= file_name %>.should be_active
269
- end
270
-
271
- it 'reverts to passive state if activation_code and activated_at are nil' do
272
- <%= class_name %>.update_all :activation_code => nil, :activated_at => nil
273
- @<%= file_name %>.reload.unsuspend!
274
- @<%= file_name %>.should be_passive
275
- end
276
-
277
- it 'reverts to pending state if activation_code is set and activated_at is nil' do
278
- <%= class_name %>.update_all :activation_code => 'foo-bar', :activated_at => nil
279
- @<%= file_name %>.reload.unsuspend!
280
- @<%= file_name %>.should be_pending
281
- end
282
- end
283
- <% end %>
284
- protected
285
- def create_<%= file_name %>(options = {})
286
- record = <%= class_name %>.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire69', :password_confirmation => 'quire69' }.merge(options))
287
- record.<% if options[:stateful] %>register! if record.valid?<% else %>save<% end %>
288
- record
289
- end
290
- end