spree 0.10.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spree might be problematic. Click here for more details.

Files changed (536) hide show
  1. data/CHANGELOG +81 -4
  2. data/CONTRIBUTORS +18 -10
  3. data/Rakefile +5 -4
  4. data/app/controllers/admin/adjustments_controller.rb +17 -3
  5. data/app/controllers/admin/base_controller.rb +2 -2
  6. data/app/controllers/admin/checkouts_controller.rb +43 -34
  7. data/app/controllers/admin/line_items_controller.rb +32 -18
  8. data/app/controllers/admin/option_types_controller.rb +1 -1
  9. data/app/controllers/admin/orders_controller.rb +28 -7
  10. data/app/controllers/admin/payments_controller.rb +7 -7
  11. data/app/controllers/admin/products_controller.rb +12 -23
  12. data/app/controllers/admin/reports_controller.rb +19 -7
  13. data/app/controllers/admin/return_authorizations_controller.rb +1 -1
  14. data/app/controllers/admin/shipments_controller.rb +9 -9
  15. data/app/controllers/admin/users_controller.rb +3 -1
  16. data/app/controllers/admin/variants_controller.rb +2 -2
  17. data/app/controllers/checkouts_controller.rb +29 -18
  18. data/app/controllers/content_controller.rb +1 -1
  19. data/{vendor/extensions/localization/app → app}/controllers/locale_controller.rb +1 -1
  20. data/app/controllers/orders_controller.rb +33 -30
  21. data/app/controllers/password_resets_controller.rb +4 -4
  22. data/app/controllers/products_controller.rb +0 -6
  23. data/app/controllers/spree/base_controller.rb +9 -2
  24. data/app/controllers/user_sessions_controller.rb +18 -18
  25. data/app/controllers/users_controller.rb +2 -2
  26. data/app/helpers/admin/base_helper.rb +5 -2
  27. data/app/helpers/admin/navigation_helper.rb +1 -1
  28. data/app/helpers/admin/orders_helper.rb +0 -13
  29. data/app/helpers/admin/products_helper.rb +0 -8
  30. data/app/helpers/checkouts_helper.rb +5 -5
  31. data/app/helpers/products_helper.rb +0 -12
  32. data/app/helpers/spree/base_helper.rb +10 -39
  33. data/app/helpers/taxons_helper.rb +1 -0
  34. data/app/models/address.rb +6 -1
  35. data/app/models/app_configuration.rb +15 -14
  36. data/app/models/calculator/flexi_rate.rb +2 -1
  37. data/app/models/calculator/vat.rb +1 -1
  38. data/app/models/checkout.rb +1 -1
  39. data/app/models/creditcard.rb +26 -20
  40. data/app/models/inventory_unit.rb +70 -21
  41. data/app/models/line_item.rb +25 -11
  42. data/app/models/order.rb +16 -10
  43. data/app/models/payment.rb +4 -1
  44. data/app/models/payment_method.rb +14 -5
  45. data/app/models/product.rb +12 -4
  46. data/app/models/role.rb +2 -2
  47. data/app/models/shipment.rb +21 -2
  48. data/app/models/tax_category.rb +8 -0
  49. data/app/models/taxon.rb +8 -0
  50. data/app/models/user.rb +2 -3
  51. data/app/models/variant.rb +18 -13
  52. data/config/boot.rb +1 -5
  53. data/config/cucumber.yml +7 -0
  54. data/config/database.yml +20 -37
  55. data/config/database.yml.example +5 -6
  56. data/config/environment.rb +6 -5
  57. data/config/environments/cucumber.rb +30 -0
  58. data/config/environments/production.rb +1 -4
  59. data/config/environments/staging.rb +3 -0
  60. data/config/environments/test.rb +1 -1
  61. data/config/initializers/cookie_verification_secret.rb +7 -0
  62. data/config/initializers/locales.rb +4 -2
  63. data/config/initializers/new_rails_defaults.rb +2 -0
  64. data/config/initializers/spree.rb +1 -0
  65. data/config/initializers/workarounds_for_ruby19.rb +0 -25
  66. data/config/locales/{en-US.yml → en_spree.yml} +18 -4
  67. data/config/routes.rb +2 -1
  68. data/db/migrate/20100317120946_add_alt_text_to_images.rb +9 -0
  69. data/db/migrate/20100427121301_add_display_to_payment_methods.rb +9 -0
  70. data/db/migrate/20100504142133_add_addresses_checkouts_indexes.rb +16 -0
  71. data/db/migrate/20100506180619_add_icon_to_taxons.rb +18 -0
  72. data/db/migrate/20100506185838_add_description_to_taxons.rb +11 -0
  73. data/db/migrate/20100528155333_index_for_shipments_number.rb +9 -0
  74. data/db/migrate/20100528185820_add_index_on_users_persistence_token.rb +9 -0
  75. data/db/migrate/20100605152042_add_default_to_tax_categories.rb +9 -0
  76. data/db/sample/payment_methods.yml +8 -1
  77. data/db/sample/shipments.yml +2 -2
  78. data/db/schema.rb +54 -21
  79. data/features/checkout.feature +98 -0
  80. data/features/create_admin_user.feature +18 -0
  81. data/features/search.feature +35 -0
  82. data/features/sign_in.feature +25 -0
  83. data/features/sign_out.feature +12 -0
  84. data/features/sign_up.feature +20 -0
  85. data/features/step_definitions/error_steps.rb +3 -0
  86. data/features/step_definitions/model_steps.rb +3 -0
  87. data/features/step_definitions/pickle_steps.rb +73 -0
  88. data/features/step_definitions/role_steps.rb +8 -0
  89. data/features/step_definitions/session_steps.rb +14 -0
  90. data/features/step_definitions/user_steps.rb +67 -0
  91. data/features/step_definitions/web_steps.rb +197 -0
  92. data/features/support/create_admin_user.rb +6 -0
  93. data/features/support/env.rb +89 -0
  94. data/features/support/paths.rb +32 -0
  95. data/features/support/pickle.rb +24 -0
  96. data/features/work_with_cart.feature +41 -0
  97. data/lib/generators/extension_model/extension_model_generator.rb +10 -10
  98. data/lib/generators/instance/templates/databases/mysql.yml +11 -0
  99. data/lib/scopes/variant.rb +10 -0
  100. data/lib/spree.rb +3 -3
  101. data/lib/spree/extensions.rb +1 -1
  102. data/lib/tasks/cucumber.rake +47 -0
  103. data/lib/tasks/database.rake +29 -29
  104. data/public/images/admin/bg/spree_50.png +0 -0
  105. data/public/images/tile-header.png +0 -0
  106. data/public/images/tile-slider.png +0 -0
  107. data/public/javascripts/admin/checkouts/edit.js +33 -0
  108. data/public/javascripts/dashboard.js +2 -2
  109. data/public/javascripts/taxonomy.js +2 -2
  110. data/public/stylesheets/admin/admin-tables.css +4 -0
  111. data/public/stylesheets/admin/admin.css +31 -16
  112. data/public/stylesheets/screen.css +16 -3
  113. data/script/about +3 -2
  114. data/script/console +2 -2
  115. data/script/cucumber +10 -0
  116. data/script/dbconsole +1 -1
  117. data/script/destroy +2 -2
  118. data/script/generate +2 -2
  119. data/script/performance/benchmarker +1 -1
  120. data/script/performance/profiler +1 -1
  121. data/script/plugin +2 -2
  122. data/script/runner +2 -2
  123. data/script/server +2 -2
  124. data/test/fixtures/payment_methods.yml +12 -0
  125. data/test/functional/admin/checkouts_controller_test.rb +0 -2
  126. data/test/functional/admin/line_items_controller_test.rb +78 -39
  127. data/test/functional/admin/products_controller_test.rb +4 -5
  128. data/test/integration/checkout_test.rb +1 -0
  129. data/test/test_helper.rb +114 -86
  130. data/test/unit/creditcard_test.rb +28 -7
  131. data/test/unit/flexi_rate_calculator_test.rb +75 -0
  132. data/test/unit/helpers/products_helper_test.rb +4 -4
  133. data/test/unit/inventory_unit_test.rb +39 -5
  134. data/test/unit/line_item_test.rb +60 -1
  135. data/test/unit/order_state_test.rb +85 -58
  136. data/test/unit/order_test.rb +144 -123
  137. data/test/unit/product_test.rb +21 -0
  138. data/test/unit/return_authorization_test.rb +22 -28
  139. data/test/unit/shipment_test.rb +19 -7
  140. data/test/unit/variant_test.rb +100 -24
  141. data/vendor/extensions/api/api_extension.rb +2 -2
  142. data/vendor/extensions/api/app/controllers/api/base_controller.rb +14 -6
  143. data/vendor/extensions/api/app/controllers/api/countries_controller.rb +4 -0
  144. data/vendor/extensions/api/app/controllers/api/orders_controller.rb +4 -4
  145. data/vendor/extensions/api/app/controllers/api/products_controller.rb +5 -1
  146. data/vendor/extensions/api/app/controllers/api/shipments_controller.rb +7 -7
  147. data/vendor/extensions/api/app/controllers/api/states_controller.rb +5 -0
  148. data/vendor/extensions/api/config/locales/{en-US.yml → en.yml} +2 -2
  149. data/vendor/extensions/api/config/routes.rb +5 -0
  150. data/vendor/extensions/api/test/integration/orders_api_test.rb +4 -4
  151. data/vendor/extensions/overview_dashboard/app/views/admin/overview/index.html.erb +1 -1
  152. data/vendor/extensions/payment_gateway/app/models/gateway.rb +1 -1
  153. data/vendor/extensions/payment_gateway/app/models/gateway/authorize_net_cim.rb +41 -29
  154. data/vendor/extensions/payment_gateway/app/models/gateway/bogus.rb +3 -3
  155. data/vendor/extensions/payment_gateway/app/models/gateway/eway.rb +11 -0
  156. data/vendor/extensions/payment_gateway/app/models/gateway/sage_pay.rb +9 -0
  157. data/vendor/extensions/payment_gateway/config/locales/{en-US.yml → en.yml} +1 -1
  158. data/vendor/extensions/payment_gateway/lib/spree/payment_gateway.rb +46 -56
  159. data/vendor/extensions/payment_gateway/payment_gateway_extension.rb +9 -10
  160. data/vendor/extensions/payment_gateway/test/unit/authorize_net_cim_test.rb +7 -6
  161. data/vendor/extensions/theme_default/app/stylesheets/_checkout.less +10 -3
  162. data/vendor/extensions/theme_default/app/views/admin/adjustments/index.html.erb +1 -1
  163. data/vendor/extensions/theme_default/app/views/admin/checkouts/_form.html.erb +31 -5
  164. data/vendor/extensions/theme_default/app/views/admin/checkouts/show.html.erb +27 -16
  165. data/vendor/extensions/theme_default/app/views/admin/images/_form.html.erb +4 -0
  166. data/vendor/extensions/theme_default/app/views/admin/images/index.html.erb +16 -13
  167. data/vendor/extensions/theme_default/app/views/admin/orders/_add_product.html.erb +1 -1
  168. data/vendor/extensions/theme_default/app/views/admin/orders/_form.html.erb +7 -0
  169. data/vendor/extensions/theme_default/app/views/admin/orders/index.html.erb +5 -5
  170. data/vendor/extensions/theme_default/app/views/admin/payment_methods/_form.html.erb +12 -6
  171. data/vendor/extensions/theme_default/app/views/admin/payment_methods/index.html.erb +22 -11
  172. data/vendor/extensions/theme_default/app/views/admin/product_groups/update.js.erb +2 -2
  173. data/vendor/extensions/theme_default/app/views/admin/products/_form.html.erb +6 -4
  174. data/vendor/extensions/theme_default/app/views/admin/shared/_address_form.html.erb +64 -55
  175. data/vendor/extensions/theme_default/app/views/admin/shared/_configuration_menu.html.erb +1 -1
  176. data/vendor/extensions/theme_default/app/views/admin/shared/_order_tabs.html.erb +11 -3
  177. data/vendor/extensions/theme_default/app/views/admin/shared/_product_tabs.html.erb +1 -1
  178. data/vendor/extensions/theme_default/app/views/admin/shipments/_form.html.erb +32 -29
  179. data/vendor/extensions/theme_default/app/views/admin/shipments/index.html.erb +2 -1
  180. data/vendor/extensions/theme_default/app/views/admin/tax_categories/_form.html.erb +6 -3
  181. data/vendor/extensions/theme_default/app/views/admin/tax_categories/index.html.erb +4 -2
  182. data/vendor/extensions/theme_default/app/views/admin/taxonomies/_taxon.html.erb +2 -2
  183. data/vendor/extensions/theme_default/app/views/admin/taxons/_form.html.erb +11 -1
  184. data/vendor/extensions/theme_default/app/views/admin/taxons/edit.html.erb +2 -2
  185. data/vendor/extensions/theme_default/app/views/admin/users/_form.html.erb +1 -1
  186. data/vendor/extensions/theme_default/app/views/admin/variants/_form.html.erb +4 -2
  187. data/vendor/extensions/theme_default/app/views/checkouts/_confirm.html.erb +1 -1
  188. data/vendor/extensions/theme_default/app/views/checkouts/_delivery.html.erb +1 -1
  189. data/vendor/extensions/theme_default/app/views/checkouts/_summary.html.erb +6 -6
  190. data/vendor/extensions/theme_default/app/views/checkouts/edit.html.erb +3 -3
  191. data/vendor/extensions/theme_default/app/views/layouts/admin.html.erb +7 -5
  192. data/vendor/extensions/theme_default/app/views/layouts/spree_application.html.erb +8 -4
  193. data/vendor/extensions/theme_default/app/views/orders/_line_item.html.erb +1 -1
  194. data/vendor/extensions/theme_default/app/views/products/index.html.erb +0 -1
  195. data/vendor/extensions/theme_default/app/views/shared/_footer.html.erb +4 -2
  196. data/vendor/extensions/theme_default/app/views/shared/_products.html.erb +3 -1
  197. data/vendor/extensions/theme_default/app/views/shared/_user_form.html.erb +1 -1
  198. data/vendor/extensions/theme_default/public/images/admin/bg/spree_50.png +0 -0
  199. data/vendor/extensions/theme_default/public/images/tile-header.png +0 -0
  200. data/vendor/extensions/theme_default/public/images/tile-slider.png +0 -0
  201. data/vendor/extensions/theme_default/public/javascripts/admin/checkouts/edit.js +50 -0
  202. data/vendor/extensions/theme_default/public/javascripts/taxonomy.js +2 -2
  203. data/vendor/extensions/theme_default/public/stylesheets/admin/admin-tables.css +8 -0
  204. data/vendor/extensions/theme_default/public/stylesheets/admin/admin.css +31 -16
  205. data/vendor/extensions/theme_default/public/stylesheets/screen.css +16 -3
  206. data/vendor/plugins/attribute_fu/{tasks → lib/tasks}/attribute_fu_tasks.rake +0 -0
  207. data/vendor/plugins/enumerable_constants/{tasks → lib/tasks}/enumerable_constants_tasks.rake +0 -0
  208. data/vendor/plugins/find_by_param/lib/find_by_param.rb +9 -5
  209. data/vendor/plugins/find_by_param/{tasks → lib/tasks}/find_by_param_tasks.rake +0 -0
  210. data/vendor/plugins/jrails/{tasks → lib/tasks}/jrails.rake +0 -0
  211. data/vendor/plugins/jrails_auto_complete/{tasks → lib/tasks}/jrails_auto_complete_tasks.rake +0 -0
  212. data/vendor/plugins/mail_queue/{tasks → lib/tasks}/mailer_queue_tasks.rake +0 -0
  213. data/vendor/plugins/open_id_authentication/{tasks → lib/tasks}/open_id_authentication_tasks.rake +0 -0
  214. data/vendor/plugins/resource_controller/lib/resource_controller/helpers/internal.rb +2 -2
  215. data/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +7 -7
  216. data/vendor/plugins/unobtrusive_date_picker/{tasks → lib/tasks}/datepicker_tasks.rake +0 -0
  217. metadata +82 -342
  218. data/app/helpers/admin/adjustments_helper.rb +0 -2
  219. data/app/helpers/admin/checkouts_helper.rb +0 -2
  220. data/app/helpers/admin/line_items_helper.rb +0 -2
  221. data/app/helpers/admin/properties_helper.rb +0 -9
  222. data/app/helpers/admin/prototypes_helper.rb +0 -18
  223. data/app/helpers/admin/return_authorizations_helper.rb +0 -2
  224. data/config/locales/cs-CZ.yml +0 -924
  225. data/config/locales/cs-CZ_rails.yml +0 -202
  226. data/config/locales/da.yml +0 -924
  227. data/config/locales/da_rails.yml +0 -197
  228. data/config/locales/de-CH.yml +0 -924
  229. data/config/locales/de-CH_rails.yml +0 -142
  230. data/config/locales/de.yml +0 -924
  231. data/config/locales/de_rails.yml +0 -140
  232. data/config/locales/en-AU.yml +0 -924
  233. data/config/locales/en-AU_rails.yml +0 -202
  234. data/config/locales/en-GB.yml +0 -924
  235. data/config/locales/en-GB_rails.yml +0 -196
  236. data/config/locales/en-US_rails.yml +0 -200
  237. data/config/locales/es.yml +0 -924
  238. data/config/locales/es_rails.yml +0 -173
  239. data/config/locales/fi.yml +0 -924
  240. data/config/locales/fi_rails.yml +0 -143
  241. data/config/locales/fr-FR.yml +0 -924
  242. data/config/locales/fr-FR_rails.yml +0 -123
  243. data/config/locales/il.yml +0 -924
  244. data/config/locales/il_rails.yml +0 -103
  245. data/config/locales/it.yml +0 -924
  246. data/config/locales/it_rails.yml +0 -146
  247. data/config/locales/jp.yml +0 -924
  248. data/config/locales/jp_rails.yml +0 -135
  249. data/config/locales/mx.yml +0 -924
  250. data/config/locales/mx_rails.yml +0 -181
  251. data/config/locales/nb-NO.yml +0 -924
  252. data/config/locales/nb-NO_rails.yml +0 -105
  253. data/config/locales/nl-BE.yml +0 -924
  254. data/config/locales/nl-BE_rails.yml +0 -155
  255. data/config/locales/nl-NL.yml +0 -924
  256. data/config/locales/nl-NL_rails.yml +0 -172
  257. data/config/locales/pl.yml +0 -924
  258. data/config/locales/pl_rails.yml +0 -118
  259. data/config/locales/pt-BR.yml +0 -924
  260. data/config/locales/pt-BR_rails.yml +0 -138
  261. data/config/locales/pt-PT.yml +0 -924
  262. data/config/locales/pt-PT_rails.yml +0 -133
  263. data/config/locales/ru-RU.yml +0 -924
  264. data/config/locales/ru-RU_rails.yml +0 -206
  265. data/config/locales/th.yml +0 -924
  266. data/config/locales/th_rails.yml +0 -195
  267. data/config/locales/vn.yml +0 -924
  268. data/config/locales/vn_rails.yml +0 -202
  269. data/lib/tasks/translation.rake +0 -102
  270. data/vendor/extensions/localization/README.rdoc +0 -5
  271. data/vendor/extensions/localization/Rakefile +0 -120
  272. data/vendor/extensions/localization/app/controllers/admin/localization_controller.rb +0 -2
  273. data/vendor/extensions/localization/app/helpers/locale_helper.rb +0 -2
  274. data/vendor/extensions/localization/app/helpers/localization_helper.rb +0 -2
  275. data/vendor/extensions/localization/app/views/shared/_language_bar.html.erb +0 -8
  276. data/vendor/extensions/localization/config/routes.rb +0 -4
  277. data/vendor/extensions/localization/lib/localization/user_preferences.rb +0 -9
  278. data/vendor/extensions/localization/lib/tasks/localization_extension_tasks.rake +0 -17
  279. data/vendor/extensions/localization/localization_extension.rb +0 -21
  280. data/vendor/extensions/localization/public/images/flags/ad.png +0 -0
  281. data/vendor/extensions/localization/public/images/flags/ae.png +0 -0
  282. data/vendor/extensions/localization/public/images/flags/af.png +0 -0
  283. data/vendor/extensions/localization/public/images/flags/ag.png +0 -0
  284. data/vendor/extensions/localization/public/images/flags/ai.png +0 -0
  285. data/vendor/extensions/localization/public/images/flags/al.png +0 -0
  286. data/vendor/extensions/localization/public/images/flags/am.png +0 -0
  287. data/vendor/extensions/localization/public/images/flags/an.png +0 -0
  288. data/vendor/extensions/localization/public/images/flags/ao.png +0 -0
  289. data/vendor/extensions/localization/public/images/flags/ar.png +0 -0
  290. data/vendor/extensions/localization/public/images/flags/as.png +0 -0
  291. data/vendor/extensions/localization/public/images/flags/at.png +0 -0
  292. data/vendor/extensions/localization/public/images/flags/au.png +0 -0
  293. data/vendor/extensions/localization/public/images/flags/aw.png +0 -0
  294. data/vendor/extensions/localization/public/images/flags/ax.png +0 -0
  295. data/vendor/extensions/localization/public/images/flags/az.png +0 -0
  296. data/vendor/extensions/localization/public/images/flags/ba.png +0 -0
  297. data/vendor/extensions/localization/public/images/flags/bb.png +0 -0
  298. data/vendor/extensions/localization/public/images/flags/bd.png +0 -0
  299. data/vendor/extensions/localization/public/images/flags/be.png +0 -0
  300. data/vendor/extensions/localization/public/images/flags/bf.png +0 -0
  301. data/vendor/extensions/localization/public/images/flags/bg.png +0 -0
  302. data/vendor/extensions/localization/public/images/flags/bh.png +0 -0
  303. data/vendor/extensions/localization/public/images/flags/bi.png +0 -0
  304. data/vendor/extensions/localization/public/images/flags/bj.png +0 -0
  305. data/vendor/extensions/localization/public/images/flags/bm.png +0 -0
  306. data/vendor/extensions/localization/public/images/flags/bn.png +0 -0
  307. data/vendor/extensions/localization/public/images/flags/bo.png +0 -0
  308. data/vendor/extensions/localization/public/images/flags/br.png +0 -0
  309. data/vendor/extensions/localization/public/images/flags/bs.png +0 -0
  310. data/vendor/extensions/localization/public/images/flags/bt.png +0 -0
  311. data/vendor/extensions/localization/public/images/flags/bv.png +0 -0
  312. data/vendor/extensions/localization/public/images/flags/bw.png +0 -0
  313. data/vendor/extensions/localization/public/images/flags/by.png +0 -0
  314. data/vendor/extensions/localization/public/images/flags/bz.png +0 -0
  315. data/vendor/extensions/localization/public/images/flags/ca.png +0 -0
  316. data/vendor/extensions/localization/public/images/flags/catalonia.png +0 -0
  317. data/vendor/extensions/localization/public/images/flags/cc.png +0 -0
  318. data/vendor/extensions/localization/public/images/flags/cd.png +0 -0
  319. data/vendor/extensions/localization/public/images/flags/cf.png +0 -0
  320. data/vendor/extensions/localization/public/images/flags/cg.png +0 -0
  321. data/vendor/extensions/localization/public/images/flags/ch.png +0 -0
  322. data/vendor/extensions/localization/public/images/flags/ci.png +0 -0
  323. data/vendor/extensions/localization/public/images/flags/ck.png +0 -0
  324. data/vendor/extensions/localization/public/images/flags/cl.png +0 -0
  325. data/vendor/extensions/localization/public/images/flags/cm.png +0 -0
  326. data/vendor/extensions/localization/public/images/flags/cn.png +0 -0
  327. data/vendor/extensions/localization/public/images/flags/co.png +0 -0
  328. data/vendor/extensions/localization/public/images/flags/cr.png +0 -0
  329. data/vendor/extensions/localization/public/images/flags/cs.png +0 -0
  330. data/vendor/extensions/localization/public/images/flags/cu.png +0 -0
  331. data/vendor/extensions/localization/public/images/flags/cv.png +0 -0
  332. data/vendor/extensions/localization/public/images/flags/cx.png +0 -0
  333. data/vendor/extensions/localization/public/images/flags/cy.png +0 -0
  334. data/vendor/extensions/localization/public/images/flags/cz.png +0 -0
  335. data/vendor/extensions/localization/public/images/flags/da.png +0 -0
  336. data/vendor/extensions/localization/public/images/flags/de.png +0 -0
  337. data/vendor/extensions/localization/public/images/flags/de_CH.png +0 -0
  338. data/vendor/extensions/localization/public/images/flags/dj.png +0 -0
  339. data/vendor/extensions/localization/public/images/flags/dm.png +0 -0
  340. data/vendor/extensions/localization/public/images/flags/do.png +0 -0
  341. data/vendor/extensions/localization/public/images/flags/dz.png +0 -0
  342. data/vendor/extensions/localization/public/images/flags/ec.png +0 -0
  343. data/vendor/extensions/localization/public/images/flags/ee.png +0 -0
  344. data/vendor/extensions/localization/public/images/flags/eg.png +0 -0
  345. data/vendor/extensions/localization/public/images/flags/eh.png +0 -0
  346. data/vendor/extensions/localization/public/images/flags/england.png +0 -0
  347. data/vendor/extensions/localization/public/images/flags/er.png +0 -0
  348. data/vendor/extensions/localization/public/images/flags/es.png +0 -0
  349. data/vendor/extensions/localization/public/images/flags/et.png +0 -0
  350. data/vendor/extensions/localization/public/images/flags/europeanunion.png +0 -0
  351. data/vendor/extensions/localization/public/images/flags/fam.png +0 -0
  352. data/vendor/extensions/localization/public/images/flags/fi.png +0 -0
  353. data/vendor/extensions/localization/public/images/flags/fj.png +0 -0
  354. data/vendor/extensions/localization/public/images/flags/fk.png +0 -0
  355. data/vendor/extensions/localization/public/images/flags/fm.png +0 -0
  356. data/vendor/extensions/localization/public/images/flags/fo.png +0 -0
  357. data/vendor/extensions/localization/public/images/flags/fr.png +0 -0
  358. data/vendor/extensions/localization/public/images/flags/ga.png +0 -0
  359. data/vendor/extensions/localization/public/images/flags/gb.png +0 -0
  360. data/vendor/extensions/localization/public/images/flags/gd.png +0 -0
  361. data/vendor/extensions/localization/public/images/flags/ge.png +0 -0
  362. data/vendor/extensions/localization/public/images/flags/gf.png +0 -0
  363. data/vendor/extensions/localization/public/images/flags/gh.png +0 -0
  364. data/vendor/extensions/localization/public/images/flags/gi.png +0 -0
  365. data/vendor/extensions/localization/public/images/flags/gl.png +0 -0
  366. data/vendor/extensions/localization/public/images/flags/gm.png +0 -0
  367. data/vendor/extensions/localization/public/images/flags/gn.png +0 -0
  368. data/vendor/extensions/localization/public/images/flags/gp.png +0 -0
  369. data/vendor/extensions/localization/public/images/flags/gq.png +0 -0
  370. data/vendor/extensions/localization/public/images/flags/gr.png +0 -0
  371. data/vendor/extensions/localization/public/images/flags/gs.png +0 -0
  372. data/vendor/extensions/localization/public/images/flags/gt.png +0 -0
  373. data/vendor/extensions/localization/public/images/flags/gu.png +0 -0
  374. data/vendor/extensions/localization/public/images/flags/gw.png +0 -0
  375. data/vendor/extensions/localization/public/images/flags/gy.png +0 -0
  376. data/vendor/extensions/localization/public/images/flags/hk.png +0 -0
  377. data/vendor/extensions/localization/public/images/flags/hm.png +0 -0
  378. data/vendor/extensions/localization/public/images/flags/hn.png +0 -0
  379. data/vendor/extensions/localization/public/images/flags/hr.png +0 -0
  380. data/vendor/extensions/localization/public/images/flags/ht.png +0 -0
  381. data/vendor/extensions/localization/public/images/flags/hu.png +0 -0
  382. data/vendor/extensions/localization/public/images/flags/id.png +0 -0
  383. data/vendor/extensions/localization/public/images/flags/ie.png +0 -0
  384. data/vendor/extensions/localization/public/images/flags/il.png +0 -0
  385. data/vendor/extensions/localization/public/images/flags/in.png +0 -0
  386. data/vendor/extensions/localization/public/images/flags/io.png +0 -0
  387. data/vendor/extensions/localization/public/images/flags/iq.png +0 -0
  388. data/vendor/extensions/localization/public/images/flags/ir.png +0 -0
  389. data/vendor/extensions/localization/public/images/flags/is.png +0 -0
  390. data/vendor/extensions/localization/public/images/flags/it.png +0 -0
  391. data/vendor/extensions/localization/public/images/flags/jm.png +0 -0
  392. data/vendor/extensions/localization/public/images/flags/jo.png +0 -0
  393. data/vendor/extensions/localization/public/images/flags/jp.png +0 -0
  394. data/vendor/extensions/localization/public/images/flags/ke.png +0 -0
  395. data/vendor/extensions/localization/public/images/flags/kg.png +0 -0
  396. data/vendor/extensions/localization/public/images/flags/kh.png +0 -0
  397. data/vendor/extensions/localization/public/images/flags/ki.png +0 -0
  398. data/vendor/extensions/localization/public/images/flags/km.png +0 -0
  399. data/vendor/extensions/localization/public/images/flags/kn.png +0 -0
  400. data/vendor/extensions/localization/public/images/flags/kp.png +0 -0
  401. data/vendor/extensions/localization/public/images/flags/kr.png +0 -0
  402. data/vendor/extensions/localization/public/images/flags/kw.png +0 -0
  403. data/vendor/extensions/localization/public/images/flags/ky.png +0 -0
  404. data/vendor/extensions/localization/public/images/flags/kz.png +0 -0
  405. data/vendor/extensions/localization/public/images/flags/la.png +0 -0
  406. data/vendor/extensions/localization/public/images/flags/lb.png +0 -0
  407. data/vendor/extensions/localization/public/images/flags/lc.png +0 -0
  408. data/vendor/extensions/localization/public/images/flags/li.png +0 -0
  409. data/vendor/extensions/localization/public/images/flags/lk.png +0 -0
  410. data/vendor/extensions/localization/public/images/flags/lr.png +0 -0
  411. data/vendor/extensions/localization/public/images/flags/ls.png +0 -0
  412. data/vendor/extensions/localization/public/images/flags/lt.png +0 -0
  413. data/vendor/extensions/localization/public/images/flags/lu.png +0 -0
  414. data/vendor/extensions/localization/public/images/flags/lv.png +0 -0
  415. data/vendor/extensions/localization/public/images/flags/ly.png +0 -0
  416. data/vendor/extensions/localization/public/images/flags/ma.png +0 -0
  417. data/vendor/extensions/localization/public/images/flags/mc.png +0 -0
  418. data/vendor/extensions/localization/public/images/flags/md.png +0 -0
  419. data/vendor/extensions/localization/public/images/flags/me.png +0 -0
  420. data/vendor/extensions/localization/public/images/flags/mg.png +0 -0
  421. data/vendor/extensions/localization/public/images/flags/mh.png +0 -0
  422. data/vendor/extensions/localization/public/images/flags/mk.png +0 -0
  423. data/vendor/extensions/localization/public/images/flags/ml.png +0 -0
  424. data/vendor/extensions/localization/public/images/flags/mm.png +0 -0
  425. data/vendor/extensions/localization/public/images/flags/mn.png +0 -0
  426. data/vendor/extensions/localization/public/images/flags/mo.png +0 -0
  427. data/vendor/extensions/localization/public/images/flags/mp.png +0 -0
  428. data/vendor/extensions/localization/public/images/flags/mq.png +0 -0
  429. data/vendor/extensions/localization/public/images/flags/mr.png +0 -0
  430. data/vendor/extensions/localization/public/images/flags/ms.png +0 -0
  431. data/vendor/extensions/localization/public/images/flags/mt.png +0 -0
  432. data/vendor/extensions/localization/public/images/flags/mu.png +0 -0
  433. data/vendor/extensions/localization/public/images/flags/mv.png +0 -0
  434. data/vendor/extensions/localization/public/images/flags/mw.png +0 -0
  435. data/vendor/extensions/localization/public/images/flags/mx.png +0 -0
  436. data/vendor/extensions/localization/public/images/flags/my.png +0 -0
  437. data/vendor/extensions/localization/public/images/flags/mz.png +0 -0
  438. data/vendor/extensions/localization/public/images/flags/na.png +0 -0
  439. data/vendor/extensions/localization/public/images/flags/nc.png +0 -0
  440. data/vendor/extensions/localization/public/images/flags/ne.png +0 -0
  441. data/vendor/extensions/localization/public/images/flags/nf.png +0 -0
  442. data/vendor/extensions/localization/public/images/flags/ng.png +0 -0
  443. data/vendor/extensions/localization/public/images/flags/ni.png +0 -0
  444. data/vendor/extensions/localization/public/images/flags/nl.png +0 -0
  445. data/vendor/extensions/localization/public/images/flags/no.png +0 -0
  446. data/vendor/extensions/localization/public/images/flags/np.png +0 -0
  447. data/vendor/extensions/localization/public/images/flags/nr.png +0 -0
  448. data/vendor/extensions/localization/public/images/flags/nu.png +0 -0
  449. data/vendor/extensions/localization/public/images/flags/nz.png +0 -0
  450. data/vendor/extensions/localization/public/images/flags/om.png +0 -0
  451. data/vendor/extensions/localization/public/images/flags/pa.png +0 -0
  452. data/vendor/extensions/localization/public/images/flags/pe.png +0 -0
  453. data/vendor/extensions/localization/public/images/flags/pf.png +0 -0
  454. data/vendor/extensions/localization/public/images/flags/pg.png +0 -0
  455. data/vendor/extensions/localization/public/images/flags/ph.png +0 -0
  456. data/vendor/extensions/localization/public/images/flags/pk.png +0 -0
  457. data/vendor/extensions/localization/public/images/flags/pl.png +0 -0
  458. data/vendor/extensions/localization/public/images/flags/pm.png +0 -0
  459. data/vendor/extensions/localization/public/images/flags/pn.png +0 -0
  460. data/vendor/extensions/localization/public/images/flags/pr.png +0 -0
  461. data/vendor/extensions/localization/public/images/flags/ps.png +0 -0
  462. data/vendor/extensions/localization/public/images/flags/pt.png +0 -0
  463. data/vendor/extensions/localization/public/images/flags/pw.png +0 -0
  464. data/vendor/extensions/localization/public/images/flags/py.png +0 -0
  465. data/vendor/extensions/localization/public/images/flags/qa.png +0 -0
  466. data/vendor/extensions/localization/public/images/flags/re.png +0 -0
  467. data/vendor/extensions/localization/public/images/flags/ro.png +0 -0
  468. data/vendor/extensions/localization/public/images/flags/rs.png +0 -0
  469. data/vendor/extensions/localization/public/images/flags/ru.png +0 -0
  470. data/vendor/extensions/localization/public/images/flags/rw.png +0 -0
  471. data/vendor/extensions/localization/public/images/flags/sa.png +0 -0
  472. data/vendor/extensions/localization/public/images/flags/sb.png +0 -0
  473. data/vendor/extensions/localization/public/images/flags/sc.png +0 -0
  474. data/vendor/extensions/localization/public/images/flags/scotland.png +0 -0
  475. data/vendor/extensions/localization/public/images/flags/sd.png +0 -0
  476. data/vendor/extensions/localization/public/images/flags/se.png +0 -0
  477. data/vendor/extensions/localization/public/images/flags/sg.png +0 -0
  478. data/vendor/extensions/localization/public/images/flags/sh.png +0 -0
  479. data/vendor/extensions/localization/public/images/flags/si.png +0 -0
  480. data/vendor/extensions/localization/public/images/flags/sj.png +0 -0
  481. data/vendor/extensions/localization/public/images/flags/sk.png +0 -0
  482. data/vendor/extensions/localization/public/images/flags/sl.png +0 -0
  483. data/vendor/extensions/localization/public/images/flags/sm.png +0 -0
  484. data/vendor/extensions/localization/public/images/flags/sn.png +0 -0
  485. data/vendor/extensions/localization/public/images/flags/so.png +0 -0
  486. data/vendor/extensions/localization/public/images/flags/sr.png +0 -0
  487. data/vendor/extensions/localization/public/images/flags/st.png +0 -0
  488. data/vendor/extensions/localization/public/images/flags/sv.png +0 -0
  489. data/vendor/extensions/localization/public/images/flags/sy.png +0 -0
  490. data/vendor/extensions/localization/public/images/flags/sz.png +0 -0
  491. data/vendor/extensions/localization/public/images/flags/tc.png +0 -0
  492. data/vendor/extensions/localization/public/images/flags/td.png +0 -0
  493. data/vendor/extensions/localization/public/images/flags/tf.png +0 -0
  494. data/vendor/extensions/localization/public/images/flags/tg.png +0 -0
  495. data/vendor/extensions/localization/public/images/flags/th.png +0 -0
  496. data/vendor/extensions/localization/public/images/flags/tj.png +0 -0
  497. data/vendor/extensions/localization/public/images/flags/tk.png +0 -0
  498. data/vendor/extensions/localization/public/images/flags/tl.png +0 -0
  499. data/vendor/extensions/localization/public/images/flags/tm.png +0 -0
  500. data/vendor/extensions/localization/public/images/flags/tn.png +0 -0
  501. data/vendor/extensions/localization/public/images/flags/to.png +0 -0
  502. data/vendor/extensions/localization/public/images/flags/tr.png +0 -0
  503. data/vendor/extensions/localization/public/images/flags/tt.png +0 -0
  504. data/vendor/extensions/localization/public/images/flags/tv.png +0 -0
  505. data/vendor/extensions/localization/public/images/flags/tw.png +0 -0
  506. data/vendor/extensions/localization/public/images/flags/tz.png +0 -0
  507. data/vendor/extensions/localization/public/images/flags/ua.png +0 -0
  508. data/vendor/extensions/localization/public/images/flags/ug.png +0 -0
  509. data/vendor/extensions/localization/public/images/flags/um.png +0 -0
  510. data/vendor/extensions/localization/public/images/flags/us.png +0 -0
  511. data/vendor/extensions/localization/public/images/flags/uy.png +0 -0
  512. data/vendor/extensions/localization/public/images/flags/uz.png +0 -0
  513. data/vendor/extensions/localization/public/images/flags/va.png +0 -0
  514. data/vendor/extensions/localization/public/images/flags/vc.png +0 -0
  515. data/vendor/extensions/localization/public/images/flags/ve.png +0 -0
  516. data/vendor/extensions/localization/public/images/flags/vg.png +0 -0
  517. data/vendor/extensions/localization/public/images/flags/vi.png +0 -0
  518. data/vendor/extensions/localization/public/images/flags/vn.png +0 -0
  519. data/vendor/extensions/localization/public/images/flags/vu.png +0 -0
  520. data/vendor/extensions/localization/public/images/flags/wales.png +0 -0
  521. data/vendor/extensions/localization/public/images/flags/wf.png +0 -0
  522. data/vendor/extensions/localization/public/images/flags/ws.png +0 -0
  523. data/vendor/extensions/localization/public/images/flags/ye.png +0 -0
  524. data/vendor/extensions/localization/public/images/flags/yt.png +0 -0
  525. data/vendor/extensions/localization/public/images/flags/za.png +0 -0
  526. data/vendor/extensions/localization/public/images/flags/zm.png +0 -0
  527. data/vendor/extensions/localization/public/images/flags/zw.png +0 -0
  528. data/vendor/extensions/localization/spec/controllers/admin/localization_controller_spec.rb +0 -10
  529. data/vendor/extensions/localization/spec/controllers/locale_controller_spec.rb +0 -35
  530. data/vendor/extensions/localization/spec/helpers/locale_helper_spec.rb +0 -5
  531. data/vendor/extensions/localization/spec/helpers/localization_helper_spec.rb +0 -5
  532. data/vendor/extensions/localization/spec/spec.opts +0 -6
  533. data/vendor/extensions/localization/spec/spec_helper.rb +0 -37
  534. data/vendor/extensions/payment_gateway/app/models/gateway/protx.rb +0 -9
  535. data/vendor/extensions/theme_default/app/views/admin/taxonomies/_manage_products.rhtml +0 -31
  536. data/vendor/extensions/theme_default/app/views/admin/taxonomies/_success.rhtml +0 -1
