Sha256: 117db347853bc16bfcfff194748360b1732e8ace26d3627ce5aebdb4e398a0d4

Contents?: true

Size: 1.54 KB

Versions: 4

Compression:

Stored size: 1.54 KB

Contents

$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
require 'rubygems'
require 'test/unit'
require 'ezcrypto'
require 'multipass'

class MultiPassTest < Test::Unit::TestCase
  def setup
    @date   = Time.now + 1234
    @input  = {:expires => @date, :email => 'ricky@bobby.com'}
    @output = @input.merge(:expires => @input[:expires].to_s)
    @key    = EzCrypto::Key.with_password('example', 'abc')
    @mp     = MultiPass.new('example', 'abc')
  end

  def test_encodes_multipass
    expected = @key.encrypt64(@output.to_json)
    assert_equal expected, @mp.encode(@input)
  end

  def test_encodes_multipass_with_class_method
    expected = @key.encrypt64(@output.to_json)
    assert_equal expected, MultiPass.encode('example', 'abc', @input)
  end

  def test_decodes_multipass
    encoded = @mp.encode(@input)
    assert_equal @input, @mp.decode(encoded)
  end

  def test_decodes_multipass_with_class_method
    encoded = @mp.encode(@input)
    assert_equal @input, MultiPass.decode('example', 'abc', encoded)
  end

  def test_invalidates_bad_string
    assert_raises MultiPass::DecryptError do
      @mp.decode("abc")
    end
  end

  def test_invalidates_bad_json
    assert_raises MultiPass::JSONError do
      @mp.decode(@key.encrypt64("abc"))
    end
    assert_raises MultiPass::JSONError do
      @mp.decode(@key.encrypt64("{a"))
    end
  end

  def test_invalidates_old_expiration
    encrypted = @key.encrypt64(@input.merge(:expires => (Time.now - 1)).to_json)
    assert_raises MultiPass::ExpiredError do
      @mp.decode(encrypted)
    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
entp-multipass-1.1.3 test/multipass_test.rb
multipass-1.1.4 test/multipass_test.rb
gyordanov-multipass-1.1.3 test/multipass_test.rb
multipass-1.1.3 test/multipass_test.rb