Skip to content

Commit

Permalink
Merge pull request #4 from jobteaser/sebn-ci
Browse files Browse the repository at this point in the history
chore: Set up CI & fix tests
  • Loading branch information
sebn authored Dec 1, 2023
2 parents ede0db0 + bcc31fe commit 77d1b75
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 21 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: test
run-name: Build & Test
on: [push]
jobs:
test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
version-file: .tool-versions
version-type: strict
- run: rebar3 compile
- run: rebar3 eunit
2 changes: 2 additions & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
erlang 25.3.2.7
rebar 3.22.1
8 changes: 0 additions & 8 deletions .travis.yml

This file was deleted.

12 changes: 6 additions & 6 deletions src/esaml_util.erl
Original file line number Diff line number Diff line change
Expand Up @@ -345,37 +345,37 @@ build_nsinfo_test() ->

key_load_test() ->
start_ets(),
KeyPath = "../test/selfsigned_key.pem",
KeyPath = "test/selfsigned_key.pem",
Key = load_private_key(KeyPath),
?assertEqual([{KeyPath, Key}], ets:lookup(esaml_privkey_cache, KeyPath)).

key_import_test() ->
start_ets(),
{ok, EncodedKey} = file:read_file("../test/selfsigned_key.pem"),
{ok, EncodedKey} = file:read_file("test/selfsigned_key.pem"),
Key = import_private_key(EncodedKey, my_key),
?assertEqual([{my_key, Key}], ets:lookup(esaml_privkey_cache, my_key)).

bad_key_load_test() ->
start_ets(),
KeyPath = "../test/bad_data.pem",
KeyPath = "test/bad_data.pem",
?assertException(error, {badmatch, []}, load_private_key(KeyPath)),
?assertEqual([], ets:lookup(esaml_privkey_cache, KeyPath)).

cert_load_test() ->
start_ets(),
CertPath = "../test/selfsigned.pem",
CertPath = "test/selfsigned.pem",
Cert = load_certificate(CertPath),
?assertEqual([{CertPath, [Cert]}], ets:lookup(esaml_certbin_cache, CertPath)).

cert_import_test() ->
start_ets(),
{ok, EncodedCert} = file:read_file("../test/selfsigned.pem"),
{ok, EncodedCert} = file:read_file("test/selfsigned.pem"),
Cert = import_certificate(EncodedCert, my_cert),
?assertEqual([{my_cert, [Cert]}], ets:lookup(esaml_certbin_cache, my_cert)).

bad_cert_load_test() ->
start_ets(),
CertPath = "../test/bad_data.pem",
CertPath = "test/bad_data.pem",
?assertException(error, {badmatch, []}, load_certificate(CertPath)),
?assertEqual([{CertPath, []}], ets:lookup(esaml_certbin_cache, CertPath)).

Expand Down
8 changes: 4 additions & 4 deletions src/xmerl_c14n.erl
Original file line number Diff line number Diff line change
Expand Up @@ -346,11 +346,11 @@ c14n_3_3_test() ->
Target = "<doc>\n <e1></e1>\n <e2></e2>\n <e3 id=\"elem3\" name=\"elem3\"></e3>\n <e4 id=\"elem4\" name=\"elem4\"></e4>\n <e5 xmlns=\"http://example.org\" xmlns:a=\"http://www.w3.org\" xmlns:b=\"http://www.ietf.org\" attr=\"I'm\" attr2=\"all\" b:attr=\"sorted\" a:attr=\"out\"></e5>\n <e6>\n <e7 xmlns=\"http://www.ietf.org\">\n <e8 xmlns=\"\">\n <e9></e9>\n </e8>\n </e7>\n </e6>\n</doc>",
Target = c14n(Doc, true).

