summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/bin_test.rb30
-rw-r--r--test/integration/dispatcher_test.rb9
-rw-r--r--test/integration/hkp_test.rb11
-rw-r--r--test/integration/nicknym_test.rb11
-rw-r--r--test/integration/nickserver_test.rb16
-rw-r--r--test/remote/celluloid_http_test.rb15
-rw-r--r--test/remote/hkp_source_test.rb15
-rw-r--r--test/remote/nicknym_source_test.rb13
-rw-r--r--test/support/celluloid_test.rb (renamed from test/support/client_integration_test.rb)3
-rw-r--r--test/support/http_stub_helper.rb4
-rw-r--r--test/unit/logging_responder_test.rb31
11 files changed, 85 insertions, 73 deletions
diff --git a/test/functional/bin_test.rb b/test/functional/bin_test.rb
index bc15e38..ef2d74e 100644
--- a/test/functional/bin_test.rb
+++ b/test/functional/bin_test.rb
@@ -4,19 +4,45 @@ require 'minitest/hell'
class BinTest < Minitest::Test
+ def teardown
+ run_command "stop"
+ end
+
def test_bin_loading
assert_command_runs("version")
- assert_equal 0, $?.exitstatus
+ end
+
+ def test_not_running_by_default
+ assert_stopped
+ end
+
+ def test_start
+ run_command "start"
+ assert_running
end
protected
+ def assert_running
+ status = run_command "status"
+ assert_includes status, "Nickserver running"
+ end
+
+ def assert_stopped
+ status = run_command "status"
+ assert_includes status, "No nickserver processes are running."
+ end
+
def assert_command_runs(command)
- out = `#{path_to_executable} #{command} 2>&1`
+ out = run_command command
assert ($?.exitstatus == 0),
"failed to run 'nickserver #{command}':\n #{out}"
end
+ def run_command(command)
+ `#{path_to_executable} #{command} 2>&1`
+ end
+
def path_to_executable
File.expand_path(File.dirname(__FILE__) + '/../../bin/nickserver')
end
diff --git a/test/integration/dispatcher_test.rb b/test/integration/dispatcher_test.rb
index 4f13e6b..b551e87 100644
--- a/test/integration/dispatcher_test.rb
+++ b/test/integration/dispatcher_test.rb
@@ -55,11 +55,11 @@ class Nickserver::DispatcherTest < Minitest::Test
assert_response success
end
- def test_email_via_hkp_nicknym_unreachable
+ def test_email_not_found_hkp_nicknym_unreachable
handle address: ['valid@email.tld'], headers: { "Host" => "http://nickserver.me" }
stub_nicknym_raises
hkp_source.expect :query, nil, [Nickserver::EmailAddress]
- assert_response response(status: 502, content: "HTTP::ConnectionError")
+ assert_response http_connection_error
end
def test_email_via_nicknym
@@ -126,6 +126,11 @@ class Nickserver::DispatcherTest < Minitest::Test
response status: 500, content: "500 #{msg}\n"
end
+ def http_connection_error
+ response status: 502,
+ content: JSON.dump(error: "HTTP::ConnectionError")
+ end
+
def response(options)
Nickserver::Response.new(options[:status], options[:content])
end
diff --git a/test/integration/hkp_test.rb b/test/integration/hkp_test.rb
index 7d4bb6b..da128c2 100644
--- a/test/integration/hkp_test.rb
+++ b/test/integration/hkp_test.rb
@@ -5,17 +5,6 @@ require 'nickserver/hkp/source'
class HkpTest < Minitest::Test
include HttpStubHelper
- def setup
- super
- Celluloid.boot
- end
-
- def teardown
- Celluloid.shutdown
- super
- end
-
-
def test_key_info_expired
fetch_key_info(:hkp_vindex_result, 'lemur@leap.se') do |keys|
assert_equal 1, keys.length, 'should find a single key'
diff --git a/test/integration/nicknym_test.rb b/test/integration/nicknym_test.rb
deleted file mode 100644
index bfcd7e1..0000000
--- a/test/integration/nicknym_test.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require 'test_helper'
-require 'support/client_integration_test'
-require 'nickserver/nicknym/source'
-
-class NicknymClientTest < ClientIntegrationTest
-
- def test_truth
- assert true
- end
-
-end
diff --git a/test/integration/nickserver_test.rb b/test/integration/nickserver_test.rb
index 06d6e29..5dffcd2 100644
--- a/test/integration/nickserver_test.rb
+++ b/test/integration/nickserver_test.rb
@@ -1,4 +1,5 @@
require 'test_helper'
+require 'support/celluloid_test'
require 'support/http_stub_helper'
require 'nickserver/server'
require 'json'
@@ -15,24 +16,15 @@ require 'json'
#
# (1) We mock the http adapter. So no network is required.
#
-# (2) We actually start the nickserver on 127.0.0.1 and talk to it via http.
+# (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)
#
-class NickserverTest < Minitest::Test
+class NickserverTest < CelluloidTest
include HttpStubHelper
- def setup
- super
- Celluloid.boot
- end
-
- def teardown
- Celluloid.shutdown
- super
- end
-
def test_GET_key_by_email_address_served_via_SKS
uid = 'cloudadmin@leap.se'
key_id = 'E818C478D3141282F7590D29D041EB11B1647490'
diff --git a/test/remote/celluloid_http_test.rb b/test/remote/celluloid_http_test.rb
index 46a5259..da5f5d7 100644
--- a/test/remote/celluloid_http_test.rb
+++ b/test/remote/celluloid_http_test.rb
@@ -1,22 +1,15 @@
require 'test_helper'
+require 'support/celluloid_test'
require 'nickserver/adapters/celluloid_http'
-class Nickserver::Adapters::CelluloidHttpTest < Minitest::Test
-
- def setup
- super
- Celluloid.boot
- end
-
- def teardown
- Celluloid.shutdown
- super
- end
+class Nickserver::Adapters::CelluloidHttpTest < CelluloidTest
def test_https_for_hkp
url = Nickserver::Config.hkp_url
status, _body = adapter.get url
assert_equal 404, status
+ rescue HTTP::ConnectionError => e
+ skip "could not talk to hkp server: #{e}"
end
protected
diff --git a/test/remote/hkp_source_test.rb b/test/remote/hkp_source_test.rb
index aabc4d3..103b8ad 100644
--- a/test/remote/hkp_source_test.rb
+++ b/test/remote/hkp_source_test.rb
@@ -1,17 +1,8 @@
require 'test_helper'
+require 'support/celluloid_test'
require 'nickserver/hkp/source'
-class RemoteHkpSourceTest < Minitest::Test
-
- def setup
- super
- Celluloid.boot
- end
-
- def teardown
- Celluloid.shutdown
- super
- end
+class RemoteHkpSourceTest < CelluloidTest
def test_key_info
uid = 'elijah@riseup.net'
@@ -45,5 +36,7 @@ class RemoteHkpSourceTest < Minitest::Test
assert_equal 200, status
yield keys
end
+ rescue HTTP::ConnectionError => e
+ skip "could not talk to hkp server: #{e}"
end
end
diff --git a/test/remote/nicknym_source_test.rb b/test/remote/nicknym_source_test.rb
index b38a991..e2896ca 100644
--- a/test/remote/nicknym_source_test.rb
+++ b/test/remote/nicknym_source_test.rb
@@ -1,21 +1,12 @@
require 'test_helper'
+require 'support/celluloid_test'
require 'nickserver/nicknym/source'
require 'nickserver/email_address'
#
# Please note the Readme.md file in this directory
#
-class RemoteNicknymSourceTest < Minitest::Test
-
- def setup
- super
- Celluloid.boot
- end
-
- def teardown
- Celluloid.shutdown
- super
- end
+class RemoteNicknymSourceTest < CelluloidTest
def test_availablility_check
source.available_for? 'mail.bitmask.net'
diff --git a/test/support/client_integration_test.rb b/test/support/celluloid_test.rb
index b05db73..ddcfcbb 100644
--- a/test/support/client_integration_test.rb
+++ b/test/support/celluloid_test.rb
@@ -1,8 +1,9 @@
-class ClientIntegrationTest
+class CelluloidTest < Minitest::Test
def setup
super
Celluloid.boot
+ Celluloid.logger = nil
end
def teardown
diff --git a/test/support/http_stub_helper.rb b/test/support/http_stub_helper.rb
index cb9b578..dd3d1b2 100644
--- a/test/support/http_stub_helper.rb
+++ b/test/support/http_stub_helper.rb
@@ -1,7 +1,9 @@
+require 'nickserver/source'
+
module HttpStubHelper
def stubbing_http
- Nickserver::Adapters::CelluloidHttp.stub :new, adapter do
+ Nickserver::Source::DEFAULT_ADAPTER_CLASS.stub :new, adapter do
yield
end
adapter.verify
diff --git a/test/unit/logging_responder_test.rb b/test/unit/logging_responder_test.rb
new file mode 100644
index 0000000..bb6c4a0
--- /dev/null
+++ b/test/unit/logging_responder_test.rb
@@ -0,0 +1,31 @@
+require 'test_helper'
+require 'nickserver/logging_responder'
+
+module Nickserver
+ class LoggingResponderTest < Minitest::Test
+
+ def test_responds_and_logs
+ logger.expect :info, nil, [" -> 200"]
+ respond_to 200, "body"
+ logger.verify
+ end
+
+ protected
+
+ def respond_to(*args)
+ responder.expect :respond, nil, args
+ logging_responder = LoggingResponder.new responder, logger
+ logging_responder.respond(*args)
+ responder.verify
+ end
+
+ def responder
+ @responder ||= Minitest::Mock.new
+ end
+
+ def logger
+ @logger ||= Minitest::Mock.new
+ end
+
+ end
+end