diff options
| author | Azul <azul@riseup.net> | 2016-06-30 11:23:45 +0200 | 
|---|---|---|
| committer | Azul <azul@riseup.net> | 2016-06-30 12:04:07 +0200 | 
| commit | 0491e79c4e5f16d38cf87e53290394e1eccfa2e9 (patch) | |
| tree | 56d0aff1fc8ca1bbd11b09bc6929f00132467898 /test | |
| parent | 4132d6e6db3755334ace352165991487802c6b82 (diff) | |
Trying to replace EM base server with reel
some tests are still broken. But at least they are running now.
Diffstat (limited to 'test')
| -rw-r--r-- | test/integration/hkp_test.rb | 26 | ||||
| -rw-r--r-- | test/integration/nickserver_test.rb | 80 | ||||
| -rw-r--r-- | test/test_helper.rb | 14 | ||||
| -rw-r--r-- | test/unit/adapters/celluloid_http_test.rb | 23 | ||||
| -rw-r--r-- | test/unit/adapters/em_http_test.rb | 25 | 
5 files changed, 69 insertions, 99 deletions
| diff --git a/test/integration/hkp_test.rb b/test/integration/hkp_test.rb index a824a3f..cbb8190 100644 --- a/test/integration/hkp_test.rb +++ b/test/integration/hkp_test.rb @@ -1,6 +1,6 @@  require 'test_helper'  require 'nickserver/hkp/source' -require 'nickserver/adapters/em_http' +require 'nickserver/adapters/celluloid_http'  class HkpTest < Minitest::Test @@ -89,9 +89,9 @@ class HkpTest < Minitest::Test      ca_file = file_path('mayfirst-ca.pem')      real_network do -      stub_config(:hkp_url, hkp_url) do -        stub_config(:hkp_ca_file, ca_file) do -        #stub_config(:hkp_ca_file, file_path('autistici-ca.pem')) do +      config.stub(:hkp_url, hkp_url) do +        config.stub(:hkp_ca_file, ca_file) do +        #config.stub(:hkp_ca_file, file_path('autistici-ca.pem')) do            assert File.exist?(Nickserver::Config.hkp_ca_file)            uid = 'elijah@riseup.net'            assert_key_info_for_uid uid do |keys| @@ -112,26 +112,20 @@ class HkpTest < Minitest::Test    end    def assert_response_for_uid(uid, &block) -    EM.run do -      Nickserver::Hkp::Source.new(adapter).query uid do |response| -        yield response -        EM.stop -      end +    Nickserver::Hkp::Source.new(adapter).query uid do |response| +      yield response      end    end    def assert_key_info_for_uid(uid, &block) -    EM.run do -      Nickserver::Hkp::Source.new(adapter).search uid do |status, keys| -        assert_equal 200, status -        yield keys -        EM.stop -      end +    Nickserver::Hkp::Source.new(adapter).search uid do |status, keys| +      assert_equal 200, status +      yield keys      end    end    def adapter -    Nickserver::Adapters::EmHttp.new +    Nickserver::Adapters::CelluloidHttp.new    end    def fetch_key_info(body_source, uid, &block) diff --git a/test/integration/nickserver_test.rb b/test/integration/nickserver_test.rb index b4ff4da..00b2642 100644 --- a/test/integration/nickserver_test.rb +++ b/test/integration/nickserver_test.rb @@ -1,21 +1,27 @@  require 'test_helper'  require 'json' +require 'celluloid/test'  #  # Some important notes to understanding these tests:  # -# (1) Requests to localhost always bypass HTTP stub. +# (1) Requests to 127.0.0.1 always bypass HTTP stub.  # -# (2) All requests to nickserver are to localhost. +# (2) All requests to nickserver are to 127.0.0.1.  #  # (3) the "Host" header for requests to nickserver must be set (or Config.domain set)  #  # (4) When stubbing requests to couchdb, the couchdb host is changed from the -# default (localhost) to a dummy value (notlocalhost). +# default (127.0.0.1) to a dummy value (notlocalhost).  #  class NickserverTest < Minitest::Test +  def setup +    super +    Celluloid.shutdown; Celluloid.boot +  end +    def test_GET_served_via_SKS      uid    = 'cloudadmin@leap.se'      key_id = 'E818C478D3141282F7590D29D041EB11B1647490' @@ -24,9 +30,8 @@ class NickserverTest < Minitest::Test      start do        params = {query: {"address" => uid}} -      get(params) do |http| -        assert_equal file_content(:leap_public_key), JSON.parse(http.response)["openpgp"] -        stop +      get(params) do |response| +        assert_equal file_content(:leap_public_key), JSON.parse(response.to_s)["openpgp"]        end      end    end @@ -39,9 +44,8 @@ class NickserverTest < Minitest::Test      start do        params = {body: {"address" => uid}} -      post(params) do |http| -        assert_equal file_content(:leap_public_key), JSON.parse(http.response)["openpgp"] -        stop +      post(params) do |response| +        assert_equal file_content(:leap_public_key), JSON.parse(response.to_s)["openpgp"]        end      end    end @@ -52,9 +56,8 @@ class NickserverTest < Minitest::Test      stub_couch_response(uid, status: 404) do        start do          params = {query: {"address" => uid}, head: {host: domain}} -        get(params) do |http| -          assert_equal 404, http.response_header.status -          stop +        get(params) do |response| +          assert_equal 404, response.code          end        end      end @@ -66,9 +69,8 @@ class NickserverTest < Minitest::Test      stub_couch_response(uid, body: file_content(:empty_couchdb_result)) do        start do          params = {query: {"address" => uid}, head: {host: domain}} -        get(params) do |http| -          assert_equal 404, http.response_header.status -          stop +        get(params) do |response| +          assert_equal 404, response.code          end        end      end @@ -80,9 +82,8 @@ class NickserverTest < Minitest::Test      stub_couch_response(uid, body: file_content(:blue_couchdb_result)) do        start do          params = {query: {"address" => uid}, head: {host: domain}} -        get(params) do |http| -          assert_equal file_content(:blue_nickserver_result), http.response -          stop +        get(params) do |response| +          assert_equal file_content(:blue_nickserver_result), response.to_s          end        end      end @@ -90,9 +91,8 @@ class NickserverTest < Minitest::Test    def test_GET_empty      start do -      get({}) do |http| -        assert_equal "404 Not Found\n", http.response -        stop +      get({}) do |response| +        assert_equal "404 Not Found\n", response.to_s        end      end    end @@ -103,53 +103,35 @@ class NickserverTest < Minitest::Test    # start nickserver    #    def start(timeout = 1) -    Timeout::timeout(timeout) do -      EM.run do -        Nickserver::Server.start -        EM.epoll -        yield -      end -    end -  rescue Timeout::Error -    flunk 'EventMachine was not stopped before the timeout expired' +    server = Nickserver::ReelServer.new '127.0.0.1', config.port +    yield server +  ensure +    server.terminate if server && server.alive?    end    #    # http GET requests to nickserver    #    def get(params, &block) -    request(:get, params, &block) +    request(:get, params[:query], &block)    end    #    # http POST requests to nickserver    #    def post(params, &block) -    request(:post, params, &block) +    request(:post, params[:body], &block)    end    #    # http request to nickserver    # -  # this works because http requests to localhost 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, params) -    EventMachine::HttpRequest.new("http://localhost:#{Nickserver::Config.port}/").send(method,params).callback {|http| -      # p http.response_header.status -      # p http.response_header -      # p http.response -      yield http -    }.errback {|http| -      flunk(http.error) if http.error -      EM.stop -    } -  end - -  # -  # stop nickserver -  # -  def stop -    EM.stop +    request = HTTP.request method, "http://127.0.0.1:#{config.port}/", +      params: params +    yield request    end  end diff --git a/test/test_helper.rb b/test/test_helper.rb index afdd3f9..689928c 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -48,26 +48,22 @@ class Minitest::Test    def stub_sks_get_reponse(key_id, opts = {})      options = {status: 200, body: ""}.merge(opts) -    stub_http_request(:get, Nickserver::Config.hkp_url).with( +    stub_http_request(:get, config.hkp_url).with(        query: {op: 'get', search: "0x"+key_id, exact: 'on', options: 'mr'}      ).to_return(options)    end    def stub_couch_response(uid, opts = {})      # can't stub localhost, so set couch_host to anything else -    Nickserver::Config.stub :couch_host, 'notlocalhost' do +    config.stub :couch_host, 'notlocalhost' do        options = {status: 200, body: ""}.merge(opts)        query = "\?key=#{"%22#{uid}%22"}&reduce=false" -      stub_http_request(:get, /#{Regexp.escape(Nickserver::Config.couch_url)}.*#{query}/).to_return(options) +      stub_http_request(:get, /#{Regexp.escape(config.couch_url)}.*#{query}/).to_return(options)        yield      end    end -  # -  # temporarily stubs the config property for the duration of the given block -  # -  def stub_config(property, value, &block) -    Nickserver::Config.stub(property, value, &block) +  def config +    Nickserver::Config    end -  end diff --git a/test/unit/adapters/celluloid_http_test.rb b/test/unit/adapters/celluloid_http_test.rb new file mode 100644 index 0000000..64c7a5d --- /dev/null +++ b/test/unit/adapters/celluloid_http_test.rb @@ -0,0 +1,23 @@ +require 'test_helper' +require 'nickserver/adapters/celluloid_http' +require 'byebug' + +class Nickserver::Adapters::CelluloidHttpTest < Minitest::Test + +  def test_successful_request +    url = 'http://url.to' +    stub_http_request(:get, url) +      .with(query: {key: :value}) +      .to_return status: 200, body: 'body' +    adapter.get(url, query: {key: :value}) do |status, body| +      assert_equal 200, status +      assert_equal 'body', body +    end +  end + +  protected + +  def adapter +    @adapter ||= Nickserver::Adapters::CelluloidHttp.new +  end +end diff --git a/test/unit/adapters/em_http_test.rb b/test/unit/adapters/em_http_test.rb deleted file mode 100644 index 659ff1b..0000000 --- a/test/unit/adapters/em_http_test.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'test_helper' -require 'nickserver/adapters/em_http' - -class Nickserver::Adapters::EmHttpTest < Minitest::Test - -  def test_successful_request -    url = 'http://url.to' -    stub_http_request(:get, url) -      .with(query: {key: :value}) -      .to_return status: 200, body: 'body' -    EM.run do -      adapter.get(url, query: {key: :value}) do |status, body| -        assert_equal 200, status -        assert_equal 'body', body -        EM.stop -      end -    end -  end - -  protected - -  def adapter -    Nickserver::Adapters::EmHttp.new -  end -end | 
