user_test.rb 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class UserTest < ActiveSupport::TestCase
  4. test 'user' do
  5. tests = [
  6. {
  7. :name => '#1 - simple create',
  8. :create => {
  9. :firstname => 'Firstname',
  10. :lastname => 'Lastname',
  11. :email => 'some@example.com',
  12. :login => 'some@example.com',
  13. :updated_by_id => 1,
  14. :created_by_id => 1,
  15. },
  16. :create_verify => {
  17. :firstname => 'Firstname',
  18. :lastname => 'Lastname',
  19. :image => nil,
  20. :fullname => 'Firstname Lastname',
  21. :email => 'some@example.com',
  22. :login => 'some@example.com',
  23. },
  24. },
  25. {
  26. :name => '#2 - simple create - no lastname',
  27. :create => {
  28. :firstname => 'Firstname Lastname',
  29. :lastname => '',
  30. :email => 'some@example.com',
  31. :login => 'some@example.com',
  32. :updated_by_id => 1,
  33. :created_by_id => 1,
  34. },
  35. :create_verify => {
  36. :firstname => 'Firstname',
  37. :lastname => 'Lastname',
  38. :image => nil,
  39. :email => 'some@example.com',
  40. :login => 'some@example.com',
  41. },
  42. },
  43. {
  44. :name => '#3 - simple create - nil as lastname',
  45. :create => {
  46. :firstname => 'Firstname Lastname',
  47. :lastname => '',
  48. :email => 'some@example.com',
  49. :login => 'some@example.com',
  50. :updated_by_id => 1,
  51. :created_by_id => 1,
  52. },
  53. :create_verify => {
  54. :firstname => 'Firstname',
  55. :lastname => 'Lastname',
  56. :image => nil,
  57. :email => 'some@example.com',
  58. :login => 'some@example.com',
  59. },
  60. },
  61. {
  62. :name => '#4 - simple create - no lastname, firstname with ","',
  63. :create => {
  64. :firstname => 'Lastname, Firstname',
  65. :lastname => '',
  66. :email => 'some@example.com',
  67. :login => 'some@example.com',
  68. :updated_by_id => 1,
  69. :created_by_id => 1,
  70. },
  71. :create_verify => {
  72. :firstname => 'Firstname',
  73. :lastname => 'Lastname',
  74. :email => 'some@example.com',
  75. :login => 'some@example.com',
  76. },
  77. },
  78. {
  79. :name => '#5 - simple create - no lastname/firstname',
  80. :create => {
  81. :firstname => '',
  82. :lastname => '',
  83. :email => 'firstname.lastname@example.com',
  84. :login => 'login-1',
  85. :updated_by_id => 1,
  86. :created_by_id => 1,
  87. },
  88. :create_verify => {
  89. :firstname => 'Firstname',
  90. :lastname => 'Lastname',
  91. :fullname => 'Firstname Lastname',
  92. :email => 'firstname.lastname@example.com',
  93. :login => 'login-1',
  94. },
  95. },
  96. {
  97. :name => '#6 - simple create - no lastname/firstnam',
  98. :create => {
  99. :firstname => '',
  100. :lastname => '',
  101. :email => 'FIRSTNAME.lastname@example.com',
  102. :login => 'login-2',
  103. :updated_by_id => 1,
  104. :created_by_id => 1,
  105. },
  106. :create_verify => {
  107. :firstname => 'Firstname',
  108. :lastname => 'Lastname',
  109. :email => 'firstname.lastname@example.com',
  110. :login => 'login-2',
  111. },
  112. },
  113. {
  114. :name => '#7 - simple create - nill as fristname and lastname',
  115. :create => {
  116. :firstname => '',
  117. :lastname => '',
  118. :email => 'FIRSTNAME.lastname@example.com',
  119. :login => 'login-3',
  120. :updated_by_id => 1,
  121. :created_by_id => 1,
  122. },
  123. :create_verify => {
  124. :firstname => 'Firstname',
  125. :lastname => 'Lastname',
  126. :email => 'firstname.lastname@example.com',
  127. :login => 'login-3',
  128. },
  129. },
  130. {
  131. :name => '#8 - update with avatar check',
  132. :create => {
  133. :firstname => 'Bob',
  134. :lastname => 'Smith',
  135. :email => 'bob.smith@example.com',
  136. :login => 'login-4',
  137. :updated_by_id => 1,
  138. :created_by_id => 1,
  139. },
  140. :create_verify => {
  141. :firstname => 'Bob',
  142. :lastname => 'Smith',
  143. :image => nil,
  144. :email => 'bob.smith@example.com',
  145. :login => 'login-4',
  146. },
  147. :update => {
  148. :email => 'unit-test1@znuny.com',
  149. },
  150. :update_verify => {
  151. :firstname => 'Bob',
  152. :lastname => 'Smith',
  153. :image => 'a6f7f7f9dac25b2c023d403ef998801c',
  154. :image_md5 => 'a6f7f7f9dac25b2c023d403ef998801c',
  155. :email => 'unit-test1@znuny.com',
  156. :login => 'login-4',
  157. }
  158. },
  159. {
  160. :name => '#9 - update create with avatar check',
  161. :create => {
  162. :firstname => 'Bob',
  163. :lastname => 'Smith',
  164. :email => 'unit-test2@znuny.com',
  165. :login => 'login-5',
  166. :updated_by_id => 1,
  167. :created_by_id => 1,
  168. },
  169. :create_verify => {
  170. :firstname => 'Bob',
  171. :lastname => 'Smith',
  172. :image => '8765a1ac93f54405d8dfdd856c48c31f',
  173. :image_md5 => '8765a1ac93f54405d8dfdd856c48c31f',
  174. :email => 'unit-test2@znuny.com',
  175. :login => 'login-5',
  176. },
  177. :update => {
  178. :email => 'unit-test1@znuny.com',
  179. },
  180. :update_verify => {
  181. :firstname => 'Bob',
  182. :lastname => 'Smith',
  183. :image => 'a6f7f7f9dac25b2c023d403ef998801c',
  184. :image_md5 => 'a6f7f7f9dac25b2c023d403ef998801c',
  185. :email => 'unit-test1@znuny.com',
  186. :login => 'login-5',
  187. }
  188. },
  189. {
  190. :name => '#10 - update create with login/email check',
  191. :create => {
  192. :firstname => '',
  193. :lastname => '',
  194. :email => 'caoyaoewfzfw@21222cn.com',
  195. :updated_by_id => 1,
  196. :created_by_id => 1,
  197. },
  198. :create_verify => {
  199. :firstname => '',
  200. :lastname => '',
  201. :fullname => 'caoyaoewfzfw@21222cn.com',
  202. :email => 'caoyaoewfzfw@21222cn.com',
  203. :login => 'caoyaoewfzfw@21222cn.com',
  204. },
  205. :update => {
  206. :email => 'caoyaoewfzfw@212224cn.com',
  207. },
  208. :update_verify => {
  209. :firstname => '',
  210. :lastname => '',
  211. :email => 'caoyaoewfzfw@212224cn.com',
  212. :fullname => 'caoyaoewfzfw@212224cn.com',
  213. :login => 'caoyaoewfzfw@212224cn.com',
  214. }
  215. },
  216. {
  217. :name => '#11 - update create with login/email check',
  218. :create => {
  219. :firstname => 'Firstname',
  220. :lastname => 'Lastname',
  221. :email => 'some_tEst11@example.com',
  222. :updated_by_id => 1,
  223. :created_by_id => 1,
  224. },
  225. :create_verify => {
  226. :firstname => 'Firstname',
  227. :lastname => 'Lastname',
  228. :fullname => 'Firstname Lastname',
  229. :email => 'some_test11@example.com',
  230. },
  231. :update => {
  232. :email => 'some_Test11-1@example.com',
  233. },
  234. :update_verify => {
  235. :firstname => 'Firstname',
  236. :lastname => 'Lastname',
  237. :email => 'some_test11-1@example.com',
  238. :fullname => 'Firstname Lastname',
  239. :login => 'some_test11-1@example.com',
  240. }
  241. },
  242. ]
  243. tests.each { |test|
  244. # check if user exists
  245. user = User.where( :login => test[:create][:login] ).first
  246. if user
  247. user.destroy
  248. end
  249. user = User.create( test[:create] )
  250. test[:create_verify].each { |key, value|
  251. next if key == :image_md5
  252. if user.respond_to?( key )
  253. assert_equal( value, user.send(key), "create check #{ key } in (#{ test[:name] })" )
  254. else
  255. assert_equal( value, user[key], "create check #{ key } in (#{ test[:name] })" )
  256. end
  257. }
  258. if test[:create_verify][:image_md5]
  259. file = Avatar.get_by_hash( user.image )
  260. file_md5 = Digest::MD5.hexdigest( file.content )
  261. assert_equal( test[:create_verify][:image_md5], file_md5, "create avatar md5 check in (#{ test[:name] })" )
  262. end
  263. if test[:update]
  264. user.update_attributes( test[:update] )
  265. test[:update_verify].each { |key, value|
  266. next if key == :image_md5
  267. if user.respond_to?( key )
  268. assert_equal( value, user.send(key), "update check #{ key } in (#{ test[:name] })" )
  269. else
  270. assert_equal( value, user[key], "update check #{ key } in (#{ test[:name] })" )
  271. end
  272. }
  273. if test[:update_verify][:image_md5]
  274. file = Avatar.get_by_hash( user.image )
  275. file_md5 = Digest::MD5.hexdigest( file.content )
  276. assert_equal( test[:update_verify][:image_md5], file_md5, "update avatar md5 check in (#{ test[:name] })" )
  277. end
  278. end
  279. user.destroy
  280. }
  281. end
  282. end