Sha256: 9943e9174d585fcbc079e062002401df742495c0de4026bb27b4e4d19f16ea2b

Contents?: true

Size: 1.97 KB

Versions: 2

Compression:

Stored size: 1.97 KB

Contents

require 'spec_helper'

describe 'yopass' do

  it 'expect give the website' do
    get '/'
    expect(last_response.body).to match(/Share Secrets Securely/)
  end

  it 'expect complain about invalid lifetime' do
    post '/', 'lifetime' => 'foo'
    expect(last_response.body).to match(/Invalid lifetime/)
  end

  it 'expect complain about missing secret' do
    post '/', 'lifetime' => '1h', 'secret' => ''
    expect(last_response.body).to match(/No secret submitted/)
  end

  it 'expect complain about secret being to long' do
    post '/', 'lifetime' => '1h', 'secret' => '0' * 1000000
    expect(last_response.body).to match(/This site is meant to store secrets not novels/)
  end

  it 'expect complain about not being able to connect to memcached' do
    allow_any_instance_of(Memcached).to receive(:set).and_raise(Memcached::ServerIsMarkedDead)
    post '/', 'lifetime' => '1h', 'secret' => '0' * 100
    expect(last_response.body).to match(/Unable to contact memcached/)
  end

  it 'expect store secret' do
    allow_any_instance_of(Memcached).to receive(:set).and_return true
    post '/', 'lifetime' => '1h', 'secret' => '0' * 100
    expect(last_response.body).to match(/http:\/\/127.0.0.1:4567/)
  end

  it 'expect receive secret' do
    allow_any_instance_of(Memcached).to receive(:get).and_return("\xD5\x9E\xF7\xB1\xA0\xEC\xD6\xBD\xCA\x00nW\xAD\xB3\xF4\xDA")
    allow_any_instance_of(Memcached).to receive(:delete).and_return true
    get '/8937c6de9fb7b0ba9b7652b769743b4e/3af71378a'
    expect(last_response.body).to match(/hello world/)
  end

  it 'expect raise Memcached::NotFound' do
    allow_any_instance_of(Memcached).to receive(:get).and_raise(Memcached::NotFound)
    get '/mykey/123'
    expect(last_response.body).to match(/Secret does not exist/)
  end

  it 'expect complain about invalid decryption key' do
    allow_any_instance_of(Memcached).to receive(:get).and_return 'data'
    get '/invalid/123'
    expect(last_response.body).to match(/Invalid decryption key/)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yopass-2.1.1 spec/yopass_spec.rb
yopass-2.1.0 spec/yopass_spec.rb