module SharedMessageMetadataTests

Public Instance Methods

null_serializing?() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 9
def null_serializing?
  false
end
teardown() click to toggle source
Calls superclass method
# File activesupport/test/metadata/shared_metadata_tests.rb, line 4
def teardown
  travel_back
  super
end
test_encryption_and_decryption_with_different_purposes_returns_nil() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 28
def test_encryption_and_decryption_with_different_purposes_returns_nil
  assert_nil parse(generate(data, purpose: "payment"), purpose: "sign up")
  assert_nil parse(generate(data, purpose: "payment"))
  assert_nil parse(generate(data), purpose: "sign up")
end
test_encryption_and_decryption_with_same_purpose() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 13
def test_encryption_and_decryption_with_same_purpose
  assert_equal data, parse(generate(data, purpose: "checkout"), purpose: "checkout")
  assert_equal data, parse(generate(data))

  string_message = "address: #23, main street"
  assert_equal string_message, parse(generate(string_message, purpose: "shipping"), purpose: "shipping")
end
test_favor_expires_at_over_expires_in() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 72
def test_favor_expires_at_over_expires_in
  payment_related_message = generate(data, purpose: "payment", expires_at: 2.year.from_now, expires_in: 1.second)

  travel 1.year
  assert_equal data, parse(payment_related_message, purpose: :payment)

  travel 1.year + 1.day
  assert_nil parse(payment_related_message, purpose: "payment")
end
test_passing_expires_at_sets_expiration_date() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 40
def test_passing_expires_at_sets_expiration_date
  encrypted_message = generate(data, expires_at: 1.hour.from_now)

  travel 59.minutes
  assert_equal data, parse(encrypted_message)

  travel 2.minutes
  assert_nil parse(encrypted_message)
end
test_passing_expires_in_less_than_a_second_is_not_expired() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 60
def test_passing_expires_in_less_than_a_second_is_not_expired
  freeze_time do
    encrypted_message = generate(data, expires_in: 1.second)

    travel 0.5.seconds
    assert_equal data, parse(encrypted_message)

    travel 1.second
    assert_nil parse(encrypted_message)
  end
end
test_purpose_using_symbols() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 34
def test_purpose_using_symbols
  assert_equal data, parse(generate(data, purpose: :checkout), purpose: :checkout)
  assert_equal data, parse(generate(data, purpose: :checkout), purpose: "checkout")
  assert_equal data, parse(generate(data, purpose: "checkout"), purpose: :checkout)
end
test_set_relative_expiration_date_by_passing_expires_in() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 50
def test_set_relative_expiration_date_by_passing_expires_in
  encrypted_message = generate(data, expires_in: 2.hours)

  travel 1.hour
  assert_equal data, parse(encrypted_message)

  travel 1.hour + 1.second
  assert_nil parse(encrypted_message)
end
test_skip_expires_at_and_expires_in_to_disable_expiration_check() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 82
def test_skip_expires_at_and_expires_in_to_disable_expiration_check
  payment_related_message = generate(data, purpose: "payment")

  travel 100.years
  assert_equal data, parse(payment_related_message, purpose: "payment")
end
test_verifies_array_when_purpose_matches() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 21
def test_verifies_array_when_purpose_matches
  unless null_serializing?
    data = [ "credit_card_no: 5012-6748-9087-5678", { "card_holder" => "Donald", "issued_on" => Time.local(2017) }, 12345 ]
    assert_equal data, parse(generate(data, purpose: :registration), purpose: :registration)
  end
end

Private Instance Methods

data() click to toggle source
# File activesupport/test/metadata/shared_metadata_tests.rb, line 90
def data
  { "credit_card_no" => "5012-6784-9087-5678", "card_holder" => { "name" => "Donald" } }
end