openbill 0.1.4 → 0.1.5

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 (701) hide show
  1. data/.actionScriptProperties +26 -0
  2. data/.flexProperties +2 -0
  3. data/.gitignore +4 -0
  4. data/.loadpath +7 -0
  5. data/.project +24 -0
  6. data/CONTRIBUTORS +6 -0
  7. data/INSTALL +11 -0
  8. data/LICENSE +20 -20
  9. data/README +63 -63
  10. data/Rakefile +51 -0
  11. data/VERSION +1 -0
  12. data/app/controllers/application.rb +49 -0
  13. data/app/controllers/carts_controller.rb +226 -0
  14. data/app/controllers/products_controller.rb +19 -0
  15. data/app/controllers/sessions_controller.rb +39 -0
  16. data/app/controllers/settings_controller.rb +15 -0
  17. data/app/helpers/application_helper.rb +3 -0
  18. data/app/helpers/carts_helper.rb +5 -0
  19. data/app/helpers/products_helper.rb +2 -0
  20. data/app/helpers/sessions_helper.rb +2 -0
  21. data/app/helpers/settings_helper.rb +2 -0
  22. data/app/models/account.rb +16 -0
  23. data/app/models/billingcycle.rb +7 -0
  24. data/app/models/currency.rb +5 -0
  25. data/app/models/emailtemplate.rb +5 -0
  26. data/app/models/invoice.rb +13 -0
  27. data/app/models/invoicedetail.rb +8 -0
  28. data/app/models/option.rb +5 -0
  29. data/app/models/order.rb +7 -0
  30. data/app/models/orderdetail.rb +11 -0
  31. data/app/models/paymentgateway.rb +5 -0
  32. data/app/models/product.rb +10 -0
  33. data/app/models/registrar.rb +7 -0
  34. data/app/models/registrarlog.rb +6 -0
  35. data/app/models/role.rb +7 -0
  36. data/app/models/server.rb +5 -0
  37. data/app/models/serverlog.rb +6 -0
  38. data/app/models/setting.rb +6 -0
  39. data/app/models/tld.rb +9 -0
  40. data/app/models/transaction.rb +8 -0
  41. data/app/models/user.rb +68 -0
  42. data/app/models/user_mailer.rb +24 -0
  43. data/app/models/user_observer.rb +11 -0
  44. data/app/models/userfieldname.rb +8 -0
  45. data/app/models/userfieldvalue.rb +6 -0
  46. data/app/views/carts/_cart_details.html.erb +36 -0
  47. data/app/views/carts/_check_domain_availability.html.erb +7 -0
  48. data/app/views/carts/_loginbox.html.erb +33 -0
  49. data/app/views/carts/_new_domain_available.html.erb +14 -0
  50. data/app/views/carts/_new_domain_not_available.html.erb +10 -0
  51. data/app/views/carts/_orderinfobox.html.erb +1 -0
  52. data/app/views/carts/_product_details.html.erb +43 -0
  53. data/app/views/carts/_products_list.html.erb +22 -0
  54. data/app/views/carts/_signupbox.html.erb +51 -0
  55. data/app/views/carts/checkout.html.erb +22 -0
  56. data/app/views/carts/customer.html.erb +26 -0
  57. data/app/views/carts/order.html.erb +17 -0
  58. data/app/views/layouts/default.html.erb +43 -0
  59. data/app/views/user_mailer/activation.erb +3 -0
  60. data/app/views/user_mailer/signup_notification.erb +8 -0
  61. data/config/boot.rb +109 -0
  62. data/config/database.yml +20 -0
  63. data/config/environment.rb +76 -0
  64. data/config/environments/development.rb +17 -0
  65. data/config/environments/production.rb +24 -0
  66. data/config/environments/test.rb +22 -0
  67. data/config/initializers/inflections.rb +10 -0
  68. data/config/initializers/mime_types.rb +5 -0
  69. data/config/initializers/new_rails_defaults.rb +17 -0
  70. data/config/initializers/site_keys.rb +38 -0
  71. data/config/locales/en.yml +2 -0
  72. data/config/routes.rb +31 -0
  73. data/db/migrate/20090429095737_create_settings.rb +28 -0
  74. data/db/migrate/20090429102507_create_users.rb +25 -0
  75. data/db/migrate/20090429113405_create_accounts.rb +12 -0
  76. data/db/migrate/20090430091300_create_roles.rb +14 -0
  77. data/db/migrate/20090430103415_create_products.rb +24 -0
  78. data/db/migrate/20090509144706_create_sessions.rb +16 -0
  79. data/db/migrate/20090518070457_create_billingcycles.rb +15 -0
  80. data/db/migrate/20090518105551_create_orders.rb +13 -0
  81. data/db/migrate/20090518105611_create_invoices.rb +17 -0
  82. data/db/migrate/20090518105912_create_orderdetails.rb +24 -0
  83. data/db/migrate/20090518105931_create_invoicedetails.rb +14 -0
  84. data/db/migrate/20090519051441_create_servers.rb +14 -0
  85. data/db/migrate/20090519051509_create_registrars.rb +13 -0
  86. data/db/migrate/20090519051536_create_paymentgateways.rb +13 -0
  87. data/db/migrate/20090519052025_create_tlds.rb +15 -0
  88. data/db/migrate/20090519070149_create_transactions.rb +17 -0
  89. data/db/migrate/20090519070225_create_registrarlogs.rb +16 -0
  90. data/db/migrate/20090519070248_create_serverlogs.rb +16 -0
  91. data/db/migrate/20090519071741_create_emailtemplates.rb +18 -0
  92. data/db/migrate/20090519083539_create_currencies.rb +18 -0
  93. data/db/migrate/20090522102336_create_userfieldnames.rb +16 -0
  94. data/db/migrate/20090522102401_create_userfieldvalues.rb +14 -0
  95. data/db/migrate/20090526092119_create_options.rb +14 -0
  96. data/html-template/AC_OETags.js +292 -0
  97. data/html-template/history/history.css +6 -0
  98. data/html-template/history/history.js +662 -0
  99. data/html-template/history/historyFrame.html +29 -0
  100. data/html-template/index.template.html +121 -0
  101. data/html-template/playerProductInstall.swf +0 -0
  102. data/lib/authenticated_system.rb +189 -0
  103. data/lib/authenticated_test_helper.rb +11 -0
  104. data/lib/tasks/empty +0 -0
  105. data/openbill.gemspec +787 -0
  106. data/pkg/openbill-0.0.0.gem +0 -0
  107. data/pkg/openbill-0.1.3.gem +0 -0
  108. data/pkg/openbill-0.1.4.gem +0 -0
  109. data/public/404.html +30 -0
  110. data/public/422.html +30 -0
  111. data/public/500.html +33 -0
  112. data/public/AC_OETags.js +292 -0
  113. data/public/admin.html +121 -0
  114. data/public/admin.swf +0 -0
  115. data/public/assets/LoadingUndefinedSkin.swf +0 -0
  116. data/public/assets/UndefinedPersonalSkinLoad.swf +0 -0
  117. data/public/assets/blanc.png +0 -0
  118. data/public/assets/botones/Boton_dis.png +0 -0
  119. data/public/assets/botones/PopUpButton.png +0 -0
  120. data/public/assets/botones/PopUpButton1.png +0 -0
  121. data/public/assets/botones/PopUpButton2.png +0 -0
  122. data/public/assets/botones/PopUpButton_0.png +0 -0
  123. data/public/assets/botones/PopUpButton_1.png +0 -0
  124. data/public/assets/botones/PopUpButton_2.png +0 -0
  125. data/public/assets/botones/PopUpButton_dis.png +0 -0
  126. data/public/assets/botones/PopUpMenuButton.png +0 -0
  127. data/public/assets/botones/PopUpMenuButton1.png +0 -0
  128. data/public/assets/botones/PopUpMenuButton2.png +0 -0
  129. data/public/assets/botones/PopUpMenuButton_0.png +0 -0
  130. data/public/assets/botones/PopUpMenuButton_1.png +0 -0
  131. data/public/assets/botones/PopUpMenuButton_2.png +0 -0
  132. data/public/assets/botones/PopUpMenuButton_dis.png +0 -0
  133. data/public/assets/botones/Scroll_barra.png +0 -0
  134. data/public/assets/botones/Scroll_barra1.png +0 -0
  135. data/public/assets/botones/Scroll_barra2.png +0 -0
  136. data/public/assets/botones/Scroll_down.png +0 -0
  137. data/public/assets/botones/Scroll_down1.png +0 -0
  138. data/public/assets/botones/Scroll_fondo.png +0 -0
  139. data/public/assets/botones/Scroll_icon.png +0 -0
  140. data/public/assets/botones/Scroll_up.png +0 -0
  141. data/public/assets/botones/Scroll_up1.png +0 -0
  142. data/public/assets/botones/TabNavigator.png +0 -0
  143. data/public/assets/botones/TabNavigator1.png +0 -0
  144. data/public/assets/botones/TabNavigator2.png +0 -0
  145. data/public/assets/botones/TabNavigator3.png +0 -0
  146. data/public/assets/botones/Thumbs.db +0 -0
  147. data/public/assets/botones/accordion_backround.png +0 -0
  148. data/public/assets/botones/accordion_barra.png +0 -0
  149. data/public/assets/botones/accordion_barra1.png +0 -0
  150. data/public/assets/botones/accordion_barra2.png +0 -0
  151. data/public/assets/botones/accordion_barra3.png +0 -0
  152. data/public/assets/botones/adelante.png +0 -0
  153. data/public/assets/botones/adelante1.png +0 -0
  154. data/public/assets/botones/adelante2.png +0 -0
  155. data/public/assets/botones/adelante_dis.png +0 -0
  156. data/public/assets/botones/atras.png +0 -0
  157. data/public/assets/botones/atras1.png +0 -0
  158. data/public/assets/botones/atras2.png +0 -0
  159. data/public/assets/botones/atras_dis.png +0 -0
  160. data/public/assets/botones/barra.png +0 -0
  161. data/public/assets/botones/barra_dis.png +0 -0
  162. data/public/assets/botones/barra_v.png +0 -0
  163. data/public/assets/botones/boton.jpg +0 -0
  164. data/public/assets/botones/boton.png +0 -0
  165. data/public/assets/botones/boton1.png +0 -0
  166. data/public/assets/botones/boton2.png +0 -0
  167. data/public/assets/botones/boton_classic.png +0 -0
  168. data/public/assets/botones/boton_classic1.png +0 -0
  169. data/public/assets/botones/boton_classic2.png +0 -0
  170. data/public/assets/botones/bullet.png +0 -0
  171. data/public/assets/botones/bullet1.png +0 -0
  172. data/public/assets/botones/bullet_V_dis.png +0 -0
  173. data/public/assets/botones/bullet_dis.png +0 -0
  174. data/public/assets/botones/bullet_v.png +0 -0
  175. data/public/assets/botones/bullet_v1.png +0 -0
  176. data/public/assets/botones/chekOff.png +0 -0
  177. data/public/assets/botones/chekOff1.png +0 -0
  178. data/public/assets/botones/chekOff2.png +0 -0
  179. data/public/assets/botones/chekOn.png +0 -0
  180. data/public/assets/botones/chekOn1.png +0 -0
  181. data/public/assets/botones/chekOn2.png +0 -0
  182. data/public/assets/botones/chek_dis.png +0 -0
  183. data/public/assets/botones/close.png +0 -0
  184. data/public/assets/botones/close1.png +0 -0
  185. data/public/assets/botones/close2.png +0 -0
  186. data/public/assets/botones/close_folder.png +0 -0
  187. data/public/assets/botones/colorPicker.png +0 -0
  188. data/public/assets/botones/colorPicker1.png +0 -0
  189. data/public/assets/botones/colorPicker2.png +0 -0
  190. data/public/assets/botones/colorPicker_blanco.png +0 -0
  191. data/public/assets/botones/colorPicker_blanco1.png +0 -0
  192. data/public/assets/botones/colorPicker_blanco2.png +0 -0
  193. data/public/assets/botones/colorPicker_dis.png +0 -0
  194. data/public/assets/botones/combo.png +0 -0
  195. data/public/assets/botones/combo1.png +0 -0
  196. data/public/assets/botones/combo2.png +0 -0
  197. data/public/assets/botones/combo_dis.png +0 -0
  198. data/public/assets/botones/dataIcon.png +0 -0
  199. data/public/assets/botones/dataIcon1.png +0 -0
  200. data/public/assets/botones/dataIcon2.png +0 -0
  201. data/public/assets/botones/dataIcon_dis.png +0 -0
  202. data/public/assets/botones/dataText.png +0 -0
  203. data/public/assets/botones/folder_close.png +0 -0
  204. data/public/assets/botones/folder_open.png +0 -0
  205. data/public/assets/botones/hoja.png +0 -0
  206. data/public/assets/botones/icon_down.png +0 -0
  207. data/public/assets/botones/icon_up.png +0 -0
  208. data/public/assets/botones/last_toggle.png +0 -0
  209. data/public/assets/botones/last_toggle1.png +0 -0
  210. data/public/assets/botones/last_toggle2.png +0 -0
  211. data/public/assets/botones/last_toggle3.png +0 -0
  212. data/public/assets/botones/numericStepper_Down.png +0 -0
  213. data/public/assets/botones/numericStepper_Down1.png +0 -0
  214. data/public/assets/botones/numericStepper_Down2.png +0 -0
  215. data/public/assets/botones/numericStepper_Down_dis.png +0 -0
  216. data/public/assets/botones/numericStepper_Text.png +0 -0
  217. data/public/assets/botones/numericStepper_Up.png +0 -0
  218. data/public/assets/botones/numericStepper_Up1.png +0 -0
  219. data/public/assets/botones/numericStepper_Up2.png +0 -0
  220. data/public/assets/botones/numericStepper_Up_dis.png +0 -0
  221. data/public/assets/botones/open_folder.png +0 -0
  222. data/public/assets/botones/prev_toggle.png +0 -0
  223. data/public/assets/botones/prev_toggle1.png +0 -0
  224. data/public/assets/botones/prev_toggle2.png +0 -0
  225. data/public/assets/botones/prev_toggle3.png +0 -0
  226. data/public/assets/botones/progress.png +0 -0
  227. data/public/assets/botones/progress_barra.png +0 -0
  228. data/public/assets/botones/progress_charning.png +0 -0
  229. data/public/assets/botones/progress_dis.png +0 -0
  230. data/public/assets/botones/radio.png +0 -0
  231. data/public/assets/botones/radio1.png +0 -0
  232. data/public/assets/botones/radio2.png +0 -0
  233. data/public/assets/botones/radio3.png +0 -0
  234. data/public/assets/botones/radio4.png +0 -0
  235. data/public/assets/botones/radio_dis.png +0 -0
  236. data/public/assets/botones/seleccionData.png +0 -0
  237. data/public/assets/botones/seleccionDataSelected.png +0 -0
  238. data/public/assets/botones/seleccionDataUp.png +0 -0
  239. data/public/assets/botones/textArea.png +0 -0
  240. data/public/assets/botones/textInput.png +0 -0
  241. data/public/assets/botones/textInput_error.png +0 -0
  242. data/public/assets/botones/textInput_no.png +0 -0
  243. data/public/assets/botones/toggle_medio.png +0 -0
  244. data/public/assets/botones/toggle_medio1.png +0 -0
  245. data/public/assets/botones/toggle_medio2.png +0 -0
  246. data/public/assets/botones/toggle_medio3.png +0 -0
  247. data/public/assets/botones/toolTip.png +0 -0
  248. data/public/assets/general/Fondo4.jpg +0 -0
  249. data/public/assets/general/Fondo5.jpg +0 -0
  250. data/public/assets/general/MenuItem.png +0 -0
  251. data/public/assets/general/MenuItem1.png +0 -0
  252. data/public/assets/general/Thumbs.db +0 -0
  253. data/public/assets/general/alert_fondo.png +0 -0
  254. data/public/assets/general/alert_fondo1.png +0 -0
  255. data/public/assets/general/alert_titulo.png +0 -0
  256. data/public/assets/general/alert_titulo1.png +0 -0
  257. data/public/assets/general/blanc.png +0 -0
  258. data/public/assets/general/fondo.jpg +0 -0
  259. data/public/assets/general/fondo1.jpg +0 -0
  260. data/public/assets/general/fondo2.jpg +0 -0
  261. data/public/assets/general/fondo3.jpg +0 -0
  262. data/public/assets/general/fondo_list.png +0 -0
  263. data/public/assets/general/menu.png +0 -0
  264. data/public/assets/general/panel.png +0 -0
  265. data/public/assets/general/separator.png +0 -0
  266. data/public/assets/general/titleWindow.png +0 -0
  267. data/public/assets/general/titleWindow1.png +0 -0
  268. data/public/assets/icons/Thumbs.db +0 -0
  269. data/public/assets/icons/ai.jpg +0 -0
  270. data/public/assets/icons/air.jpg +0 -0
  271. data/public/assets/icons/fl.jpg +0 -0
  272. data/public/assets/icons/fw.jpg +0 -0
  273. data/public/assets/icons/fx.jpg +0 -0
  274. data/public/assets/icons/ps.jpg +0 -0
  275. data/public/assets/scroll/Thumbs.db +0 -0
  276. data/public/assets/scroll/barra.png +0 -0
  277. data/public/assets/scroll/barra1.png +0 -0
  278. data/public/assets/scroll/barra2.png +0 -0
  279. data/public/assets/scroll/barra_1.png +0 -0
  280. data/public/assets/scroll/barra_2.png +0 -0
  281. data/public/assets/scroll/down.png +0 -0
  282. data/public/assets/scroll/down1.png +0 -0
  283. data/public/assets/scroll/down_1.png +0 -0
  284. data/public/assets/scroll/down_2.png +0 -0
  285. data/public/assets/scroll/fondo.png +0 -0
  286. data/public/assets/scroll/fondo_1.png +0 -0
  287. data/public/assets/scroll/fondo_2.png +0 -0
  288. data/public/assets/scroll/up.png +0 -0
  289. data/public/assets/scroll/up1.png +0 -0
  290. data/public/assets/scroll/up_1.png +0 -0
  291. data/public/assets/scroll/up_2.png +0 -0
  292. data/public/assets/xml/listData.xml +21 -0
  293. data/public/dispatch.cgi +10 -0
  294. data/public/dispatch.fcgi +24 -0
  295. data/public/dispatch.rb +10 -0
  296. data/public/favicon.ico +0 -0
  297. data/public/framework_3.0.0.477.swf +0 -0
  298. data/public/framework_3.0.0.477.swz +0 -0
  299. data/public/history/history.css +6 -0
  300. data/public/history/history.js +662 -0
  301. data/public/history/historyFrame.html +29 -0
  302. data/public/images/avatar.png +0 -0
  303. data/public/images/logo.png +0 -0
  304. data/public/images/rails.png +0 -0
  305. data/public/images/spinner.gif +0 -0
  306. data/public/index.html +1 -0
  307. data/public/javascripts/application.js +2 -0
  308. data/public/javascripts/controls.js +963 -0
  309. data/public/javascripts/dragdrop.js +973 -0
  310. data/public/javascripts/effects.js +1128 -0
  311. data/public/javascripts/jquery-1.3.min.js +19 -0
  312. data/public/javascripts/jquery.localscroll.js +104 -0
  313. data/public/javascripts/jquery.scrollTo.js +150 -0
  314. data/public/javascripts/prototype.js +4320 -0
  315. data/public/playerProductInstall.swf +0 -0
  316. data/public/robots.txt +5 -0
  317. data/public/stylesheets/base.css +336 -0
  318. data/public/stylesheets/darkroom.css +1374 -0
  319. data/public/stylesheets/darkroom.swf +0 -0
  320. data/public/stylesheets/default.css +1034 -0
  321. data/public/stylesheets/myriad.swf +0 -0
  322. data/public/stylesheets/scaffold.css +54 -0
  323. data/public/stylesheets/themes/bec/style.css +301 -0
  324. data/public/stylesheets/themes/bec-green/style.css +290 -0
  325. data/public/stylesheets/themes/blue/style.css +280 -0
  326. data/public/stylesheets/themes/default/style.css +267 -0
  327. data/public/stylesheets/themes/djime-cerulean/style.css +298 -0
  328. data/public/stylesheets/themes/kathleene/style.css +272 -0
  329. data/public/stylesheets/themes/openbill/style.css +272 -0
  330. data/public/stylesheets/themes/orange/style.css +263 -0
  331. data/public/stylesheets/themes/reidb-greenish/style.css +301 -0
  332. data/rdoc/empty +0 -0
  333. data/rdoc/logo.max +0 -0
  334. data/rdoc/logo.png +0 -0
  335. data/script/about +4 -0
  336. data/script/console +3 -0
  337. data/script/dbconsole +3 -0
  338. data/script/destroy +3 -0
  339. data/script/generate +3 -0
  340. data/script/performance/benchmarker +3 -0
  341. data/script/performance/profiler +3 -0
  342. data/script/performance/request +3 -0
  343. data/script/plugin +3 -0
  344. data/script/process/inspector +3 -0
  345. data/script/process/reaper +3 -0
  346. data/script/process/spawner +3 -0
  347. data/script/runner +3 -0
  348. data/script/server +3 -0
  349. data/src/admin.mxml +62 -0
  350. data/src/assets/LoadingUndefinedSkin.swf +0 -0
  351. data/src/assets/UndefinedPersonalSkinLoad.swf +0 -0
  352. data/src/assets/blanc.png +0 -0
  353. data/src/assets/botones/Boton_dis.png +0 -0
  354. data/src/assets/botones/PopUpButton.png +0 -0
  355. data/src/assets/botones/PopUpButton1.png +0 -0
  356. data/src/assets/botones/PopUpButton2.png +0 -0
  357. data/src/assets/botones/PopUpButton_0.png +0 -0
  358. data/src/assets/botones/PopUpButton_1.png +0 -0
  359. data/src/assets/botones/PopUpButton_2.png +0 -0
  360. data/src/assets/botones/PopUpButton_dis.png +0 -0
  361. data/src/assets/botones/PopUpMenuButton.png +0 -0
  362. data/src/assets/botones/PopUpMenuButton1.png +0 -0
  363. data/src/assets/botones/PopUpMenuButton2.png +0 -0
  364. data/src/assets/botones/PopUpMenuButton_0.png +0 -0
  365. data/src/assets/botones/PopUpMenuButton_1.png +0 -0
  366. data/src/assets/botones/PopUpMenuButton_2.png +0 -0
  367. data/src/assets/botones/PopUpMenuButton_dis.png +0 -0
  368. data/src/assets/botones/Scroll_barra.png +0 -0
  369. data/src/assets/botones/Scroll_barra1.png +0 -0
  370. data/src/assets/botones/Scroll_barra2.png +0 -0
  371. data/src/assets/botones/Scroll_down.png +0 -0
  372. data/src/assets/botones/Scroll_down1.png +0 -0
  373. data/src/assets/botones/Scroll_fondo.png +0 -0
  374. data/src/assets/botones/Scroll_icon.png +0 -0
  375. data/src/assets/botones/Scroll_up.png +0 -0
  376. data/src/assets/botones/Scroll_up1.png +0 -0
  377. data/src/assets/botones/TabNavigator.png +0 -0
  378. data/src/assets/botones/TabNavigator1.png +0 -0
  379. data/src/assets/botones/TabNavigator2.png +0 -0
  380. data/src/assets/botones/TabNavigator3.png +0 -0
  381. data/src/assets/botones/Thumbs.db +0 -0
  382. data/src/assets/botones/accordion_backround.png +0 -0
  383. data/src/assets/botones/accordion_barra.png +0 -0
  384. data/src/assets/botones/accordion_barra1.png +0 -0
  385. data/src/assets/botones/accordion_barra2.png +0 -0
  386. data/src/assets/botones/accordion_barra3.png +0 -0
  387. data/src/assets/botones/adelante.png +0 -0
  388. data/src/assets/botones/adelante1.png +0 -0
  389. data/src/assets/botones/adelante2.png +0 -0
  390. data/src/assets/botones/adelante_dis.png +0 -0
  391. data/src/assets/botones/atras.png +0 -0
  392. data/src/assets/botones/atras1.png +0 -0
  393. data/src/assets/botones/atras2.png +0 -0
  394. data/src/assets/botones/atras_dis.png +0 -0
  395. data/src/assets/botones/barra.png +0 -0
  396. data/src/assets/botones/barra_dis.png +0 -0
  397. data/src/assets/botones/barra_v.png +0 -0
  398. data/src/assets/botones/boton.jpg +0 -0
  399. data/src/assets/botones/boton.png +0 -0
  400. data/src/assets/botones/boton1.png +0 -0
  401. data/src/assets/botones/boton2.png +0 -0
  402. data/src/assets/botones/boton_classic.png +0 -0
  403. data/src/assets/botones/boton_classic1.png +0 -0
  404. data/src/assets/botones/boton_classic2.png +0 -0
  405. data/src/assets/botones/bullet.png +0 -0
  406. data/src/assets/botones/bullet1.png +0 -0
  407. data/src/assets/botones/bullet_V_dis.png +0 -0
  408. data/src/assets/botones/bullet_dis.png +0 -0
  409. data/src/assets/botones/bullet_v.png +0 -0
  410. data/src/assets/botones/bullet_v1.png +0 -0
  411. data/src/assets/botones/chekOff.png +0 -0
  412. data/src/assets/botones/chekOff1.png +0 -0
  413. data/src/assets/botones/chekOff2.png +0 -0
  414. data/src/assets/botones/chekOn.png +0 -0
  415. data/src/assets/botones/chekOn1.png +0 -0
  416. data/src/assets/botones/chekOn2.png +0 -0
  417. data/src/assets/botones/chek_dis.png +0 -0
  418. data/src/assets/botones/close.png +0 -0
  419. data/src/assets/botones/close1.png +0 -0
  420. data/src/assets/botones/close2.png +0 -0
  421. data/src/assets/botones/close_folder.png +0 -0
  422. data/src/assets/botones/colorPicker.png +0 -0
  423. data/src/assets/botones/colorPicker1.png +0 -0
  424. data/src/assets/botones/colorPicker2.png +0 -0
  425. data/src/assets/botones/colorPicker_blanco.png +0 -0
  426. data/src/assets/botones/colorPicker_blanco1.png +0 -0
  427. data/src/assets/botones/colorPicker_blanco2.png +0 -0
  428. data/src/assets/botones/colorPicker_dis.png +0 -0
  429. data/src/assets/botones/combo.png +0 -0
  430. data/src/assets/botones/combo1.png +0 -0
  431. data/src/assets/botones/combo2.png +0 -0
  432. data/src/assets/botones/combo_dis.png +0 -0
  433. data/src/assets/botones/dataIcon.png +0 -0
  434. data/src/assets/botones/dataIcon1.png +0 -0
  435. data/src/assets/botones/dataIcon2.png +0 -0
  436. data/src/assets/botones/dataIcon_dis.png +0 -0
  437. data/src/assets/botones/dataText.png +0 -0
  438. data/src/assets/botones/folder_close.png +0 -0
  439. data/src/assets/botones/folder_open.png +0 -0
  440. data/src/assets/botones/hoja.png +0 -0
  441. data/src/assets/botones/icon_down.png +0 -0
  442. data/src/assets/botones/icon_up.png +0 -0
  443. data/src/assets/botones/last_toggle.png +0 -0
  444. data/src/assets/botones/last_toggle1.png +0 -0
  445. data/src/assets/botones/last_toggle2.png +0 -0
  446. data/src/assets/botones/last_toggle3.png +0 -0
  447. data/src/assets/botones/numericStepper_Down.png +0 -0
  448. data/src/assets/botones/numericStepper_Down1.png +0 -0
  449. data/src/assets/botones/numericStepper_Down2.png +0 -0
  450. data/src/assets/botones/numericStepper_Down_dis.png +0 -0
  451. data/src/assets/botones/numericStepper_Text.png +0 -0
  452. data/src/assets/botones/numericStepper_Up.png +0 -0
  453. data/src/assets/botones/numericStepper_Up1.png +0 -0
  454. data/src/assets/botones/numericStepper_Up2.png +0 -0
  455. data/src/assets/botones/numericStepper_Up_dis.png +0 -0
  456. data/src/assets/botones/open_folder.png +0 -0
  457. data/src/assets/botones/prev_toggle.png +0 -0
  458. data/src/assets/botones/prev_toggle1.png +0 -0
  459. data/src/assets/botones/prev_toggle2.png +0 -0
  460. data/src/assets/botones/prev_toggle3.png +0 -0
  461. data/src/assets/botones/progress.png +0 -0
  462. data/src/assets/botones/progress_barra.png +0 -0
  463. data/src/assets/botones/progress_charning.png +0 -0
  464. data/src/assets/botones/progress_dis.png +0 -0
  465. data/src/assets/botones/radio.png +0 -0
  466. data/src/assets/botones/radio1.png +0 -0
  467. data/src/assets/botones/radio2.png +0 -0
  468. data/src/assets/botones/radio3.png +0 -0
  469. data/src/assets/botones/radio4.png +0 -0
  470. data/src/assets/botones/radio_dis.png +0 -0
  471. data/src/assets/botones/seleccionData.png +0 -0
  472. data/src/assets/botones/seleccionDataSelected.png +0 -0
  473. data/src/assets/botones/seleccionDataUp.png +0 -0
  474. data/src/assets/botones/textArea.png +0 -0
  475. data/src/assets/botones/textInput.png +0 -0
  476. data/src/assets/botones/textInput_error.png +0 -0
  477. data/src/assets/botones/textInput_no.png +0 -0
  478. data/src/assets/botones/toggle_medio.png +0 -0
  479. data/src/assets/botones/toggle_medio1.png +0 -0
  480. data/src/assets/botones/toggle_medio2.png +0 -0
  481. data/src/assets/botones/toggle_medio3.png +0 -0
  482. data/src/assets/botones/toolTip.png +0 -0
  483. data/src/assets/general/Fondo4.jpg +0 -0
  484. data/src/assets/general/Fondo5.jpg +0 -0
  485. data/src/assets/general/MenuItem.png +0 -0
  486. data/src/assets/general/MenuItem1.png +0 -0
  487. data/src/assets/general/Thumbs.db +0 -0
  488. data/src/assets/general/alert_fondo.png +0 -0
  489. data/src/assets/general/alert_fondo1.png +0 -0
  490. data/src/assets/general/alert_titulo.png +0 -0
  491. data/src/assets/general/alert_titulo1.png +0 -0
  492. data/src/assets/general/blanc.png +0 -0
  493. data/src/assets/general/fondo.jpg +0 -0
  494. data/src/assets/general/fondo1.jpg +0 -0
  495. data/src/assets/general/fondo2.jpg +0 -0
  496. data/src/assets/general/fondo3.jpg +0 -0
  497. data/src/assets/general/fondo_list.png +0 -0
  498. data/src/assets/general/menu.png +0 -0
  499. data/src/assets/general/panel.png +0 -0
  500. data/src/assets/general/separator.png +0 -0
  501. data/src/assets/general/titleWindow.png +0 -0
  502. data/src/assets/general/titleWindow1.png +0 -0
  503. data/src/assets/icons/Thumbs.db +0 -0
  504. data/src/assets/icons/ai.jpg +0 -0
  505. data/src/assets/icons/air.jpg +0 -0
  506. data/src/assets/icons/fl.jpg +0 -0
  507. data/src/assets/icons/fw.jpg +0 -0
  508. data/src/assets/icons/fx.jpg +0 -0
  509. data/src/assets/icons/ps.jpg +0 -0
  510. data/src/assets/programmatic/BigThumbClass.as +14 -0
  511. data/src/assets/programmatic/CustomPreloader.as +79 -0
  512. data/src/assets/programmatic/MyDateField.as +22 -0
  513. data/src/assets/scroll/Thumbs.db +0 -0
  514. data/src/assets/scroll/barra.png +0 -0
  515. data/src/assets/scroll/barra1.png +0 -0
  516. data/src/assets/scroll/barra2.png +0 -0
  517. data/src/assets/scroll/barra_1.png +0 -0
  518. data/src/assets/scroll/barra_2.png +0 -0
  519. data/src/assets/scroll/down.png +0 -0
  520. data/src/assets/scroll/down1.png +0 -0
  521. data/src/assets/scroll/down_1.png +0 -0
  522. data/src/assets/scroll/down_2.png +0 -0
  523. data/src/assets/scroll/fondo.png +0 -0
  524. data/src/assets/scroll/fondo_1.png +0 -0
  525. data/src/assets/scroll/fondo_2.png +0 -0
  526. data/src/assets/scroll/up.png +0 -0
  527. data/src/assets/scroll/up1.png +0 -0
  528. data/src/assets/scroll/up_1.png +0 -0
  529. data/src/assets/scroll/up_2.png +0 -0
  530. data/src/assets/xml/listData.xml +21 -0
  531. data/src/images/logo.png +0 -0
  532. data/src/libs/Cairngorm.swc +0 -0
  533. data/src/libs/flexlib.swc +0 -0
  534. data/src/org/rsos/openbill/business/RailsDelegate.as +109 -0
  535. data/src/org/rsos/openbill/business/Services.mxml +15 -0
  536. data/src/org/rsos/openbill/command/FpCommand.as +44 -0
  537. data/src/org/rsos/openbill/command/LoginCommand.as +52 -0
  538. data/src/org/rsos/openbill/command/LogoutCommand.as +43 -0
  539. data/src/org/rsos/openbill/command/ProductCommand.as +49 -0
  540. data/src/org/rsos/openbill/command/SettingCommand.as +39 -0
  541. data/src/org/rsos/openbill/control/OpenbillController.as +25 -0
  542. data/src/org/rsos/openbill/event/FpEvent.as +29 -0
  543. data/src/org/rsos/openbill/event/LoginEvent.as +29 -0
  544. data/src/org/rsos/openbill/event/LogoutEvent.as +26 -0
  545. data/src/org/rsos/openbill/event/ProductEvent.as +29 -0
  546. data/src/org/rsos/openbill/event/SettingEvent.as +29 -0
  547. data/src/org/rsos/openbill/model/OpenbillModelLocator.as +188 -0
  548. data/src/org/rsos/openbill/util/ValueObjectUtil.as +19 -0
  549. data/src/org/rsos/openbill/view/Content.mxml +4 -0
  550. data/src/org/rsos/openbill/view/Footer.mxml +25 -0
  551. data/src/org/rsos/openbill/view/Header.mxml +31 -0
  552. data/src/org/rsos/openbill/view/Product.mxml +82 -0
  553. data/src/org/rsos/openbill/view/Setting.mxml +111 -0
  554. data/src/org/rsos/openbill/view/SignIn.mxml +67 -0
  555. data/src/org/rsos/openbill/vo/AccountVO.as +13 -0
  556. data/src/org/rsos/openbill/vo/CurrencyVO.as +18 -0
  557. data/src/org/rsos/openbill/vo/ProductVO.as +17 -0
  558. data/src/org/rsos/openbill/vo/RoleVO.as +14 -0
  559. data/src/org/rsos/openbill/vo/SettingVO.as +29 -0
  560. data/src/org/rsos/openbill/vo/UserVO.as +18 -0
  561. data/src/stylesheets/darkroom.css +1374 -0
  562. data/src/stylesheets/darkroom.swf +0 -0
  563. data/src/stylesheets/default.css +1034 -0
  564. data/src/stylesheets/myriad.swf +0 -0
  565. data/test/fixtures/accounts.yml +3 -0
  566. data/test/fixtures/billingcycles.yml +41 -0
  567. data/test/fixtures/currencies.yml +11 -0
  568. data/test/fixtures/emailtemplates.yml +8 -0
  569. data/test/fixtures/invoicedetails.yml +0 -0
  570. data/test/fixtures/invoices.yml +0 -0
  571. data/test/fixtures/options.yml +0 -0
  572. data/test/fixtures/orderdetails.yml +0 -0
  573. data/test/fixtures/orders.yml +0 -0
  574. data/test/fixtures/paymentgateways.yml +0 -0
  575. data/test/fixtures/products.yml +40 -0
  576. data/test/fixtures/registrarlogs.yml +0 -0
  577. data/test/fixtures/registrars.yml +4 -0
  578. data/test/fixtures/roles.yml +19 -0
  579. data/test/fixtures/serverlogs.yml +0 -0
  580. data/test/fixtures/servers.yml +0 -0
  581. data/test/fixtures/settings.yml +7 -0
  582. data/test/fixtures/tlds.yml +17 -0
  583. data/test/fixtures/transactions.yml +0 -0
  584. data/test/fixtures/userfieldnames.yml +9 -0
  585. data/test/fixtures/userfieldvalues.yml +11 -0
  586. data/test/fixtures/users.yml +28 -0
  587. data/test/functional/products_controller_test.rb +8 -8
  588. data/test/functional/sessions_controller_test.rb +8 -8
  589. data/test/functional/settings_controller_test.rb +8 -8
  590. data/test/integration/empty +0 -0
  591. data/test/unit/user_mailer_test.rb +7 -7
  592. data/test/unit/user_test.rb +7 -7
  593. data/vendor/generators/cairngorm/USAGE +7 -0
  594. data/vendor/generators/cairngorm/cairngorm_generator.rb +23 -0
  595. data/vendor/generators/cairngorm/templates/Controller_template.as +20 -0
  596. data/vendor/generators/cairngorm/templates/ModelLocator_template.as +29 -0
  597. data/vendor/generators/cairngorm/templates/Services_template.mxml +8 -0
  598. data/vendor/generators/cairngorm/templates/ValueObjectUtil_template.as +19 -0
  599. data/vendor/generators/cairngorm/templates/main_template.mxml +27 -0
  600. data/vendor/generators/command/USAGE +10 -0
  601. data/vendor/generators/command/command_generator.rb +8 -0
  602. data/vendor/generators/command/templates/command_template.as +39 -0
  603. data/vendor/generators/command/templates/event_template.as +26 -0
  604. data/vendor/generators/delegate/USAGE +8 -0
  605. data/vendor/generators/delegate/delegate_generator.rb +7 -0
  606. data/vendor/generators/delegate/templates/delegate_template.as +26 -0
  607. data/vendor/generators/event/USAGE +8 -0
  608. data/vendor/generators/event/event_generator.rb +7 -0
  609. data/vendor/generators/event/templates/event_template.as +26 -0
  610. data/vendor/generators/vo/USAGE +9 -0
  611. data/vendor/generators/vo/templates/vo_template.as +18 -0
  612. data/vendor/generators/vo/vo_generator.rb +7 -0
  613. data/vendor/generators/worbservice/USAGE +8 -0
  614. data/vendor/generators/worbservice/templates/service.rb +11 -0
  615. data/vendor/generators/worbservice/worbservice_generator.rb +7 -0
  616. data/vendor/plugins/enum-column/init.rb +9 -0
  617. data/vendor/plugins/enum-column/lib/enum/active_record_helper.rb +107 -0
  618. data/vendor/plugins/enum-column/lib/enum/enum_adapter.rb +76 -0
  619. data/vendor/plugins/enum-column/lib/enum/mysql_adapter.rb +33 -0
  620. data/vendor/plugins/enum-column/lib/enum/postgresql_adapter.rb +64 -0
  621. data/vendor/plugins/enum-column/lib/enum/quoting.rb +17 -0
  622. data/vendor/plugins/enum-column/lib/enum/schema_definitions.rb +12 -0
  623. data/vendor/plugins/enum-column/lib/enum/schema_statements.rb +32 -0
  624. data/vendor/plugins/enum-column/lib/enum/sqlite3_adapter.rb +52 -0
  625. data/vendor/plugins/enum-column/lib/enum/validations.rb +40 -0
  626. data/vendor/plugins/enum-column/readme.html +125 -0
  627. data/vendor/plugins/enum-column/test/db/schema.rb +28 -0
  628. data/vendor/plugins/enum-column/test/enum_mysql_test.rb +220 -0
  629. data/vendor/plugins/enum-column/test/fixtures/db_definitions/mysql.drop.sql +32 -0
  630. data/vendor/plugins/enum-column/test/fixtures/db_definitions/mysql.sql +244 -0
  631. data/vendor/plugins/enum-column/test/fixtures/enumeration.rb +20 -0
  632. data/vendor/plugins/enum-column/test/test_helper.rb +18 -0
  633. data/vendor/plugins/restful-authentication/.gitignore +21 -0
  634. data/vendor/plugins/restful-authentication/CHANGELOG +68 -0
  635. data/vendor/plugins/restful-authentication/LICENSE +20 -0
  636. data/vendor/plugins/restful-authentication/README.textile +224 -0
  637. data/vendor/plugins/restful-authentication/Rakefile +32 -0
  638. data/vendor/plugins/restful-authentication/TODO +15 -0
  639. data/vendor/plugins/restful-authentication/generators/authenticated/USAGE +1 -0
  640. data/vendor/plugins/restful-authentication/generators/authenticated/authenticated_generator.rb +478 -0
  641. data/vendor/plugins/restful-authentication/generators/authenticated/lib/insert_routes.rb +54 -0
  642. data/vendor/plugins/restful-authentication/generators/authenticated/templates/_model_partial.html.erb +8 -0
  643. data/vendor/plugins/restful-authentication/generators/authenticated/templates/activation.erb +3 -0
  644. data/vendor/plugins/restful-authentication/generators/authenticated/templates/authenticated_system.rb +189 -0
  645. data/vendor/plugins/restful-authentication/generators/authenticated/templates/authenticated_test_helper.rb +22 -0
  646. data/vendor/plugins/restful-authentication/generators/authenticated/templates/controller.rb +43 -0
  647. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/accounts.feature +109 -0
  648. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/sessions.feature +134 -0
  649. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_env.rb +9 -0
  650. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_navigation_steps.rb +48 -0
  651. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_resource_steps.rb +178 -0
  652. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/ra_response_steps.rb +169 -0
  653. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/rest_auth_features_helper.rb +81 -0
  654. data/vendor/plugins/restful-authentication/generators/authenticated/templates/features/step_definitions/user_steps.rb +131 -0
  655. data/vendor/plugins/restful-authentication/generators/authenticated/templates/helper.rb +2 -0
  656. data/vendor/plugins/restful-authentication/generators/authenticated/templates/login.html.erb +16 -0
  657. data/vendor/plugins/restful-authentication/generators/authenticated/templates/mailer.rb +25 -0
  658. data/vendor/plugins/restful-authentication/generators/authenticated/templates/migration.rb +26 -0
  659. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model.rb +83 -0
  660. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_controller.rb +85 -0
  661. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_helper.rb +93 -0
  662. data/vendor/plugins/restful-authentication/generators/authenticated/templates/model_helper_spec.rb +158 -0
  663. data/vendor/plugins/restful-authentication/generators/authenticated/templates/observer.rb +11 -0
  664. data/vendor/plugins/restful-authentication/generators/authenticated/templates/signup.html.erb +19 -0
  665. data/vendor/plugins/restful-authentication/generators/authenticated/templates/signup_notification.erb +8 -0
  666. data/vendor/plugins/restful-authentication/generators/authenticated/templates/site_keys.rb +38 -0
  667. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/access_control_spec.rb +90 -0
  668. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/authenticated_system_spec.rb +102 -0
  669. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/sessions_controller_spec.rb +139 -0
  670. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/controllers/users_controller_spec.rb +198 -0
  671. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/fixtures/users.yml +60 -0
  672. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/helpers/users_helper_spec.rb +141 -0
  673. data/vendor/plugins/restful-authentication/generators/authenticated/templates/spec/models/user_spec.rb +290 -0
  674. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/functional_test.rb +82 -0
  675. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/mailer_test.rb +31 -0
  676. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/model_functional_test.rb +93 -0
  677. data/vendor/plugins/restful-authentication/generators/authenticated/templates/test/unit_test.rb +164 -0
  678. data/vendor/plugins/restful-authentication/init.rb +1 -0
  679. data/vendor/plugins/restful-authentication/lib/authentication/by_cookie_token.rb +82 -0
  680. data/vendor/plugins/restful-authentication/lib/authentication/by_password.rb +64 -0
  681. data/vendor/plugins/restful-authentication/lib/authentication.rb +40 -0
  682. data/vendor/plugins/restful-authentication/lib/authorization/aasm_roles.rb +63 -0
  683. data/vendor/plugins/restful-authentication/lib/authorization/stateful_roles.rb +62 -0
  684. data/vendor/plugins/restful-authentication/lib/authorization.rb +14 -0
  685. data/vendor/plugins/restful-authentication/lib/trustification/email_validation.rb +20 -0
  686. data/vendor/plugins/restful-authentication/lib/trustification.rb +14 -0
  687. data/vendor/plugins/restful-authentication/notes/AccessControl.txt +2 -0
  688. data/vendor/plugins/restful-authentication/notes/Authentication.txt +5 -0
  689. data/vendor/plugins/restful-authentication/notes/Authorization.txt +154 -0
  690. data/vendor/plugins/restful-authentication/notes/RailsPlugins.txt +78 -0
  691. data/vendor/plugins/restful-authentication/notes/SecurityFramework.graffle +0 -0
  692. data/vendor/plugins/restful-authentication/notes/SecurityFramework.png +0 -0
  693. data/vendor/plugins/restful-authentication/notes/SecurityPatterns.txt +163 -0
  694. data/vendor/plugins/restful-authentication/notes/Tradeoffs.txt +126 -0
  695. data/vendor/plugins/restful-authentication/notes/Trustification.txt +49 -0
  696. data/vendor/plugins/restful-authentication/rails/init.rb +3 -0
  697. data/vendor/plugins/restful-authentication/restful-authentication.gemspec +33 -0
  698. data/vendor/plugins/restful-authentication/tasks/auth.rake +33 -0
  699. data/vendor/plugins/ruby-enom/README.markdown +37 -0
  700. data/vendor/plugins/ruby-enom/ruby-enom.rb +198 -0
  701. metadata +729 -8
