From 5ab2095a169a867b1158a77181dd447b2bbf2118 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 5 Feb 2018 11:25:33 +0100 Subject: feature: enamble wkd lookup fixes #1 --- test/functional/sample_test.rb | 4 ++++ test/integration/dispatcher_test.rb | 27 +++++++++++++++++---------- test/integration/nickserver_test.rb | 1 + test/support/http_stub_helper.rb | 7 +++++++ 4 files changed, 29 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/test/functional/sample_test.rb b/test/functional/sample_test.rb index 1bfe8b5..4a0d1ed 100644 --- a/test/functional/sample_test.rb +++ b/test/functional/sample_test.rb @@ -23,6 +23,10 @@ class SampleTest < FunctionalTest assert_lookup_status 200, 'test@mail.bitmask.net' end + def test_wkd_success + assert_lookup_status 200, 'info@g10code.com' + end + # Regression Tests # #3 handle missing A records diff --git a/test/integration/dispatcher_test.rb b/test/integration/dispatcher_test.rb index 1973e84..0fb395a 100644 --- a/test/integration/dispatcher_test.rb +++ b/test/integration/dispatcher_test.rb @@ -37,30 +37,31 @@ class Nickserver::DispatcherTest < Minitest::Test def test_missing_domain handle address: ['valid@email.tld'] stub_nicknym_not_available - hkp_source.expect :query, success, [Nickserver::EmailAddress] + wkd_source.expect :query, success, [Nickserver::EmailAddress] assert_response success end - def test_email_via_hkp + def test_email_via_wkd handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_not_available - hkp_source.expect :query, success, [Nickserver::EmailAddress] + wkd_source.expect :query, success, [Nickserver::EmailAddress] assert_response success end - def test_email_via_hkp_nicknym_unreachable + def test_email_via_wkd_nicknym_unreachable handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_raises - hkp_source.expect :query, success, [Nickserver::EmailAddress] + wkd_source.expect :query, success, [Nickserver::EmailAddress] assert_response success end - def test_email_not_found_hkp_nicknym_unreachable + def test_email_not_found_wkd_nicknym_unreachable handle address: ['valid@email.tld'], headers: { 'Host' => 'http://nickserver.me' } stub_nicknym_raises + wkd_source.expect :query, nil, [Nickserver::EmailAddress] hkp_source.expect :query, nil, [Nickserver::EmailAddress] assert_response http_connection_error end @@ -90,14 +91,20 @@ class Nickserver::DispatcherTest < Minitest::Test def assert_response(response) Nickserver::Nicknym::Source.stub :new, nicknym_source do - Nickserver::Hkp::Source.stub :new, hkp_source do - responder.expect :respond, nil, [response.status, response.content] - dispatcher.respond_to @params, @headers - responder.verify + Nickserver::Wkd::Source.stub :new, wkd_source do + Nickserver::Hkp::Source.stub :new, hkp_source do + responder.expect :respond, nil, [response.status, response.content] + dispatcher.respond_to @params, @headers + responder.verify + end end end end + def wkd_source + @wkd_source ||= Minitest::Mock.new + end + def hkp_source @hkp_source ||= Minitest::Mock.new end diff --git a/test/integration/nickserver_test.rb b/test/integration/nickserver_test.rb index 832a68c..29a3561 100644 --- a/test/integration/nickserver_test.rb +++ b/test/integration/nickserver_test.rb @@ -30,6 +30,7 @@ class NickserverTest < CelluloidTest uid = 'cloudadmin@leap.se' key_id = 'E818C478D3141282F7590D29D041EB11B1647490' stub_nicknym_available_response 'leap.se', status: 404 + stub_wkd_response uid, status: 404 stub_sks_vindex_reponse(uid, body: file_content(:leap_vindex_result)) stub_sks_get_reponse(key_id, body: file_content(:leap_public_key)) diff --git a/test/support/http_stub_helper.rb b/test/support/http_stub_helper.rb index b0ec069..1710b23 100644 --- a/test/support/http_stub_helper.rb +++ b/test/support/http_stub_helper.rb @@ -1,4 +1,5 @@ require 'nickserver/reel_server' +require 'nickserver/email_address' module HttpStubHelper protected @@ -48,6 +49,12 @@ module HttpStubHelper stub_http_get(/#{Regexp.escape(config.couch_url)}.*#{query}/, response) end + def stub_wkd_response(uid, response = {}) + email = Nickserver::EmailAddress.new(uid) + url = Nickserver::Wkd::Url.new(email) + stub_http_get url, response, Hash + end + def stub_http_get(url, response, options = nil) response = { status: 200, body: '' }.merge(response || {}) adapter.expect :get, [response[:status], response[:body]], -- cgit v1.2.3