File: hkp_test.rb

package info (click to toggle)
ruby-mail-gpg 0.4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 328 kB
  • sloc: ruby: 2,289; makefile: 6
file content (102 lines) | stat: -rw-r--r-- 2,313 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
require 'test_helper'
require 'byebug'
require 'hkp'

class HkpTest < MailGpgTestCase

  context "hpk client" do
    {
      "http://pool.sks-keyservers.net:11371" => {
        host: 'pool.sks-keyservers.net',
        ssl: false,
        port: 11371
      },
      "https://hkps.pool.sks-keyservers.net" => {
        host: 'hkps.pool.sks-keyservers.net',
        ssl: true,
        port: 443
      },
      "hkp://pool.sks-keyservers.net" => {
        host: 'pool.sks-keyservers.net',
        ssl: false,
        port: 11371
      },
      "hkps://hkps.pool.sks-keyservers.net" => {
        host: 'hkps.pool.sks-keyservers.net',
        ssl: true,
        port: 443
      },
    }.each do |url, data|

      context "with server #{url}" do

        context 'client setup' do

          setup do
            @client = Hkp::Client.new url
          end

          should "have correct port" do
            assert_equal data[:port], @client.instance_variable_get("@port")
          end

          should "have correct ssl setting" do
            assert_equal data[:ssl], @client.instance_variable_get("@use_ssl")
          end

          should "have correct host" do
            assert_equal data[:host], @client.instance_variable_get("@host")
          end

        end

        if ENV['ONLINE_TESTS']

          context 'key search' do

            setup do
              @hkp = Hkp.new keyserver: url,
                             ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
            end

            should 'find key' do
              assert result = @hkp.search('jk@jkraemer.net')
              assert result.size > 0
            end

            should 'fetch key' do
              assert result = @hkp.fetch('584C8BEE17CAC560')
              assert_match 'PGP PUBLIC KEY BLOCK', result
            end

          end

        end

      end
    end
  end

  context 'key search' do

    context "without keyserver url" do
      setup do
        @hkp = Hkp.new
      end

      should "have a non-empty keyserver" do
        assert url = @hkp.instance_variable_get("@keyserver")
        assert !url.blank?
      end

      if ENV['ONLINE_TESTS']
        should 'find key' do
          assert result = @hkp.search('jk@jkraemer.net')
          assert result.size > 0
        end
      end
    end

  end

end