token_test.rb 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. # encoding: utf-8
  2. # rubocop:disable Next
  3. require 'test_helper'
  4. class TokenTest < ActiveSupport::TestCase
  5. test 'token' do
  6. tests = [
  7. # test 1
  8. {
  9. test_name: 'invalid token',
  10. action: 'PasswordReset',
  11. name: '1NV4L1D',
  12. result: nil,
  13. },
  14. # test 2
  15. {
  16. test_name: 'fresh token',
  17. create: {
  18. user_id: 2,
  19. action: 'PasswordReset',
  20. },
  21. action: 'PasswordReset',
  22. result: true,
  23. verify: {
  24. firstname: 'Nicole',
  25. lastname: 'Braun',
  26. email: 'nicole.braun@zammad.org',
  27. }
  28. },
  29. # test 3
  30. {
  31. test_name: 'two days but not persistent',
  32. create: {
  33. user_id: 2,
  34. action: 'PasswordReset',
  35. created_at: 2.days.ago,
  36. },
  37. action: 'PasswordReset',
  38. result: nil,
  39. },
  40. {
  41. test_name: 'two days but persistent',
  42. create: {
  43. user_id: 2,
  44. action: 'iCal',
  45. created_at: 2.days.ago,
  46. persistent: true,
  47. },
  48. action: 'iCal',
  49. result: true,
  50. verify: {
  51. firstname: 'Nicole',
  52. lastname: 'Braun',
  53. email: 'nicole.braun@zammad.org',
  54. }
  55. },
  56. ]
  57. tests.each { |test|
  58. if test[:create]
  59. #puts test[:test_name] + ': creating token '+ test[:create].inspect
  60. token = Token.create(
  61. action: test[:create][:action],
  62. user_id: test[:create][:user_id],
  63. created_at: test[:create][:created_at].to_s,
  64. persistent: test[:create][:persistent]
  65. )
  66. #puts test[:test_name] + ': created token ' + token.inspect
  67. test[:name] = token.name
  68. end
  69. user = Token.check(
  70. action: test[:action],
  71. name: test[:name]
  72. )
  73. if test[:result] == true
  74. if !user
  75. assert( false, test[:test_name] + ': token verification failed' )
  76. else
  77. test[:verify].each {|key, value|
  78. assert_equal( user[key], value, 'verify' )
  79. }
  80. end
  81. else
  82. assert_equal( test[:result], user, test[:test_name] + ': failed or not existing' )
  83. end
  84. if test[:name]
  85. #puts test[:test_name] + ': deleting token '+ test[:name]
  86. token = Token.where( name: test[:name] ).first
  87. if token
  88. token.destroy
  89. end
  90. end
  91. }
  92. end
  93. end