spec/fernet_spec.rb in fernet-1.4 vs spec/fernet_spec.rb in fernet-1.5

- old
+ new

@@ -14,65 +14,82 @@ it 'can verify tokens it generates' do token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(secret, token) do |verifier| - verifier.data['email'] == 'harold@heroku.com' - end.should be_true + expect( + Fernet.verify(secret, token) do |verifier| + verifier.data['email'] == 'harold@heroku.com' + end + ).to be_true end it 'fails with a bad secret' do token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(bad_secret, token) do |verifier| - verifier.data['email'] == 'harold@heroku.com' - end.should be_false + expect( + Fernet.verify(bad_secret, token) do |verifier| + verifier.data['email'] == 'harold@heroku.com' + end + ).to be_false end it 'fails with a bad custom verification' do token = Fernet.generate(secret) do |generator| - generator.data = token_data + generator.data = { :email => 'harold@heroku.com' } end - Fernet.verify(bad_secret, token) do |verifier| - verifier.data['email'] == 'harold@gmail.com' - end.should be_false + expect( + Fernet.verify(secret, token) do |verifier| + verifier.data['email'] == 'lol@heroku.com' + end + ).to be_false end it 'fails if the token is too old' do token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(bad_secret, token) do |verifier| - verifier.ttl = 0 - end.should be_false + expect( + Fernet.verify(secret, token) do |verifier| + verifier.ttl = 1 + + def verifier.now + now = DateTime.now + DateTime.new(now.year, now.month, now.day, now.hour, + now.min, now.sec + 2, now.offset) + end + true + end + ).to be_false end it 'verifies without a custom verification' do token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(secret, token).should be_true + expect(Fernet.verify(secret, token)).to be_true end it 'can ignore TTL enforcement' do token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(secret, token) do |verifier| - def verifier.now - Time.now + 99999999999 + expect( + Fernet.verify(secret, token) do |verifier| + def verifier.now + Time.now + 99999999999 + end + verifier.enforce_ttl = false + true end - verifier.enforce_ttl = false - true - end.should be_true + ).to be_true end it 'can ignore TTL enforcement via global config' do Fernet::Configuration.run do |config| config.enforce_ttl = false @@ -80,69 +97,68 @@ token = Fernet.generate(secret) do |generator| generator.data = token_data end - Fernet.verify(secret, token) do |verifier| - def verifier.now - Time.now + 99999999999 + expect( + Fernet.verify(secret, token) do |verifier| + def verifier.now + Time.now + 99999999999 + end + true end - true - end.should be_true + ).to be_true end it 'generates without custom data' do token = Fernet.generate(secret) - Fernet.verify(secret, token).should be_true + expect(Fernet.verify(secret, token)).to be_true end it 'can encrypt the payload' do token = Fernet.generate(secret, true) do |generator| generator.data['password'] = 'password1' end - payload = Base64.decode64(token) - payload.should_not match /password1/ + expect(Base64.decode64(token)).not_to match /password1/ Fernet.verify(secret, token) do |verifier| - verifier.data['password'].should == 'password1' + expect(verifier.data['password']).to eq('password1') end end it 'does not encrypt when asked nicely' do token = Fernet.generate(secret, false) do |generator| generator.data['password'] = 'password1' end - payload = Base64.decode64(token) - payload.should match /password1/ + expect(Base64.decode64(token)).to match /password1/ Fernet.verify(secret, token, false) do |verifier| - verifier.data['password'].should == 'password1' + expect(verifier.data['password']).to eq('password1') end end it 'can disable encryption via global configuration' do Fernet::Configuration.run { |c| c.encrypt = false } token = Fernet.generate(secret) do |generator| generator.data['password'] = 'password1' end - payload = Base64.decode64(token) - payload.should match /password1/ + expect(Base64.decode64(token)).to match /password1/ Fernet.verify(secret, token) do |verifier| - verifier.data['password'].should == 'password1' + expect(verifier.data['password']).to eq('password1') end end it 'returns the unencrypted message upon verify' do token = Fernet.generate(secret) do |generator| generator.data['password'] = 'password1' end verifier = Fernet.verifier(secret, token) - verifier.should be_valid - verifier.data['password'].should == 'password1' + expect(verifier.valid?).to be_true + expect(verifier.data['password']).to eq('password1') end end