diff options
| author | Azul <azul@riseup.net> | 2018-02-05 09:27:48 +0100 | 
|---|---|---|
| committer | Azul <azul@riseup.net> | 2018-02-05 09:27:48 +0100 | 
| commit | 0d622c2164a97c80027f113b7fce5878b4f585bb (patch) | |
| tree | ff74ea6bab3cf88922cb4edcc0e36c8dd137a545 /test | |
| parent | a43e647663100b7a5117008641765d3508edbe5b (diff) | |
feature: hand out other key types like katzenpost keys
Diffstat (limited to 'test')
| -rw-r--r-- | test/files/blue_couchdb_result | 10 | ||||
| -rw-r--r-- | test/files/red_couchdb_result_with_katzenpost | 25 | ||||
| -rw-r--r-- | test/files/red_couchdb_result_with_old_format | 13 | ||||
| -rw-r--r-- | test/unit/couch_db/response_test.rb | 46 | 
4 files changed, 88 insertions, 6 deletions
diff --git a/test/files/blue_couchdb_result b/test/files/blue_couchdb_result index 1e164b8..8d6ef1a 100644 --- a/test/files/blue_couchdb_result +++ b/test/files/blue_couchdb_result @@ -4,8 +4,14 @@    "rows":[      {        "id":"c58e909ee1291985b9c5954efa1f91e7", -      "key":"blue", -      "value":"-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVmQGiBEDsRrURBACwk7zArsD89vGDlCoBV55RzBeeIyoiNwgQuVlq+t8nGqRdPr+B\r\nZY1mCN6Bj/SOvPgG1DjBbh5CSXuYGzLEw9lkGlAY4VGVvQteHXf3ZpRRtj0SbzEq\r\nUUECLAU4m3L/nOwbTU4Osi5zilQZOTqIooMB+Wq5qCz7rvvzDHPBHF6OHwCg9Wrb\r\n9LT7e0PuRB0qTCyFjIhjB6ED/Ax2ma2D/at4/CVhno0hfZqd3bCCkQDvnArxQfZr\r\nFF3CpnF4djzouGiFYNi3h6y33qaD+ms9/TrewItvvHXgdtPTxHe+12mqWjYTyJPa\r\nN9fXun29YWQrycHLR1NcVo7bLJJ6ESSIhb2Ingo+rsCd5bdqfmMZ7Y0sb0jMrpqB\r\n/MNMA/9EfaKHi/eTREe0/04ZV5rS9tUYAz4elL0yOfwaSbDAgoUatgGAQaQpSBMG\r\n/e+pMyEu07u4Ft2MqG3hPu3Wph0TwWJMANOeFjG4HbJj/9TLYQB1J5mjZa3D091T\r\nxhu7oHzLT5gQL0chCCxHp61lx9tSMqQ/j7F0yZ9WZ8YFV8QDbYhJBCARCgAJBQJP\r\nv/MkAh0CAAoJEKTufqYlGMO1YscAnjrP1HfW10nbOJxxGtRjzdSmESMHAJwIcJMv\r\nX9uCVqwo45h514vu94/N7TPveF2rIEq4yW5IBqxG5aJ0dJDdGjg5GjvmVJtnNIux\r\nonXCYXLcPjkmO+yw8VHZWFUapeIDaWcsXlaBLv/L6uKrrgtrj8v3pUJuOfAuw9td\r\n5nwXz7JXWHEjjMk37HGQHa/fJVwHrRZm99c21jAD4tziZYl4lTM7afBPYiFDO8A0\r\nxBAy4R3dNf2CSBn0\r\n=qogX\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n" +      "key":"blue@example.org", +      "value": { +        "openpgp" : { +          "type" : "openpgp", +          "rev" : "DUMMY_REV", +          "value":"-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVmQGiBEDsRrURBACwk7zArsD89vGDlCoBV55RzBeeIyoiNwgQuVlq+t8nGqRdPr+B\r\nZY1mCN6Bj/SOvPgG1DjBbh5CSXuYGzLEw9lkGlAY4VGVvQteHXf3ZpRRtj0SbzEq\r\nUUECLAU4m3L/nOwbTU4Osi5zilQZOTqIooMB+Wq5qCz7rvvzDHPBHF6OHwCg9Wrb\r\n9LT7e0PuRB0qTCyFjIhjB6ED/Ax2ma2D/at4/CVhno0hfZqd3bCCkQDvnArxQfZr\r\nFF3CpnF4djzouGiFYNi3h6y33qaD+ms9/TrewItvvHXgdtPTxHe+12mqWjYTyJPa\r\nN9fXun29YWQrycHLR1NcVo7bLJJ6ESSIhb2Ingo+rsCd5bdqfmMZ7Y0sb0jMrpqB\r\n/MNMA/9EfaKHi/eTREe0/04ZV5rS9tUYAz4elL0yOfwaSbDAgoUatgGAQaQpSBMG\r\n/e+pMyEu07u4Ft2MqG3hPu3Wph0TwWJMANOeFjG4HbJj/9TLYQB1J5mjZa3D091T\r\nxhu7oHzLT5gQL0chCCxHp61lx9tSMqQ/j7F0yZ9WZ8YFV8QDbYhJBCARCgAJBQJP\r\nv/MkAh0CAAoJEKTufqYlGMO1YscAnjrP1HfW10nbOJxxGtRjzdSmESMHAJwIcJMv\r\nX9uCVqwo45h514vu94/N7TPveF2rIEq4yW5IBqxG5aJ0dJDdGjg5GjvmVJtnNIux\r\nonXCYXLcPjkmO+yw8VHZWFUapeIDaWcsXlaBLv/L6uKrrgtrj8v3pUJuOfAuw9td\r\n5nwXz7JXWHEjjMk37HGQHa/fJVwHrRZm99c21jAD4tziZYl4lTM7afBPYiFDO8A0\r\nxBAy4R3dNf2CSBn0\r\n=qogX\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n" +        } +      }      }    ]  } diff --git a/test/files/red_couchdb_result_with_katzenpost b/test/files/red_couchdb_result_with_katzenpost new file mode 100644 index 0000000..67ff7ee --- /dev/null +++ b/test/files/red_couchdb_result_with_katzenpost @@ -0,0 +1,25 @@ +{ +  "offset" : 21, +  "rows" : [ +    { +      "value" : { +        "openpgp" : { +          "type" : "openpgp", +          "rev" : "DUMMY_REV", +          "value":"-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVmQGiBEDsRrURBACwk7zArsD89vGDlCoBV55RzBeeIyoiNwgQuVlq+t8nGqRdPr+B\r\nZY1mCN6Bj/SOvPgG1DjBbh5CSXuYGzLEw9lkGlAY4VGVvQteHXf3ZpRRtj0SbzEq\r\nUUECLAU4m3L/nOwbTU4Osi5zilQZOTqIooMB+Wq5qCz7rvvzDHPBHF6OHwCg9Wrb\r\n9LT7e0PuRB0qTCyFjIhjB6ED/Ax2ma2D/at4/CVhno0hfZqd3bCCkQDvnArxQfZr\r\nFF3CpnF4djzouGiFYNi3h6y33qaD+ms9/TrewItvvHXgdtPTxHe+12mqWjYTyJPa\r\nN9fXun29YWQrycHLR1NcVo7bLJJ6ESSIhb2Ingo+rsCd5bdqfmMZ7Y0sb0jMrpqB\r\n/MNMA/9EfaKHi/eTREe0/04ZV5rS9tUYAz4elL0yOfwaSbDAgoUatgGAQaQpSBMG\r\n/e+pMyEu07u4Ft2MqG3hPu3Wph0TwWJMANOeFjG4HbJj/9TLYQB1J5mjZa3D091T\r\nxhu7oHzLT5gQL0chCCxHp61lx9tSMqQ/j7F0yZ9WZ8YFV8QDbYhJBCARCgAJBQJP\r\nv/MkAh0CAAoJEKTufqYlGMO1YscAnjrP1HfW10nbOJxxGtRjzdSmESMHAJwIcJMv\r\nX9uCVqwo45h514vu94/N7TPveF2rIEq4yW5IBqxG5aJ0dJDdGjg5GjvmVJtnNIux\r\nonXCYXLcPjkmO+yw8VHZWFUapeIDaWcsXlaBLv/L6uKrrgtrj8v3pUJuOfAuw9td\r\n5nwXz7JXWHEjjMk37HGQHa/fJVwHrRZm99c21jAD4tziZYl4lTM7afBPYiFDO8A0\r\nxBAy4R3dNf2CSBn0\r\n=qogX\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n" +        }, +        "katzenpost_link" : { +          "type" : "katzenpost_link", +          "value" : { +            "one" : "DUMMY_KEY", +            "two" : "DUMMY_KEY" +          }, +          "rev" : "DUMMY_REV" +        } +      }, +      "key" : "red@test.me", +      "id" : "be3af2f749f4dc0a7a786701b09ee11a" +    } +  ], +  "total_rows" : 352 +} diff --git a/test/files/red_couchdb_result_with_old_format b/test/files/red_couchdb_result_with_old_format new file mode 100644 index 0000000..4dee5a4 --- /dev/null +++ b/test/files/red_couchdb_result_with_old_format @@ -0,0 +1,13 @@ +{ +   "offset" : 21, +   "rows" : [ +      { +         "value" : { +            "pgp" :"-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVmQGiBEDsRrURBACwk7zArsD89vGDlCoBV55RzBeeIyoiNwgQuVlq+t8nGqRdPr+B\r\nZY1mCN6Bj/SOvPgG1DjBbh5CSXuYGzLEw9lkGlAY4VGVvQteHXf3ZpRRtj0SbzEq\r\nUUECLAU4m3L/nOwbTU4Osi5zilQZOTqIooMB+Wq5qCz7rvvzDHPBHF6OHwCg9Wrb\r\n9LT7e0PuRB0qTCyFjIhjB6ED/Ax2ma2D/at4/CVhno0hfZqd3bCCkQDvnArxQfZr\r\nFF3CpnF4djzouGiFYNi3h6y33qaD+ms9/TrewItvvHXgdtPTxHe+12mqWjYTyJPa\r\nN9fXun29YWQrycHLR1NcVo7bLJJ6ESSIhb2Ingo+rsCd5bdqfmMZ7Y0sb0jMrpqB\r\n/MNMA/9EfaKHi/eTREe0/04ZV5rS9tUYAz4elL0yOfwaSbDAgoUatgGAQaQpSBMG\r\n/e+pMyEu07u4Ft2MqG3hPu3Wph0TwWJMANOeFjG4HbJj/9TLYQB1J5mjZa3D091T\r\nxhu7oHzLT5gQL0chCCxHp61lx9tSMqQ/j7F0yZ9WZ8YFV8QDbYhJBCARCgAJBQJP\r\nv/MkAh0CAAoJEKTufqYlGMO1YscAnjrP1HfW10nbOJxxGtRjzdSmESMHAJwIcJMv\r\nX9uCVqwo45h514vu94/N7TPveF2rIEq4yW5IBqxG5aJ0dJDdGjg5GjvmVJtnNIux\r\nonXCYXLcPjkmO+yw8VHZWFUapeIDaWcsXlaBLv/L6uKrrgtrj8v3pUJuOfAuw9td\r\n5nwXz7JXWHEjjMk37HGQHa/fJVwHrRZm99c21jAD4tziZYl4lTM7afBPYiFDO8A0\r\nxBAy4R3dNf2CSBn0\r\n=qogX\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n" +         }, +         "key" : "red@test.me", +         "id" : "be3af2f749f4dc0a7a786701b09ee11a" +      } +   ], +   "total_rows" : 352 +} diff --git a/test/unit/couch_db/response_test.rb b/test/unit/couch_db/response_test.rb index 3003307..7eb5872 100644 --- a/test/unit/couch_db/response_test.rb +++ b/test/unit/couch_db/response_test.rb @@ -11,20 +11,58 @@ class Nickserver::CouchDB::ResponseTest < Minitest::Test      assert_equal 404, response.status    end -  def test_200_with_empty_response +  def test_404_because_of_empty_response      response = response_for 'stompy@example.org', -                            status: 200, body: file_content(:empty_couchdb_result) +                            status: 200, +                            body: file_content(:empty_couchdb_result)      assert_equal 404, response.status    end    def test_200_with_success      response = response_for 'blue@example.org', -                            status: 200, body: file_content(:blue_couchdb_result) +                            status: 200, body: +                            file_content(:blue_couchdb_result)      assert_equal 200, response.status -    assert_equal file_content(:blue_nickserver_result), response.content +    assert_equal JSON.parse(file_content(:blue_nickserver_result)), +      JSON.parse(response.content) +  end + +  def test_200_with_other_keys +    body_with_other_type = change_type(file_content(:blue_couchdb_result)) +    response = response_for 'blue@example.org', +                            status: 200, +                            body: body_with_other_type +    assert_equal 200, response.status +    expected = JSON.parse change_type(file_content(:blue_nickserver_result)) +    assert_equal expected, JSON.parse(response.content) +  end + +  def test_openpgp_key_from_old_data_format +    response = response_for 'red@example.org', +                            status: 200, +                            body: file_content(:red_couchdb_result_with_old_format) +    assert_equal 200, response.status +    data = JSON.parse response.content +    assert_includes data.keys, 'address' +    assert_includes data.keys, 'openpgp' +  end + +  def test_katzenpost_key +    response = response_for 'red@example.org', +                            status: 200, +                            body: file_content(:red_couchdb_result_with_katzenpost) +    assert_equal 200, response.status +    data = JSON.parse response.content +    assert_includes data.keys, 'address' +    assert_includes data.keys, 'katzenpost_link'    end    def response_for(uid, couch_response = {})      Nickserver::CouchDB::Response.new uid, couch_response    end + +  def change_type(string) +    string.gsub('openpgp', 'other') +  end +  end  | 