@@ -0,0 +1,220 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'fixtures/enumeration'
3
+
4
+ class EnumerationsTest < Test::Unit::TestCase
5
+ class EnumController < ActionController::Base
6
+ def test1
7
+ @test = Enumeration.new
8
+ render :inline => "<%= input('test', 'severity')%>"
9
+ end
10
+
11
+ def test2
12
+ @test = Enumeration.new
13
+ render :inline => "<%= enum_radio('test', 'severity')%>"
14
+ end
15
+ end
16
+
17
+ def setup
18
+ Enumeration.connection.execute 'DELETE FROM enumerations'
19
+ end
20
+
21
+ def test_column_values
22
+ columns = Enumeration.columns_hash
23
+ color_column = columns['color']
24
+ assert color_column
25
+ assert_equal [:red, :blue, :green, :yellow], color_column.values
26
+
27
+ severity_column = columns['severity']
28
+ assert severity_column
29
+ assert_equal [:low, :medium, :high, :critical], severity_column.values
30
+ assert_equal :medium, severity_column.default
31
+ end
32
+
33
+ def test_insert_enum
34
+ row = Enumeration.new
35
+ row.color = :blue
36
+ row.string_field = 'test'
37
+ assert_equal :medium, row.severity
38
+ assert row.save
39
+
40
+ db_row = Enumeration.find(row.id)
41
+ assert db_row
42
+ assert :blue, row.color
43
+ assert :medium, row.severity
44
+ end
45
+
46
+ # Uses the automatic validates_columns to create automatic validation rules
47
+ # for columns based on the schema information.
48
+ def test_bad_value
49
+ row = Enumeration.new
50
+ row.color = :violet
51
+ row.string_field = 'test'
52
+ assert !row.save
53
+
54
+ assert row.errors
55
+ assert_equal 'is not included in the list', row.errors['color']
56
+ end
57
+
58
+ def test_other_types
59
+ row = Enumeration.new
60
+ row.string_field = 'a' * 10
61
+ assert !row.save
62
+ assert_equal 'is too long (maximum is 8 characters)', row.errors['string_field']
63
+
64
+ row = Enumeration.new
65
+ assert !row.save
66
+ assert_equal 'can\'t be blank', row.errors['string_field']
67
+
68
+ row = Enumeration.new
69
+ row.string_field = 'test'
70
+ row.int_field = 'aaaa'
71
+ assert !row.save
72
+ assert_equal 'is not a number', row.errors['int_field']
73
+
74
+ row = Enumeration.new
75
+ row.string_field = 'test'
76
+ row.int_field = '500'
77
+ assert row.save
78
+ end
79
+
80
+ def test_view_helper
81
+ request = ActionController::TestRequest.new
82
+ response = ActionController::TestResponse.new
83
+ request.action = 'test1'
84
+ body = EnumController.process(request, response).body
85
+ assert_equal '<select id="test_severity" name="test[severity]"><option value="low">low</option><option value="medium" selected="selected">medium</option><option value="high">high</option><option value="critical">critical</option></select>', body
86
+ end
87
+
88
+ def test_radio_helper
89
+ request = ActionController::TestRequest.new
90
+ response = ActionController::TestResponse.new
91
+ request.action = 'test2'
92
+ body = EnumController.process(request, response).body
93
+ assert_equal '<label>low: <input id="test_severity_low" name="test[severity]" type="radio" value="low" /></label><label>medium: <input checked="checked" id="test_severity_medium" name="test[severity]" type="radio" value="medium" /></label><label>high: <input id="test_severity_high" name="test[severity]" type="radio" value="high" /></label><label>critical: <input id="test_severity_critical" name="test[severity]" type="radio" value="critical" /></label>', body
94
+ end
95
+
96
+
97
+ # Basic tests
98
+ def test_create_basic_default
99
+ assert (object = BasicEnum.create)
100
+ assert_nil object.value,
101
+ "Enum columns without explicit default, default to null if allowed"
102
+ assert !object.new_record?
103
+ end
104
+
105
+ def test_create_basic_good
106
+ assert (object = BasicEnum.create(:value => :good))
107
+ assert_equal :good, object.value
108
+ assert !object.new_record?
109
+ assert (object = BasicEnum.create(:value => :working))
110
+ assert_equal :working, object.value
111
+ assert !object.new_record?
112
+ end
113
+
114
+ def test_create_basic_null
115
+ assert (object = BasicEnum.create(:value => nil))
116
+ assert_nil object.value
117
+ assert !object.new_record?
118
+ end
119
+
120
+ def test_create_basic_bad
121
+ assert (object = BasicEnum.create(:value => :bad))
122
+ assert object.new_record?
123
+ end
124
+
125
+ # Basic w/ Default
126
+
127
+ ######################################################################
128
+
129
+ def test_create_basic_wd_default
130
+ assert (object = BasicDefaultEnum.create)
131
+ assert_equal :working, object.value, "Explicit default ignored columns"
132
+ assert !object.new_record?
133
+ end
134
+
135
+ def test_create_basic_wd_good
136
+ assert (object = BasicDefaultEnum.create(:value => :good))
137
+ assert_equal :good, object.value
138
+ assert !object.new_record?
139
+ assert (object = BasicDefaultEnum.create(:value => :working))
140
+ assert_equal :working, object.value
141
+ assert !object.new_record?
142
+ end
143
+
144
+ def test_create_basic_wd_null
145
+ assert (object = BasicDefaultEnum.create(:value => nil))
146
+ assert_nil object.value
147
+ assert !object.new_record?
148
+ end
149
+
150
+ def test_create_basic_wd_bad
151
+ assert (object = BasicDefaultEnum.create(:value => :bad))
152
+ assert object.new_record?
153
+ end
154
+
155
+
156
+
157
+ # Nonnull
158
+
159
+ ######################################################################
160
+
161
+ def test_create_nonnull_default
162
+ assert (object = NonnullEnum.create)
163
+ # assert_equal :good, object.value,
164
+ # "Enum columns without explicit default, default to first value if null not allowed"
165
+ assert object.new_record?
166
+ end
167
+
168
+ def test_create_nonnull_good
169
+ assert (object = NonnullEnum.create(:value => :good))
170
+ assert_equal :good, object.value
171
+ assert !object.new_record?
172
+ assert (object = NonnullEnum.create(:value => :working))
173
+ assert_equal :working, object.value
174
+ assert !object.new_record?
175
+ end
176
+
177
+ def test_create_nonnull_null
178
+ assert (object = NonnullEnum.create(:value => nil))
179
+ assert object.new_record?
180
+ end
181
+
182
+ def test_create_nonnull_bad
183
+ assert (object = NonnullEnum.create(:value => :bad))
184
+ assert object.new_record?
185
+ end
186
+
187
+ # Nonnull w/ Default
188
+
189
+ ######################################################################
190
+
191
+ def test_create_nonnull_wd_default
192
+ assert (object = NonnullDefaultEnum.create)
193
+ assert_equal :working, object.value
194
+ assert !object.new_record?
195
+ end
196
+
197
+ def test_create_nonnull_wd_good
198
+ assert (object = NonnullDefaultEnum.create(:value => :good))
199
+ assert_equal :good, object.value
200
+ assert !object.new_record?
201
+ assert (object = NonnullDefaultEnum.create(:value => :working))
202
+ assert_equal :working, object.value
203
+ assert !object.new_record?
204
+ end
205
+
206
+ def test_create_nonnull_wd_null
207
+ assert (object = NonnullDefaultEnum.create(:value => nil))
208
+ assert object.new_record?
209
+ end
210
+
211
+ def test_create_nonnull_wd_bad
212
+ assert (object = NonnullDefaultEnum.create(:value => :bad))
213
+ assert object.new_record?
214
+ end
215
+
216
+ def test_quoting
217
+ value = ActiveRecord::Base.send(:sanitize_sql, ["value = ? ", :"'" ] )
218
+ assert_equal "value = '\\'' ", value
219
+ end
220
+ end
@@ -0,0 +1,32 @@
1
+ DROP TABLE accounts;
2
+ DROP TABLE funny_jokes;
3
+ DROP TABLE companies;
4
+ DROP TABLE topics;
5
+ DROP TABLE developers;
6
+ DROP TABLE projects;
7
+ DROP TABLE developers_projects;
8
+ DROP TABLE customers;
9
+ DROP TABLE orders;
10
+ DROP TABLE movies;
11
+ DROP TABLE subscribers;
12
+ DROP TABLE booleantests;
13
+ DROP TABLE auto_id_tests;
14
+ DROP TABLE entrants;
15
+ DROP TABLE colnametests;
16
+ DROP TABLE mixins;
17
+ DROP TABLE people;
18
+ DROP TABLE readers;
19
+ DROP TABLE binaries;
20
+ DROP TABLE computers;
21
+ DROP TABLE tasks;
22
+ DROP TABLE posts;
23
+ DROP TABLE comments;
24
+ DROP TABLE authors;
25
+ DROP TABLE categories;
26
+ DROP TABLE categories_posts;
27
+ DROP TABLE fk_test_has_fk;
28
+ DROP TABLE fk_test_has_pk;
29
+ DROP TABLE keyboards;
30
+ DROP TABLE enumerations;
31
+ DROP TABLE legacy_things;
32
+ DROP TABLE numeric_data;
@@ -0,0 +1,244 @@
1
+ CREATE TABLE `accounts` (
2
+ `id` int(11) NOT NULL auto_increment,
3
+ `firm_id` int(11) default NULL,
4
+ `credit_limit` int(5) default NULL,
5
+ PRIMARY KEY (`id`)
6
+ ) TYPE=InnoDB;
7
+
8
+ CREATE TABLE `funny_jokes` (
9
+ `id` int(11) NOT NULL auto_increment,
10
+ `name` varchar(50) default NULL,
11
+ PRIMARY KEY (`id`)
12
+ ) TYPE=InnoDB;
13
+
14
+ CREATE TABLE `companies` (
15
+ `id` int(11) NOT NULL auto_increment,
16
+ `type` varchar(50) default NULL,
17
+ `ruby_type` varchar(50) default NULL,
18
+ `firm_id` int(11) default NULL,
19
+ `name` varchar(50) default NULL,
20
+ `client_of` int(11) default NULL,
21
+ `rating` int(11) default NULL default 1,
22
+ PRIMARY KEY (`id`)
23
+ ) TYPE=InnoDB;
24
+
25
+
26
+ CREATE TABLE `topics` (
27
+ `id` int(11) NOT NULL auto_increment,
28
+ `title` varchar(255) default NULL,
29
+ `author_name` varchar(255) default NULL,
30
+ `author_email_address` varchar(255) default NULL,
31
+ `written_on` datetime default NULL,
32
+ `bonus_time` time default NULL,
33
+ `last_read` date default NULL,
34
+ `content` text,
35
+ `approved` tinyint(1) default 1,
36
+ `replies_count` int(11) default 0,
37
+ `parent_id` int(11) default NULL,
38
+ `type` varchar(50) default NULL,
39
+ PRIMARY KEY (`id`)
40
+ ) TYPE=InnoDB;
41
+
42
+ CREATE TABLE `developers` (
43
+ `id` int(11) NOT NULL auto_increment,
44
+ `name` varchar(100) default NULL,
45
+ `salary` int(11) default 70000,
46
+ `created_at` datetime default NULL,
47
+ `updated_at` datetime default NULL,
48
+ PRIMARY KEY (`id`)
49
+ ) TYPE=InnoDB;
50
+
51
+ CREATE TABLE `projects` (
52
+ `id` int(11) NOT NULL auto_increment,
53
+ `name` varchar(100) default NULL,
54
+ `type` VARCHAR(255) default NULL,
55
+ PRIMARY KEY (`id`)
56
+ ) TYPE=InnoDB;
57
+
58
+ CREATE TABLE `developers_projects` (
59
+ `developer_id` int(11) NOT NULL,
60
+ `project_id` int(11) NOT NULL,
61
+ `joined_on` date default NULL,
62
+ `access_level` smallint default 1
63
+ ) TYPE=InnoDB;
64
+
65
+ CREATE TABLE `orders` (
66
+ `id` int(11) NOT NULL auto_increment,
67
+ `name` varchar(100) default NULL,
68
+ `billing_customer_id` int(11) default NULL,
69
+ `shipping_customer_id` int(11) default NULL,
70
+ PRIMARY KEY (`id`)
71
+ ) TYPE=InnoDB;
72
+
73
+ CREATE TABLE `customers` (
74
+ `id` int(11) NOT NULL auto_increment,
75
+ `name` varchar(100) default NULL,
76
+ `balance` int(6) default 0,
77
+ `address_street` varchar(100) default NULL,
78
+ `address_city` varchar(100) default NULL,
79
+ `address_country` varchar(100) default NULL,
80
+ `gps_location` varchar(100) default NULL,
81
+ PRIMARY KEY (`id`)
82
+ ) TYPE=InnoDB;
83
+
84
+ CREATE TABLE `movies` (
85
+ `movieid` int(11) NOT NULL auto_increment,
86
+ `name` varchar(100) default NULL,
87
+ PRIMARY KEY (`movieid`)
88
+ ) TYPE=InnoDB;
89
+
90
+ CREATE TABLE `subscribers` (
91
+ `nick` varchar(100) NOT NULL,
92
+ `name` varchar(100) default NULL,
93
+ PRIMARY KEY (`nick`)
94
+ ) TYPE=InnoDB;
95
+
96
+ CREATE TABLE `booleantests` (
97
+ `id` int(11) NOT NULL auto_increment,
98
+ `value` integer default NULL,
99
+ PRIMARY KEY (`id`)
100
+ ) TYPE=InnoDB;
101
+
102
+ CREATE TABLE `auto_id_tests` (
103
+ `auto_id` int(11) NOT NULL auto_increment,
104
+ `value` integer default NULL,
105
+ PRIMARY KEY (`auto_id`)
106
+ ) TYPE=InnoDB;
107
+
108
+ CREATE TABLE `entrants` (
109
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
110
+ `name` VARCHAR(255) NOT NULL,
111
+ `course_id` INTEGER NOT NULL
112
+ );
113
+
114
+ CREATE TABLE `colnametests` (
115
+ `id` int(11) NOT NULL auto_increment,
116
+ `references` int(11) NOT NULL,
117
+ PRIMARY KEY (`id`)
118
+ ) TYPE=InnoDB;
119
+
120
+ CREATE TABLE `mixins` (
121
+ `id` int(11) NOT NULL auto_increment,
122
+ `parent_id` int(11) default NULL,
123
+ `pos` int(11) default NULL,
124
+ `created_at` datetime default NULL,
125
+ `updated_at` datetime default NULL,
126
+ `lft` int(11) default NULL,
127
+ `rgt` int(11) default NULL,
128
+ `root_id` int(11) default NULL,
129
+ `type` varchar(40) default NULL,
130
+ PRIMARY KEY (`id`)
131
+ ) TYPE=InnoDB;
132
+
133
+ CREATE TABLE `people` (
134
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
135
+ `first_name` VARCHAR(40) NOT NULL,
136
+ `lock_version` INTEGER NOT NULL DEFAULT 0
137
+ ) TYPE=InnoDB;
138
+
139
+ CREATE TABLE `readers` (
140
+ `id` int(11) NOT NULL auto_increment PRIMARY KEY,
141
+ `post_id` INTEGER NOT NULL,
142
+ `person_id` INTEGER NOT NULL
143
+ ) TYPE=InnoDB;
144
+
145
+ CREATE TABLE `binaries` (
146
+ `id` int(11) NOT NULL auto_increment,
147
+ `data` mediumblob,
148
+ PRIMARY KEY (`id`)
149
+ ) TYPE=InnoDB;
150
+
151
+ CREATE TABLE `computers` (
152
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
153
+ `developer` INTEGER NOT NULL,
154
+ `extendedWarranty` INTEGER NOT NULL
155
+ ) TYPE=InnoDB;
156
+
157
+ CREATE TABLE `posts` (
158
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
159
+ `author_id` INTEGER,
160
+ `title` VARCHAR(255) NOT NULL,
161
+ `body` TEXT NOT NULL,
162
+ `type` VARCHAR(255) NOT NULL
163
+ ) TYPE=InnoDB;
164
+
165
+ CREATE TABLE `comments` (
166
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
167
+ `post_id` INTEGER NOT NULL,
168
+ `body` TEXT NOT NULL,
169
+ `type` VARCHAR(255) NOT NULL
170
+ ) TYPE=InnoDB;
171
+
172
+ CREATE TABLE `authors` (
173
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
174
+ `name` VARCHAR(255) NOT NULL
175
+ ) TYPE=InnoDB;
176
+
177
+ CREATE TABLE `tasks` (
178
+ `id` int(11) NOT NULL auto_increment,
179
+ `starting` datetime NOT NULL default '0000-00-00 00:00:00',
180
+ `ending` datetime NOT NULL default '0000-00-00 00:00:00',
181
+ PRIMARY KEY (`id`)
182
+ ) TYPE=InnoDB;
183
+
184
+ CREATE TABLE `categories` (
185
+ `id` int(11) NOT NULL auto_increment,
186
+ `name` VARCHAR(255) NOT NULL,
187
+ `type` VARCHAR(255) NOT NULL,
188
+ PRIMARY KEY (`id`)
189
+ ) TYPE=InnoDB;
190
+
191
+ CREATE TABLE `categories_posts` (
192
+ `category_id` int(11) NOT NULL,
193
+ `post_id` int(11) NOT NULL
194
+ ) TYPE=InnoDB;
195
+
196
+ CREATE TABLE `fk_test_has_pk` (
197
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY
198
+ ) TYPE=InnoDB;
199
+
200
+ CREATE TABLE `fk_test_has_fk` (
201
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
202
+ `fk_id` INTEGER NOT NULL,
203
+
204
+ FOREIGN KEY (`fk_id`) REFERENCES `fk_test_has_pk`(`id`)
205
+ ) TYPE=InnoDB;
206
+
207
+
208
+ CREATE TABLE `keyboards` (
209
+ `key_number` int(11) NOT NULL auto_increment primary key,
210
+ `name` varchar(50) default NULL
211
+ );
212
+
213
+ <<<<<<< .mine
214
+ CREATE TABLE `enumerations` (
215
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
216
+ `severity` enum('low', 'medium', 'high', 'critical') DEFAULT 'medium',
217
+ `color` enum('red', 'blue', 'green', 'yellow'),
218
+ `string_field` varchar(8) NOT NULL,
219
+ `int_field` int(11)
220
+ ) TYPE=InnoDB;
221
+
222
+ --Altered lock_version column name.
223
+ =======
224
+ -- Altered lock_version column name.
225
+ >>>>>>> .r3595
226
+ CREATE TABLE `legacy_things` (
227
+ `id` int(11) NOT NULL auto_increment,
228
+ `tps_report_number` int(11) default NULL,
229
+ `version` int(11) NOT NULL default 0,
230
+ PRIMARY KEY (`id`)
231
+ ) TYPE=InnoDB;
232
+ <<<<<<< .mine
233
+
234
+ =======
235
+
236
+ CREATE TABLE `numeric_data` (
237
+ `id` INTEGER NOT NULL auto_increment PRIMARY KEY,
238
+ `bank_balance` decimal(10,2),
239
+ `big_bank_balance` decimal(15,2),
240
+ `world_population` decimal(10),
241
+ `my_house_population` decimal(2),
242
+ `decimal_number_with_default` decimal(3,2) DEFAULT 2.78
243
+ ) TYPE=InnoDB;
244
+ >>>>>>> .r4885
@@ -0,0 +1,20 @@
1
+
2
+ class Enumeration < ActiveRecord::Base
3
+ validates_columns :color, :severity, :string_field, :int_field
4
+ end
5
+
6
+ class BasicEnum < ActiveRecord::Base
7
+ validates_columns :value
8
+ end
9
+
10
+ class BasicDefaultEnum < ActiveRecord::Base
11
+ validates_columns :value
12
+ end
13
+
14
+ class NonnullEnum < ActiveRecord::Base
15
+ validates_columns :value
16
+ end
17
+
18
+ class NonnullDefaultEnum < ActiveRecord::Base
19
+ validates_columns :value
20
+ end
@@ -0,0 +1,18 @@
1
+ # =============================================================================
2
+ # Include the files required to test Engines.
3
+
4
+ # Load the default rails test helper - this will load the environment.
5
+ require File.dirname(__FILE__) + '/../../../../test/test_helper'
6
+
7
+ plugin_path = File::dirname(__FILE__) + '/..'
8
+ schema_file = plugin_path + "/test/db/schema.rb"
9
+ load(schema_file) if File.exist?(schema_file)
10
+
11
+ # set up the fixtures location to use your engine's fixtures
12
+ fixture_path = File.dirname(__FILE__) + "/fixtures/"
13
+ Test::Unit::TestCase.fixture_path = fixture_path
14
+ $LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path)
15
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
16
+ # =============================================================================
17
+
18
+
@@ -0,0 +1,21 @@
1
+ pkg
2
+ Icon?
3
+ .DS_Store
4
+ TAGS
5
+ REVISION
6
+ *.tmproj
7
+ .settings
8
+ .project
9
+ .tasks-cache
10
+ .svn
11
+ /log/*.log
12
+ /tmp/**/*
13
+ /config/database.yml
14
+ actionmailer_config_DONOTVERSION.rb
15
+ *DONOTVERSION*
16
+ /vendor/src/**/*
17
+ /db/*.sqlite*
18
+ /public/ac/*
19
+ /coverage
20
+ /doc/app
21
+ /doc/plugins
@@ -0,0 +1,68 @@
1
+ h1. Internal Changes to code
2
+
3
+ As always, this is just a copy-and-pasted version of the CHANGELOG file in the source code tree.
4
+
5
+ h2. Changes for the May, 2008 version of restful-authentication
6
+
7
+ h3. Changes to user model
8
+
9
+ * recently_activated? belongs only if stateful
10
+ * Gave migration a 40-char limit on remember_token & an index on users by login
11
+ * **Much** stricter login and email validation
12
+ * put length constraints in migration too
13
+ * password in 6, 40
14
+ * salt and remember_token now much less predictability
15
+
16
+ h3. Changes to session_controller
17
+
18
+ * use uniform logout function
19
+ * use uniform remember_cookie functions
20
+ * avoid calling logged_in? which will auto-log-you-in (safe in the face of
21
+ logout! call, but idiot-proof)
22
+ * Moved reset_session into only the "now logged in" branch
23
+ ** wherever it goes, it has to be in front of the current_user= call
24
+ ** See more in README-Tradeoffs.txt
25
+ * made a place to take action on failed login attempt
26
+ * recycle login and remember_me setting on failed login
27
+ * nil'ed out the password field in 'new' view
28
+
29
+ h3. Changes to users_controller
30
+
31
+ * use uniform logout function
32
+ * use uniform remember_cookie functions
33
+ * Moved reset_session into only the "now logged in" branch
34
+ ** wherever it goes, it has to be in front of the current_user= call
35
+ ** See more in README-Tradeoffs.txt
36
+ * made the implicit login only happen for non-activationed sites
37
+ * On a failed signup, kick you back to the signin screen (but strip out the password & confirmation)
38
+ * more descriptive error messages in activate()
39
+
40
+ h3. users_helper
41
+
42
+ * link_to_user, link_to_current_user, link_to_signin_with_IP
43
+ * if_authorized(action, resource, &block) view function (with appropriate
44
+ warning)
45
+
46
+ h3. authenticated_system
47
+
48
+ * Made authorized? take optional arguments action=nil, resource=nil, *args
49
+ This makes its signature better match traditional approaches to access control
50
+ eg Reference Monitor in "Security Patterns":http://www.securitypatterns.org/patterns.html)
51
+ * authorized? should be a helper too
52
+ * added uniform logout! methods
53
+ * format.any (as found in access_denied) doesn't work until
54
+ http://dev.rubyonrails.org/changeset/8987 lands.
55
+ * cookies are now refreshed each time we cross the logged out/in barrier, as
56
+ "best":http://palisade.plynt.com/issues/2004Jul/safe-auth-practices/
57
+ "practice":http://www.owasp.org/index.php/Session_Management#Regeneration_of_Session_Tokens
58
+
59
+ h3. Other
60
+
61
+ * Used escapes <%= %> in email templates (among other reasons, so courtenay's
62
+ "'dumbass' test":http://tinyurl.com/684g9t doesn't complain)
63
+ * Added site key to generator, users.yml.
64
+ * Made site key generation idempotent in the most crude and hackish way
65
+ * 100% coverage apart from the stateful code. (needed some access_control
66
+ checks, and the http_auth stuff)
67
+ * Stories!
68
+
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 rick olson
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.