Sha256: 150071d224bacb9dd8209a622588c892e251962f5413de76e971d6c92b5c93c2

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

require 'spec_helper'

describe RackSessionAccess do
  subject { described_class }

  it 'should have configured default path' do
    expect(subject.path).to eq('/rack_session')
  end

  it 'should have configured default edit_path' do
    expect(subject.edit_path).to eq('/rack_session/edit')
  end

  describe '.encode' do
    it 'should encode ruby hash to string' do
      result = subject.encode( { 'a' => 'b' })
      expect(result).to be_kind_of(String)
    end
  end

  describe '.decode' do
    it 'should decode marshalized and base64 encoded string' do
      # Array(Marshal.dump({ :user_id => 100 })).pack("m")
      # => "BAh7BjoMdXNlcl9pZGlp\n"
      expect(subject.decode("BAh7BjoMdXNlcl9pZGlp\n")).to eq(user_id: 100)
    end
  end

  it 'should encode and decode value' do
    source = { 'klass' => Class, :id => 100, '1' => 2 }
    data = subject.encode(source)
    result = subject.decode(data)
    expect(result).to eq(source)
  end

  it 'should encode and decode values with line brake characters' do
    source = { 'line' => "one\ntwo" }
    data = subject.encode(source)
    result = subject.decode(data)
    expect(result).to eq(source)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack_session_access-0.2.0 spec/rack_session_access_spec.rb