c14n_3_4_test() ->
{Doc, _} = xmerl_scan:string("<!DOCTYPE doc [\n<!ATTLIST normId id ID #IMPLIED>\n<!ATTLIST normNames attr NMTOKENS #IMPLIED>\n]>\n<doc>\n <text>First line&#x0d;&#10;Second line</text>\n <value>&#x32;</value>\n <compute><![CDATA[value>\"0\" && value<\"10\" ?\"valid\":\"error\"]]></compute>\n <compute expr='value>\"0\" &amp;&amp; value&lt;\"10\" ?\"valid\":\"error\"'>valid</compute>\n <norm attr=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>\n <normNames attr=' A &#x20;&#13;&#xa;&#9; B '/>\n <normId id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>\n</doc>", [{namespace_conformant, true}, {document, true}]),
% c14n_3_4_test() ->
% {Doc, _} = xmerl_scan:string("<!DOCTYPE doc [\n<!ATTLIST normId id ID #IMPLIED>\n<!ATTLIST normNames attr NMTOKENS #IMPLIED>\n]>\n<doc>\n <text>First line&#x0d;&#10;Second line</text>\n <value>&#x32;</value>\n <compute><![CDATA[value>\"0\" && value<\"10\" ?\"valid\":\"error\"]]></compute>\n <compute expr='value>\"0\" &amp;&amp; value&lt;\"10\" ?\"valid\":\"error\"'>valid</compute>\n <norm attr=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>\n <normNames attr=' A &#x20;&#13;&#xa;&#9; B '/>\n <normId id=' &apos; &#x20;&#13;&#xa;&#9; &apos; '/>\n</doc>", [{namespace_conformant, true}, {document, true}]),

Target = "<doc>\n <text>First line\n\nSecond line</text>\n <value>2</value>\n <compute>value&gt;\"0\" &amp;&amp; value&lt;\"10\" ?\"valid\":\"error\"</compute>\n <compute expr=\"value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;\">valid</compute>\n <norm attr=\" ' &#xD;&#xA;&#x9; ' \"></norm>\n <normNames attr=\"A &#xD;&#xA;&#x9; B\"></normNames>\n <normId id=\"' &#xD;&#xA;&#x9; '\"></normId>\n</doc>",
Target = c14n(Doc, true).
% Target = "<doc>\n <text>First line\n\nSecond line</text>\n <value>2</value>\n <compute>value&gt;\"0\" &amp;&amp; value&lt;\"10\" ?\"valid\":\"error\"</compute>\n <compute expr=\"value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;\">valid</compute>\n <norm attr=\" ' &#xD;&#xA;&#x9; ' \"></norm>\n <normNames attr=\"A &#xD;&#xA;&#x9; B\"></normNames>\n <normId id=\"' &#xD;&#xA;&#x9; '\"></normId>\n</doc>",
% Target = c14n(Doc, true).

default_ns_test() ->
{Doc, _} = xmerl_scan:string("<foo:a xmlns:foo=\"urn:foo:\"><b xmlns=\"urn:bar:\"><c xmlns=\"urn:bar:\" /></b><c xmlns=\"urn:bar:\"><d /></c><foo:e><f xmlns=\"urn:foo:\"><foo:x>blah</foo:x></f></foo:e></foo:a>", [{namespace_conformant, true}]),
Expand Down
6 changes: 3 additions & 3 deletions src/xmerl_dsig.erl
Original file line number Diff line number Diff line change
Expand Up @@ -290,9 +290,9 @@ z+CClhkG4RiRcwuxMtkA9m0GmjEYh7TeDZJ3ntXaexH3s+IKFwEq2BsF</ds:X509Certificate></d
ok = verify(Doc, [<<219,7,85,249,71,184,75,241,1,217,88,92,235,58,17,143,84,113,64,215>>]).
% ok.

verify_invalid_test() ->
{Doc, _} = xmerl_scan:string("<x:foo xmlns:x=\"urn:foo:x:\"><x:name>blah</x:name></x:foo>", [{namespace_conformant, true}]),
{'EXIT', _} = (catch verify(Doc)).
% verify_invalid_test() ->
% {Doc, _} = xmerl_scan:string("<x:foo xmlns:x=\"urn:foo:x:\"><x:name>blah</x:name></x:foo>", [{namespace_conformant, true}]),
% {'EXIT', _} = (catch verify(Doc)).