@@ -46,7 +46,7 @@ class Admin::ProductsControllerTest < ActionController::TestCase
46
46
  context "and format = html" do
47
47
  setup do
48
48
  get :index, "search" => {
49
- "name_contains" => "rails",
49
+ "name_contains" => "Rails",
50
50
  "order" => "ascend_by_name",
51
51
  "deleted_at_not_null" => ""}
52
52
  end
@@ -72,7 +72,7 @@ class Admin::ProductsControllerTest < ActionController::TestCase
72
72
  should "render sibebar search" do
73
73
  assert_select "div#sidebar" do
74
74
  assert_select "form[action='/admin/products']" do
75
- assert_select "input[id='search_name_contains'][value=?]", "rails"
75
+ assert_select "input[id='search_name_contains'][value=?]", "Rails"
76
76
  assert_select "input[id='search_variants_including_master_sku_contains']"
77
77
  assert_select "input[id='search_deleted_at_not_null'][type='checkbox']"
78
78
  assert_select "button[type='submit']", :text => I18n.t('search')
@@ -88,7 +88,7 @@ class Admin::ProductsControllerTest < ActionController::TestCase
88
88
  get :index,
89
89
  "format" => "json",
90
90
  "search" => {
91
- "name_contains" => "rails",
91
+ "name_contains" => "Rails",
92
92
  "order" => "ascend_by_name",
93
93
  "deleted_at_not_null" => ""}
