From 726c035b7b7fac636982ac6e4c28e199d4c8cc8a Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 11 Oct 2017 15:46:48 +0200 Subject: style: more rubocop fixes --- test/integration/dispatcher_test.rb | 17 +++++++++----- test/integration/nickserver_test.rb | 44 ++++++++++++++++++++----------------- 2 files changed, 35 insertions(+), 26 deletions(-) (limited to 'test/integration') diff --git a/test/integration/dispatcher_test.rb b/test/integration/dispatcher_test.rb index 58aa972..1973e84 100644 --- a/test/integration/dispatcher_test.rb +++ b/test/integration/dispatcher_test.rb @@ -29,8 +29,9 @@ class Nickserver::DispatcherTest < Minitest::Test end def test_fingerprint_is_not_hex - handle fingerprint: ['X36E738D69173C13Z709E44F2F455E2824D18DDX'] - assert_response error('Fingerprint invalid: X36E738D69173C13Z709E44F2F455E2824D18DDX') + fingerprint = 'X36E738D69173C13Z709E44F2F455E2824D18DDX' + handle fingerprint: [fingerprint] + assert_response error("Fingerprint invalid: #{fingerprint}") end def test_missing_domain @@ -41,28 +42,32 @@ class Nickserver::DispatcherTest < Minitest::Test end def test_email_via_hkp - handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } + handle address: ['valid@email.tld'], + headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_not_available hkp_source.expect :query, success, [Nickserver::EmailAddress] assert_response success end def test_email_via_hkp_nicknym_unreachable - handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } + handle address: ['valid@email.tld'], + headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_raises hkp_source.expect :query, success, [Nickserver::EmailAddress] assert_response success end def test_email_not_found_hkp_nicknym_unreachable - handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } + handle address: ['valid@email.tld'], + headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_raises hkp_source.expect :query, nil, [Nickserver::EmailAddress] assert_response http_connection_error end def test_email_via_nicknym - handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } + handle address: ['valid@email.tld'], + headers: { 'Host' => 'http://nickserver.me' } nicknym_source.expect :available_for?, true, [String] nicknym_source.expect :query, success, [Nickserver::EmailAddress] assert_response success diff --git a/test/integration/nickserver_test.rb b/test/integration/nickserver_test.rb index fb9b952..832a68c 100644 --- a/test/integration/nickserver_test.rb +++ b/test/integration/nickserver_test.rb @@ -19,13 +19,14 @@ require 'json' # (2) We actually start the Reelserver on 127.0.0.1 and talk to it via http. # In order to run the Reelserver properly this is a celluloid test. # -# (3) the "Host" header for requests to nickserver must be set (or Config.domain set) +# (3) the "Host" header for requests to nickserver must be set +# (or Config.domain set) # class NickserverTest < CelluloidTest include HttpStubHelper - def test_GET_key_by_email_address_served_via_SKS + def test_key_by_email_address_from_sks uid = 'cloudadmin@leap.se' key_id = 'E818C478D3141282F7590D29D041EB11B1647490' stub_nicknym_available_response 'leap.se', status: 404 @@ -34,51 +35,43 @@ class NickserverTest < CelluloidTest start do params = { query: { 'address' => uid } } - get(params) do |response| - assert_equal file_content(:leap_public_key), JSON.parse(response.to_s)['openpgp'] - end + assert_responds_to params, key: :leap_public_key end end - def test_GET_key_by_fingerprint_served_via_SKS + def test_key_by_fingerprint_from_sks fingerprint = 'E818C478D3141282F7590D29D041EB11B1647490' stub_sks_get_reponse(fingerprint, body: file_content(:leap_public_key)) start do params = { query: { 'fingerprint' => fingerprint } } - get(params) do |response| - assert_equal file_content(:leap_public_key), JSON.parse(response.to_s)['openpgp'] - end + assert_responds_to params, key: :leap_public_key end end - def test_GET_served_via_couch_not_found + def test_couch_user_not_found domain = 'example.org' uid = 'bananas@' + domain stub_couch_response(uid, status: 404) do start do params = { query: { 'address' => uid }, head: { 'Host' => domain } } - get(params) do |response| - assert_equal 404, response.code - end + assert_responds_to params, code: 404 end end end - def test_GET_served_via_couch_empty_results + def test_couch_empty_results domain = 'example.org' uid = 'stompy@' + domain stub_couch_response(uid, body: file_content(:empty_couchdb_result)) do start do params = { query: { 'address' => uid }, head: { host: domain } } - get(params) do |response| - assert_equal 404, response.code - end + assert_responds_to params, code: 404 end end end - def test_GET_served_via_couch_success + def test_couch_success_response domain = 'example.org' uid = 'blue@' + domain stub_couch_response(uid, body: file_content(:blue_couchdb_result)) do @@ -91,7 +84,7 @@ class NickserverTest < CelluloidTest end end - def test_GET_empty + def test_empty_get start do get({}) do |response| assert_equal "404 Not Found\n", response.to_s @@ -113,6 +106,16 @@ class NickserverTest < CelluloidTest server.terminate if server && server.alive? end + def assert_responds_to(params, key: nil, code: nil) + get(params) do |response| + assert_equal code, response.code if code + if key + assert_equal file_content(key), + JSON.parse(response.to_s)['openpgp'] + end + end + end + # # http GET requests to nickserver # @@ -130,7 +133,8 @@ class NickserverTest < CelluloidTest # # http request to nickserver # - # this works because http requests to 127.0.0.1 are not stubbed, but requests to other domains are. + # this works because http requests to 127.0.0.1 are not stubbed, but + # requests to other domains are. # def request(method, options = {}) response = HTTP -- cgit v1.2.3 From ec996134a1f23ee36aff9d3ad2c800af71623207 Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 3 Nov 2017 14:33:51 +0100 Subject: fix: no expiration date means not outdated We were using Time.at(expirationdate) even if it was nil which led to using the Time.at(0). Instead an unset expirationdate is meant to not expire the key at all. Our tests did not catch this because the assertions were in blocks that did not get run at all. (at least in the HKP integration test). --- test/integration/hkp_test.rb | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'test/integration') diff --git a/test/integration/hkp_test.rb b/test/integration/hkp_test.rb index c12588c..f6675e9 100644 --- a/test/integration/hkp_test.rb +++ b/test/integration/hkp_test.rb @@ -33,7 +33,7 @@ class HkpTest < Minitest::Test stubbing_http do uid = 'leaping_lemur@leap.se' stub_sks_vindex_reponse(uid, status: 404) - assert_response_status_for_uid uid, 404 + assert_nil response_for_uid(uid) end end @@ -41,7 +41,7 @@ class HkpTest < Minitest::Test stubbing_http do uid = 'leaping_lemur@leap.se' stub_sks_vindex_reponse(uid, status: 200) - assert_response_status_for_uid uid, 404 + assert_nil response_for_uid(uid) end end @@ -51,10 +51,9 @@ class HkpTest < Minitest::Test stubbing_http do stub_sks_vindex_reponse(uid, body: file_content(:leap_vindex_result)) stub_sks_get_reponse(key_id, body: file_content(:leap_public_key)) - assert_response_for_uid(uid) do |response| - content = JSON.parse response.content - assert_equal file_content(:leap_public_key), content['openpgp'] - end + response = response_for_uid(uid) + content = JSON.parse response.content + assert_equal file_content(:leap_public_key), content['openpgp'] end end @@ -65,7 +64,7 @@ class HkpTest < Minitest::Test stubbing_http do stub_sks_vindex_reponse(uid, body: file_content(:leap_vindex_result)) stub_sks_get_reponse(key_id, status: 404) - assert_response_status_for_uid uid, 404 + assert_equal 404, response_for_uid(uid).status end end @@ -74,29 +73,20 @@ class HkpTest < Minitest::Test stubbing_http do stub_sks_vindex_reponse(uid, body: file_content(:short_key_vindex_result)) - assert_response_status_for_uid uid, 500 + assert_equal 500, response_for_uid(uid).status end end protected - def assert_response_status_for_uid(uid, status) - assert_response_for_uid(uid) do |response| - assert_equal status, response.status - end - end - - def assert_response_for_uid(uid) - Nickserver::Hkp::Source.new(adapter).query uid do |response| - yield response - end + def response_for_uid(uid) + Nickserver::Hkp::Source.new(adapter).query uid end def assert_key_info_for_uid(uid) - Nickserver::Hkp::Source.new(adapter).search uid do |status, keys| - assert_equal 200, status - yield keys - end + status, keys = Nickserver::Hkp::Source.new(adapter).search uid + assert_equal 200, status + yield keys end def fetch_key_info(body_source, uid, &block) -- cgit v1.2.3