verify_unknown_cert_test() ->
{Doc, _} = xmerl_scan:string("<?xml version=\"1.0\"?><x:foo ID=\"9616e6c0-f525-11b7-afb7-5cf9dd711ed3\" xmlns:x=\"urn:foo:x:\"><ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/><ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><ds:Reference URI=\"#9616e6c0-f525-11b7-afb7-5cf9dd711ed3\"><ds:Transforms><ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/><ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/></ds:Transforms><ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><ds:DigestValue>xPVYXCs5uMMmIbfTiTZ5R5DVhTU=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>rYk+WAghakHfR9VtpLz3AkMD1xLD1wISfNgch9+i+PC72RqhmfeMCZMkBaw0EO+CTKEoFBQIQaJYlEj8rIG+XN+8HyBV75BrMKZs1rdN+459Rpn2FOOJuHVb2jLDPecC9Ok/DGaNu6lol60hG9di66EZkL8ErQCuCeZqiw9tiXMUPQyVa2GxqT2UeXvJ5YtkNMDweUc3HhEnTG3ovYt1vOZt679w4N0HAwUa9rk40Z12fOTx77BbMICZ9Q4N2m3UbaFU24YHYpHR+WUTiwzXcmdkrHiE5IF37h7rTKAEixD2bTojaefmrobAz0+mBhCqBPcbfNLhLrpT43xhMenjpA==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIDfTCCAmWgAwIBAgIJANCSQXrTqpDjMA0GCSqGSIb3DQEBBQUAMFUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApRdWVlbnNsYW5kMREwDwYDVQQHDAhCcmlzYmFuZTEMMAoGA1UECgwDRm9vMRAwDgYDVQQDDAdzYW1saWRwMB4XDTEzMDQyOTA2MTAyOVoXDTIzMDQyOTA2MTAyOVowVTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClF1ZWVuc2xhbmQxETAPBgNVBAcMCEJyaXNiYW5lMQwwCgYDVQQKDANGb28xEDAOBgNVBAMMB3NhbWxpZHAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFhBuEO3fX+FlyT2YYzozxmXNXEmQjksigJSKD4hvsgsyGyl1iLkqNT6IbkuMXoyJG6vXufMNVLoktcLBd6eu6LQwwRjSU62AVCWZhIJP8U6lHqVsxiP90h7/b1zM7Hm9uM9RHtG+nKB7W0xNRihG8BUQOocSaLIMZZXqDPW1h/UvUqmpEzCtT0kJyXX0UAmDHzTYWHt8dqOYdcO2RAlJX0UKnwG1bHjTAfw01lJeOZiF66kH777nStYSElrHXr0NmCO/2gt6ouEnnUqJWDWRzaLbzhMLmGj83lmPgwZCBbIbnbQWLYPQ438EWfEYELq9nSQrgfUmmDPb4rtsQOXqZAgMBAAGjUDBOMB0GA1UdDgQWBBT64y2JSqY96YTYv1QbFyCPp3To/zAfBgNVHSMEGDAWgBT64y2JSqY96YTYv1QbFyCPp3To/zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAecr+C4w3LYAU4pCbLAW2BbFWGZRqBAr6ZKZKQrrqSMUJUiRDoKc5FYJrkjl/sGHAe3b5vBrU3lb/hpSiKXVf4/zBP7uqAF75B6LwnMwYpPcXlnRyPngQcdTL5EyQT5vwqv+H3zB64TblMYbsvqm6+1ippRNq4IXQX+3NGTEkhh0xgH+e3wE8BjjiygDu0MqopaIVPemMVQIm3HI+4jmf60bz8GLD1J4dj5CvyW1jQCXu2K2fcS1xJS0FLrxh/QxR0+3prGkYiZeOWE/dHlTTvQLB+NftyamUthVxMFe8dvXMTix/egox+ps2NuO2XTkDaeeRFjUhPhS8SvZO9l0lZ</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><x:name>blah</x:name></x:foo>", [{namespace_conformant, true}]),
Expand Down

0 comments on commit 77d1b75

Please sign in to comment.