94
94
 
@@ -145,8 +145,7 @@ class Admin::ProductsControllerTest < ActionController::TestCase
145
145
  context "on POST to :create" do
146
146
  setup do
147
147
  UserSession.create(Factory(:admin_user))
148
- @tax_category = Factory.create(:tax_category)
149
- Spree::Config.set :default_tax_category => @tax_category.name
148
+ @tax_category = Factory.create(:tax_category, :is_default => true)
150
149
 
151
150
  assert_difference "Product.count", 1 do
152
151
  post :create, :product => {
@@ -3,6 +3,7 @@ require 'test_helper'
3
3
  class CheckoutTest < ActionController::IntegrationTest
4
4
  context "Checkout" do
5
5
  setup do
6
+ Spree::Config.set(:allow_anonymous_checkout => false)
6
7
  @user = Factory(:admin_user, :password=>'test', :password_confirmation=>'test')
7
8
  @product = Factory(:product)
8
9
  end
@@ -1,111 +1,139 @@
1
- ENV["RAILS_ENV"] = "test"
2
- require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
- require 'test_help'
4
- require "authlogic/test_case"
5
- require File.expand_path(File.dirname(__FILE__) + "/../vendor/extensions/payment_gateway/test/mocks/authorize_net_cim_mock")
6
-
7
- class ActiveSupport::TestCase
8
- self.use_transactional_fixtures = true
9
- self.use_instantiated_fixtures = false
10
- fixtures :all
11
- end
1
+ require 'rubygems'
2
+ require 'spork'
3
+
4
+ Spork.prefork do
5
+ # Loading more in this block will cause your tests to run faster. However,
6
+ # if you change any configuration or code from libraries loaded here, you'll
7
+ # need to restart spork for it take effect.
8
+
9
+ ENV["RAILS_ENV"] = "test"
10
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
11
+ require 'test_help'
12
+ require "authlogic/test_case"
13
+ require File.expand_path(File.dirname(__FILE__) + "/../vendor/extensions/payment_gateway/test/mocks/authorize_net_cim_mock")
14
+
15
+ # BENCHMARK=[true|full] to use test_benchmark
16
+ require 'test_benchmark' if ENV["BENCHMARK"]
17
+
18
+ class ActiveSupport::TestCase
19
+ self.use_transactional_fixtures = true
20
+ self.use_instantiated_fixtures = false
21
+ fixtures :all
22
+ end
12
23
 
13
- I18n.locale = "en-US"
14
- Spree::Config.set(:default_country_id => Country.first.id) if Country.first
24
+ I18n.locale = "en"
25
+ Spree::Config.set(:default_country_id => Country.first.id) if Country.first
15
26
 
16
- class ActionController::TestCase
17
- setup :activate_authlogic
18
- end
27
+ class ActionController::TestCase
28
+ setup :activate_authlogic
29
+ end
19
30
 
20
- ActionController::TestCase.class_eval do
21
- # special overload methods for "global"/nested params
22
- [ :get, :post, :put, :delete ].each do |overloaded_method|
23
- define_method overloaded_method do |*args|
24
- action,params,extras = *args
25
- super action, params || {}, *extras unless @params
26
- super action, @params.merge( params || {} ), *extras if @params
31
+ ActionController::TestCase.class_eval do
32
+ # special overload methods for "global"/nested params
33
+ [ :get, :post, :put, :delete ].each do |overloaded_method|
34
+ define_method overloaded_method do |*args|
35
+ action,params,extras = *args
36
+ super action, params || {}, *extras unless @params
37
+ super action, @params.merge( params || {} ), *extras if @params
38
+ end
27
39
  end
28
40
  end
29
- end
30
-
31
- def setup
32
- super
33
- @params = {}
34
- end
35
41
 
36
- class TestCouponCalc
37
- def self.calculate_discount(checkout)
38
- 0.99
42
+ def setup
43
+ super
44
+ @params = {}
39
45
  end
40
- end
41
46
 
42
- Zone.class_eval do
43
- def self.global
44
- find_by_name("GlobalZone") || Factory(:global_zone)
47
+ class TestCouponCalc
48
+ def self.calculate_discount(checkout)
49
+ 0.99
50
+ end
45
51
  end
46
- end
47
52
 
48
- def create_complete_order
49
- @zone = Zone.global
50
- @order = Factory(:order)
51
- 3.times do
52
- #variant = Factory(:product).variants.first
53
- variant = Factory(:variant)
54
- Factory(:line_item, :variant => variant, :order => @order)
53
+ Zone.class_eval do
54
+ def self.global
55
+ find_by_name("GlobalZone") || Factory(:global_zone)
56
+ end
55
57
  end
56
58
 
57
- @shipping_method = Factory(:shipping_method)
58
- @checkout = @order.checkout
59
+ def create_complete_order
60
+ @zone = Zone.global
61
+ @order = Factory(:order)
62
+ 3.times do
63
+ #variant = Factory(:product).variants.first
64
+ variant = Factory(:variant)
65
+ Factory(:line_item, :variant => variant, :order => @order)
66
+ end
59
67
 
60
- @checkout.ship_address = Factory(:address)
61
- @checkout.shipping_method = @shipping_method
68
+ @shipping_method = Factory(:shipping_method)
69
+ @checkout = @order.checkout
62
70
 
63
- @checkout.payments = [Factory(:payment, :amount => @order.total)]
64
- @checkout.save
71
+ @checkout.ship_address = Factory(:address)
72
+ @checkout.shipping_method = @shipping_method
65
73
 
66
- @shipment = @order.shipment
74
+ @checkout.payments = [Factory(:payment, :amount => @order.total)]
75
+ @checkout.save
67
76
 
68
- @checkout.bill_address = Factory(:address)
77
+ @shipment = @order.shipment
69
78
 
70
- unless @zone.include?(@order.shipment.address)
71
- ZoneMember.create(:zone => Zone.global, :zoneable => @checkout.ship_address.country)
72
- @zone.reload
73
- end
79
+ @checkout.bill_address = Factory(:address)
74
80
 
75
- @checkout.save
76
- @shipment.save
77
- @order.save
78
- @order.reload
79
- @order.save
80
- @order
81
- end
81
+ unless @zone.include?(@order.shipment.address)
82
+ ZoneMember.create(:zone => Zone.global, :zoneable => @checkout.ship_address.country)
83
+ @zone.reload
84
+ end
85
+
86
+ @checkout.save
87
+ @shipment.save
88
+ @order.save
89
+ @order.reload
90
+ @order.save
91
+ @order
92
+ end
82
93
 
83
94
  # Sets up an order with state 'new' with completed checkout and authorized payment
84
- def create_new_order
85
- create_complete_order
86
- @checkout.next!
87
- @checkout.next!
88
- @checkout.creditcard_attributes = Factory.attributes_for(:creditcard)
89
- @checkout.next!
90
- end
91
-
92
- def create_new_order_v2
93
- create_complete_order
94
- @checkout.payments = [Factory(:payment)]
95
- @checkout.state = "complete"
96
- @checkout.save
97
- @order.complete!
98
- end
95
+ def create_new_order
96
+ create_complete_order
97
+ @checkout.next!
98
+ @checkout.next!
99
+ @checkout.creditcard_attributes = Factory.attributes_for(:creditcard)
100
+ @checkout.next!
101
+ end
102
+
103
+ def create_new_order_v2
104
+ create_complete_order
105
+ @checkout.payments = [Factory(:payment)]
106
+ @checkout.state = "complete"
107
+ @checkout.save
108
+ @order.complete!
109
+ end
110
+
111
+ def create_paid_order
112
+ create_complete_order
113
+ @order.payments = [Factory(:payment, :amount => @order.total, :payable => @order)]
114
+ until @order.checkout.complete?
115
+ @order.checkout.next!
116
+ end
117
+ @order.payments.first.finalize!
118
+ @order.reload
119
+ @order.pay!
120
+ end
99
121
 
100
122
  # useful method for functional tests that require an authenticated user
101
- def set_current_user
102
- @user = Factory(:user)
103
- @controller.stub!(:current_user, :return => @user)
104
- end
123
+ def set_current_user
124
+ @user = Factory(:user)
125
+ @controller.stub!(:current_user, :return => @user)
126
+ end
105
127
 
106
- def sort_list_hash(thing)
107
- thing.map(&:sort).sort
128
+ def sort_list_hash(thing)
129
+ thing.map(&:sort).sort
130
+ end
131
+ def assert_equal_list_hash(alpha,beta)
132
+ assert_equal(sort_list_hash(alpha), sort_list_hash(beta))
133
+ end
108
134
  end
109
- def assert_equal_list_hash(alpha,beta)
110
- assert_equal(sort_list_hash(alpha), sort_list_hash(beta))
135
+
136
+ Spork.each_run do
137
+ # This code will be run each time you run your specs.
138
+
111
139
  end
@@ -46,11 +46,12 @@ class CreditcardTest < ActiveSupport::TestCase
46
46
 
47
47
  context "authorization success" do
48
48
  setup do
49
- create_complete_order
50
- @payment = Factory(:payment)
51
- @creditcard = @payment.source
52
- @order.checkout.payments << @payment
49
+ @order = Order.create!
50
+ @order.line_items << Factory(:line_item,:order=>@order,:price=>100, :quantity=>1)
51
+ @order.update_totals
52
+ @payment = Factory(:payment, :payable=>@order, :amount=>100)
53
53
 
54
+ @creditcard = @payment.source
54
55
  @creditcard.authorize(100, @payment)
55
56
  @authorization = @creditcard.authorization(@payment)
56
57
  end
@@ -87,6 +88,23 @@ class CreditcardTest < ActiveSupport::TestCase
87
88
  assert_equal 0.00, @payment.amount.to_f
88
89
  end
89
90
  end
91
+ context "after cancelation and no inventory units in the shipment" do
92
+ setup do
93
+ @order.checkout.shipping_method = Factory(:shipping_method)
94
+ @order.complete!
95
+ @order.cancel!
96
+ @order.shipments.first.inventory_units.clear
97
+ @order.reload
98
+ end
99
+ context "followed by void" do
100
+ setup do
101
+ @creditcard.void(@payment)
102
+ end
103
+ should "update the payments" do
104
+ assert_equal 0.00, @order.payments.total.to_f
105
+ end
106
+ end
107
+ end
90
108
  end
91
109
 
92
110
  context "authorization failure" do
@@ -101,10 +119,13 @@ class CreditcardTest < ActiveSupport::TestCase
101
119
 
102
120
  context "purchase success" do
103
121
  setup do
104
- create_complete_order
105
- @payment = Factory(:payment)
122
+ @order = Order.create!
123
+ @order.line_items << Factory(:line_item,:order=>@order,:price=>100, :quantity=>1)
124
+ @order.checkout.shipping_method = Factory(:shipping_method)
125
+ @order.save!
126
+
127
+ @payment = Factory(:payment, :payable=>@order, :amount=>100)
106
128
  @creditcard = @payment.source
107
- @order.checkout.payments << @payment
108
129
  @creditcard.purchase(100, @payment)
109
130
  end
110
131
  should_change("CreditcardTxn.count", :by => 1) { CreditcardTxn.count }
@@ -0,0 +1,75 @@
1
+ require 'test_helper'
2
+
3
+ class FlexiRateCalculatorTest < ActiveSupport::TestCase
4
+ context "Calculator::FlexiRate" do
5
+ [Coupon, ShippingMethod, ShippingRate].each do |calculable|
6
+ should "be available to #{calculable.to_s}" do
7
+ assert calculable.calculators.include?(Calculator::FlexiRate)
8
+ end
9
+ end
10
+ should "not be available to TaxRate" do
11
+ assert !TaxRate.calculators.include?(Calculator::FlexiRate)
12
+ end
13
+
14
+ context "#compute" do
15
+ setup do
16
+ @calculator = Calculator::FlexiRate.new(:preferred_first_item=>10, :preferred_additional_item=>5, :preferred_max_items=>3)
17
+ @order = Factory(:order)
18
+ end
19
+
20
+ should "compute 0 if no products" do
21
+ assert_equal(0, @calculator.compute(@order.line_items))
22
+ end
23
+
24
+ context "multiple qty=1 products" do
25
+ should "compute correctly for single item" do
26
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
27
+ assert_equal(10, @calculator.compute(@order.line_items))
28
+ end
29
+ should "compute correctly for 1 additional item" do
30
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
31
+ @order.line_items << Factory(:line_item, :price => 2, :quantity => 1)
32
+ assert_equal(15, @calculator.compute(@order.line_items))
33
+ end
34
+ should "compute correctly for 2 additional items (full package)" do
35
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
36
+ @order.line_items << Factory(:line_item, :price => 2, :quantity => 1)
37
+ @order.line_items << Factory(:line_item, :price => 3, :quantity => 1)
38
+ assert_equal(20, @calculator.compute(@order.line_items))
39
+ end
40
+ should "compute correctly for 2 packages (1 full, 1 single item)" do
41
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
42
+ @order.line_items << Factory(:line_item, :price => 2, :quantity => 1)
43
+ @order.line_items << Factory(:line_item, :price => 3, :quantity => 1)
44
+ @order.line_items << Factory(:line_item, :price => 4, :quantity => 1)
45
+ assert_equal(30, @calculator.compute(@order.line_items))
46
+ end
47
+ end
48
+ context "single product" do
49
+ should "compute correctly for qty=1" do
50
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
51
+ assert_equal(10, @calculator.compute(@order.line_items))
52
+ end
53
+ should "compute correctly for qty=2 (1 additional)" do
54
+ @order.line_items << Factory(:line_item, :price => 2, :quantity => 2)
55
+ assert_equal(15, @calculator.compute(@order.line_items))
56
+ end
57
+ should "compute correctly for qty=3 (full package)" do
58
+ @order.line_items << Factory(:line_item, :price => 3, :quantity => 3)
59
+ assert_equal(20, @calculator.compute(@order.line_items))
60
+ end
61
+ should "compute correctly for qty=4 (2 packages)" do
62
+ @order.line_items << Factory(:line_item, :price => 4, :quantity => 4)
63
+ assert_equal(30, @calculator.compute(@order.line_items))
64
+ end
65
+ end
66
+ context "mix qty>1 & qty=1 products" do
67
+ should "compute correctly for qty=3 + qty=1 products (2 packages)" do
68
+ @order.line_items << Factory(:line_item, :price => 3, :quantity => 3)
69
+ @order.line_items << Factory(:line_item, :price => 1, :quantity => 1)
70
+ assert_equal(30, @calculator.compute(@order.line_items))
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
  class ProductsHelperTest < ActionView::TestCase
4
4
  context "format_price" do
5
5
  setup { @price = 100 }
6
- should "format the price using $ when locale is en-US" do
6
+ should "format the price using $ when locale is en" do
7
7
  assert format_price(@price).include?("$100.00")
8
8
  end
9
9
  should "should include the '(inc. VAT)' text when options[:show_vat_text] => true" do
@@ -21,12 +21,12 @@ class ProductsHelperTest < ActionView::TestCase
21
21
  Spree::Config.set(:show_price_inc_vat => false)
22
22
  assert_equal "$100.00", format_price(@price)
23
23
  end
24
- end
25
- end
24
+ end
25
+ end
26
26
  =begin
27
27
  should "format the price using $ when locale is es" do
28
28
  I18n.locale = "es"
29
29
  assert_equal "100,00 €", format_price(@price)
30
- end
30
+ end
31
31
  =end
32
32
  end
@@ -2,17 +2,51 @@ require 'test_helper'
2
2
 
3
3
  class InventoryUnitTest < ActiveSupport::TestCase
4
4
  context InventoryUnit do
5
- setup do
6
- line_item = Factory(:line_item, :quantity => 5)
7
- @order = line_item.order.reload
8
- end
9
5
  context "when sold" do
10
6
  setup do
7
+ line_item = Factory(:line_item, :quantity => 5)
8
+ @order = line_item.order.reload
11
9
  InventoryUnit.sell_units(@order)
12
10
  end
13
11
 
14
12
  should_change("InventoryUnit.count", :by => 5) { InventoryUnit.count }
13
+ context "when sold (again - b/c of unexpected error) " do
14
+ setup do
15
+ @order.state = "in_progress"
16
+ InventoryUnit.sell_units(@order)
17
+ end
18
+ should_not_change("InventoryUnit.count") { InventoryUnit.count }
19
+ end
20
+
21
+ context "and line_item quantity is increased" do
22
+ setup do
23
+ @line_item = @order.line_items[0]
24
+ @line_item.update_attribute(:quantity, @line_item.quantity + 1)
25
+ InventoryUnit.adjust_units(@order)
26
+ end
27
+
28
+ should_change("InventoryUnit.count", :from => 5, :to => 6) { InventoryUnit.count }
29
+ end
15
30
 
31
+ context "and line_item quantity is decreased" do
32
+ setup do
33
+ @line_item = @order.line_items[0]
34
+ @line_item.update_attribute(:quantity, @line_item.quantity - 1)
35
+ InventoryUnit.adjust_units(@order)
36
+ end
37
+
38
+ should_change("InventoryUnit.count", :from => 5, :to => 4) { InventoryUnit.count }
39
+ end
40
+
41
+ context "and a line_item is destroyed" do
42
+ setup do
43
+ @line_item = @order.line_items[0].destroy
44
+ @line_item.destroy
45
+ InventoryUnit.adjust_units(@order.reload)
46
+ end
47
+
48
+ should_change("InventoryUnit.count", :from => 5, :to => 0) { InventoryUnit.count }
49
+ end
16
50
  end
17
- end
51
+ end
18
52
  end