Regenerated test coverage reports and documentation.
This commit is contained in:
parent
a60187eb2a
commit
1b2423a806
|
@ -3,24 +3,23 @@
|
||||||
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, 1, null, null, null, null, null, null, null, null,
|
null, null, null, null, 1, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
40, null, 0, null, 1, null, null, null, null, null, true, 4, null,
|
null, 35, null, 35, null, 1, null, null, null, null, null, 4, null,
|
||||||
null, null, null, 1, null, null, null, null, 1, null, null, null,
|
4, null, 1, null, 3, null, 3, null, 1, null, null, null, null, null,
|
||||||
null, null, true, null, null, 5, null, null, null, 1, null, true,
|
null, null, 0, 0, 0, 0, null, null, null, null, 1, null, 0, null, 0,
|
||||||
null, null, 1, null, null, null, null, true, null, null, 5, null,
|
null, 1, null, 0, null, 0, null, 1, null, null, null, null, null, 0,
|
||||||
null, 1, null, null, null, null, null, null, null, null, null, null,
|
0, 0, null, null, 1, null, null, null, null, null, true, true, true,
|
||||||
null, null, null, null, true, 2, 2, 0, 0, 0, null, null, 1, null,
|
true, 2, 1, null, 1, 1, true, true, 1, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, 0, 0, 0, null, null, 1, null,
|
null, null, null, 0, 0, 0, 0, null, null, 1, null, null, 0, null, 1,
|
||||||
null, 0, 0, 0, 0, 0, 0, 0, null, null, null, 1, null, null, 0, 0, 0,
|
null, null, 0, null, 1, null, null, 0, null, 1, null, null, 2, null,
|
||||||
null, null, 1, null, null, null, null, null, 0, 0, 0, null, null, 1,
|
null],
|
||||||
null, null, null, null, null, true, true, true, true, 2, 1, null, 1,
|
|
||||||
1, true, true, 1, null, null, null, null, null, null, null, null, 0,
|
|
||||||
0, 0, 0, null, null, 1, null, null, 0, null, 1, null, null, 0, null,
|
|
||||||
1, null, null, 0, null, 1, null, null, 2, null, null],
|
|
||||||
"dog_and_duck/utils/process.clj":
|
"dog_and_duck/utils/process.clj":
|
||||||
[null, 1, null, null, 1, null, null, null, null, 1, 1, 1, null, true,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, 1],
|
null, null, null, null, null, null, null, null, 1, null, null, null,
|
||||||
|
null, null, null, 1, 1, 1, 1, 1, null, true, null, null, null, null,
|
||||||
|
null, null, null, null, null, 1, null, 1, null, null, null, null,
|
||||||
|
1],
|
||||||
"clj_activitypub/internal/http_util.clj":
|
"clj_activitypub/internal/http_util.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, null, 1, 1, 1, 1,
|
[null, 1, null, null, null, null, null, null, null, null, 1, 1, 1, 1,
|
||||||
2, 2, 1, 1, 1, null, 1, 0, 0, null, 1, null, null, null, 0],
|
2, 2, 1, 1, 1, null, 1, 0, 0, null, 1, null, null, null, 0],
|
||||||
|
@ -31,7 +30,7 @@
|
||||||
"dog_and_duck/scratch/parser.clj":
|
"dog_and_duck/scratch/parser.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, 1, null, null, null, 10, 10, 10, 10, 10, true, 0, null, 1,
|
null, 1, null, null, null, 11, 11, 11, 11, 11, true, 0, null, 1,
|
||||||
null, 1, 0, 0, 0, 0, 0, 0, 1, null, 1],
|
null, 1, 0, 0, 0, 0, 0, 0, 1, null, 1],
|
||||||
"clj_activitypub/core.clj":
|
"clj_activitypub/core.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, null, null, 1,
|
[null, 1, null, null, null, null, null, null, null, null, null, 1,
|
||||||
|
@ -51,21 +50,50 @@
|
||||||
"dog_and_duck/quack/picky.clj":
|
"dog_and_duck/quack/picky.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null, 1,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
|
null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, 1, null,
|
null, null, null, null, null, null, null, null, null, null, 1, null,
|
||||||
1, null, 1, 1, 1, 1, 1, null, 1, null, null, null, true, true, 7, 7,
|
null, null, null, null, null, null, null, null, 1, null, null, null,
|
||||||
7, 7, 12, 7, null, 1, null, null, null, null, 1, null, null, null,
|
1, null, 1, null, null, null, null, null, null, null, null, null,
|
||||||
null, 1, null, null, null, null, null, null, true, 22, 18, true, 2,
|
null, null, 1, null, 1, null, 1, 1, 1, 1, 1, 1, null, 1, null, null,
|
||||||
null, null, null, 12, null, null, 3, null, 1, null, null, null,
|
0, null, 1, null, null, null, null, null, 0, 0, 0, 0, 0, null, 1,
|
||||||
null, null, null, null, null, 14, 14, 14, 14, null, 14, null, 14,
|
null, null, null, true, true, 46, 46, 46, 72, 46, null, 0, 0, null,
|
||||||
null, 14, 14, 14, null, 1, null, null, 12, 12, 12, 12, 1, null,
|
0, 0, null, 1, null, null, null, null, 1, null, null, null, null, 1,
|
||||||
null, 12, 12, 3, null, null, 12, 3, null, null, 12, 4, null, null,
|
null, null, null, null, null, null, true, 261, 123, true, 6, null,
|
||||||
12, null, 1, null, null, 5, 5, 5, 5, 5, 4, 3, 1, null, 1, null, 0,
|
null, null, 89, null, null, 3, null, 1, null, null, null, null,
|
||||||
1, 5, null],
|
null, null, null, null, 372, 372, 372, 372, null, 372, null, 372,
|
||||||
|
null, 372, 372, true, null, 0, 0, null, true, null, null, 6, 6,
|
||||||
|
null, 1, null, null, null, null, null, null, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, null, 0, 0, 0, 0, 0, 0, null, 1, null, null, null, null, null,
|
||||||
|
true, 89, 89, 89, 5, 89, 89, 66, 89, 13, 89, 23, null, 0, 0, 0, 0,
|
||||||
|
0, null, null, 0, null, 1, null, null, null, null, 0, null, 16, 16,
|
||||||
|
null, 0, null, 0, null, 12, null, 1, null, null, true, 17, 17, 17,
|
||||||
|
17, 17, 14, 13, 8, null, 1, null, 0, 3, null, 1, null, null, null,
|
||||||
|
null, 1, null, null, null, null, null, 1, null, null, 12, null, 1,
|
||||||
|
null, null, null, 8, 8, true, 8, null, 1, null, null, true, 3, 3, 3,
|
||||||
|
3, 1, 3, 3, 3, 3, null, 1, null, null, null, null, 1, null, null,
|
||||||
|
null, null, 1, null, null, null, 4, null, 1, null, null, null, 0, 0,
|
||||||
|
0, 0, null, 1, null, null, null, null, null, 0, null, 0, 0, null, 1,
|
||||||
|
null, null, null, null, 0, 0, 0, 0, null, null, null, 1, null, null,
|
||||||
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
|
null, null, null, 0, 0, 0, 0, 0, 0, null, 0, 0, 0, null, null, 0, 0,
|
||||||
|
null, 0, 0, 0, 0, 0, null, 0, 0, 0, 0, 0, null, 1, null, null, 0,
|
||||||
|
null, 1, null, null, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null, 0,
|
||||||
|
0, 0, 0, null, 1, null, null, null, true, 0, true, true, null, 1,
|
||||||
|
null, null, null, 1, null, 1, null, null, 1, null, 1, 0, null, null,
|
||||||
|
null, 1, null, null, 1, 1, 1, 1, null, 1, 1, 1, 1, 1, 1, null, 1, 1,
|
||||||
|
1, 0, null, null, null, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
1, null, 1, null, null, null, null, null, null, null, 0, 0, 0, null,
|
||||||
|
0, 0, 0, 0, null, 1, null, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
"dog_and_duck/quack/fault_messages.clj":
|
"dog_and_duck/quack/fault_messages.clj":
|
||||||
[null, 1, null, 1, null, 1, null, null, null, null, null, null,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null],
|
null, null, null, null, null, null, null, 1, null, 1, null, null,
|
||||||
"dog_and_duck/scratch/core.clj":[null, 1, null, 1, null, null, 0],
|
null, null, null, null, null, null, null, null],
|
||||||
|
"dog_and_duck/scratch/core.clj":
|
||||||
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
|
null, null, null, null, null, null, null, 1, null, null, 0],
|
||||||
"clj_activitypub/webfinger.clj":
|
"clj_activitypub/webfinger.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, 1, null, 1, 1,
|
[null, 1, null, null, null, null, null, null, null, 1, null, 1, 1,
|
||||||
null, 1, null, null, 1, 1, 1, null, 1, 1, null, 1, null, null, null,
|
null, 1, null, null, 1, 1, 1, null, 1, 1, null, 1, null, null, null,
|
||||||
|
@ -73,6 +101,6 @@
|
||||||
"dog_and_duck/scratch/scratch.clj":
|
"dog_and_duck/scratch/scratch.clj":
|
||||||
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
[null, 1, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, null, null, null, null, null, null,
|
null, null, null, null, null, null, null, null, null, null, null,
|
||||||
null, null, null, null, null, 1, null, 1, 1, 1, null, null, null,
|
null, null, 1, null, 1, 1, 1, null, null, null, null, 1, null, 1, 1,
|
||||||
null, 1, null, 1, 1, 1, 1, null, null, 1, null, null, 1, 1, null,
|
1, 1, null, null, 1, null, null, null, null, null, null, null, 1, 1,
|
||||||
null, null, null, 1, 1, 1, 1, 1, 1, null, null]}}
|
1, 1, 1, 1, null, null]}}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?><report><stats><packages value="12"/><methods value="1623"/><srcfiles value="12"/><srclines value="359"/></stats><data><all name="total"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="62% (1005/1623)"/><coverage type="line, %" value="62% (221/359)"/><package name="dog-and-duck.scratch.scratch"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="100% (75/75)"/><coverage type="line, %" value="100% (19/19)"/></package><package name="clj-activitypub.internal.thread-cache"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="83% (105/126)"/><coverage type="line, %" value="88% (30/34)"/></package><package name="dog-and-duck.quack.fault-messages"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="100% (19/19)"/><coverage type="line, %" value="100% (3/3)"/></package><package name="clj-activitypub.internal.crypto"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="19% (9/48)"/><coverage type="line, %" value="39% (9/23)"/></package><package name="dog-and-duck.quack.quack"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="48% (237/490)"/><coverage type="line, %" value="43% (29/67)"/></package><package name="clj-activitypub.webfinger"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="96% (107/112)"/><coverage type="line, %" value="89% (16/18)"/></package><package name="dog-and-duck.quack.picky"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="94% (283/301)"/><coverage type="line, %" value="92% (60/65)"/></package><package name="clj-activitypub.internal.http-util"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="74% (29/39)"/><coverage type="line, %" value="80% (12/15)"/></package><package name="dog-and-duck.scratch.core"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="33% (2/6)"/><coverage type="line, %" value="67% (2/3)"/></package><package name="dog-and-duck.utils.process"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="86% (25/29)"/><coverage type="line, %" value="86% (6/7)"/></package><package name="dog-and-duck.scratch.parser"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="56% (43/77)"/><coverage type="line, %" value="58% (11/19)"/></package><package name="clj-activitypub.core"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="24% (71/301)"/><coverage type="line, %" value="28% (24/86)"/></package></all></data></report>
|
<?xml version="1.0" encoding="UTF-8"?><report><stats><packages value="12"/><methods value="2644"/><srcfiles value="12"/><srclines value="530"/></stats><data><all name="total"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="54% (1438/2644)"/><coverage type="line, %" value="55% (294/530)"/><package name="dog-and-duck.scratch.scratch"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="100% (66/66)"/><coverage type="line, %" value="100% (17/17)"/></package><package name="clj-activitypub.internal.thread-cache"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="83% (105/126)"/><coverage type="line, %" value="88% (30/34)"/></package><package name="dog-and-duck.quack.fault-messages"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="100% (25/25)"/><coverage type="line, %" value="100% (3/3)"/></package><package name="clj-activitypub.internal.crypto"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="19% (9/48)"/><coverage type="line, %" value="39% (9/23)"/></package><package name="dog-and-duck.quack.quack"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="47% (122/262)"/><coverage type="line, %" value="51% (25/49)"/></package><package name="clj-activitypub.webfinger"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="96% (107/112)"/><coverage type="line, %" value="89% (16/18)"/></package><package name="dog-and-duck.quack.picky"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="53% (825/1544)"/><coverage type="line, %" value="54% (135/252)"/></package><package name="clj-activitypub.internal.http-util"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="74% (29/39)"/><coverage type="line, %" value="80% (12/15)"/></package><package name="dog-and-duck.scratch.core"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="33% (2/6)"/><coverage type="line, %" value="67% (2/3)"/></package><package name="dog-and-duck.utils.process"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="89% (34/38)"/><coverage type="line, %" value="91% (10/11)"/></package><package name="dog-and-duck.scratch.parser"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="56% (43/77)"/><coverage type="line, %" value="58% (11/19)"/></package><package name="clj-activitypub.core"><coverage type="class, %" value="0% (0/1)"/><coverage type="method, %" value="0% (0/1)"/><coverage type="block, %" value="24% (71/301)"/><coverage type="line, %" value="28% (24/86)"/></package></all></data></report>
|
|
@ -10,35 +10,92 @@
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
002
|
002
|
||||||
</span><br/>
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
003 ;;; Copyright (C) Simon Brooke, 2022
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
004
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
005 ;;; This program is free software; you can redistribute it and/or
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
006 ;;; modify it under the terms of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
007 ;;; as published by the Free Software Foundation; either version 2
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
008 ;;; of the License, or (at your option) any later version.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
009
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
010 ;;; This program is distributed in the hope that it will be useful,
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
011 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
012 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
013 ;;; GNU General Public License for more details.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
014
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
015 ;;; You should have received a copy of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
016 ;;; along with this program; if not, write to the Free Software
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
017 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
018
|
||||||
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
003 (def messages
|
019 (def messages
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
004 "Actual fault messages to which fault codes resolve."
|
020 "Actual fault messages to which fault codes resolve."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="17 out of 17 forms covered">
|
<span class="covered" title="23 out of 23 forms covered">
|
||||||
005 {:id-not-https "Publicly facing content SHOULD use HTTPS URIs"
|
021 {:id-not-https "Publicly facing content SHOULD use HTTPS URIs"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
006 :id-not-uri "identifiers must be publicly dereferencable URIs"
|
022 :id-not-uri "identifiers must be publicly dereferencable URIs"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
007 :no-context "Section 3 of the ActivityPub specification states Implementers SHOULD include the ActivityPub context in their object definitions`."
|
023 :no-context "Section 3 of the ActivityPub specification states Implementers SHOULD include the ActivityPub context in their object definitions`."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
008 :no-id-persistent "Persistent objects MUST have unique global identifiers."
|
024 :no-id-persistent "Persistent objects MUST have unique global identifiers."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
009 :no-id-transient "The ActivityPub specification allows objects without `id` fields only if they are intentionally transient; even so it is preferred that the object should have an explicit null id."
|
025 :no-id-transient "The ActivityPub specification allows objects without `id` fields only if they are intentionally transient; even so it is preferred that the object should have an explicit null id."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
010 :null-id-persistent "Persistent objects MUST have non-null identifiers."
|
026 :no-inbox "Actor objects MUST have an `inbox` property, whose value MUST be a reference to an ordered collection."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
011 :no-type "The ActivityPub specification states that the `type` field is optional, but it is hard to process objects with no known type."
|
027 :no-outbox "Actor objects MUST have an `outbox` property, whose value MUST be a reference to an ordered collection."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
012 :not-an-object "ActivityStreams object must be JSON objects."})
|
028 :no-type "The ActivityPub specification states that the `type` field is optional, but it is hard to process objects with no known type."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
029 :not-actor-type "The `type` value of the object was not a recognised actor type."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
030 :null-id-persistent "Persistent objects MUST have non-null identifiers."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
031 :not-an-object "ActivityStreams object must be JSON objects."})
|
||||||
</span><br/>
|
</span><br/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -46,644 +46,470 @@
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
014 toggle some checks off."
|
014 toggle some checks off."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
015
|
015
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
016 ;;(:require [clojure.spec.alpha as s])
|
016 (:require [dog-and-duck.quack.picky :refer [*reject-severity* activity-faults
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
017 (:require [dog-and-duck.quack.picky :refer [filter-severity has-context?
|
017 actor-faults filter-severity link-faults
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
018 object-faults]])
|
018 object-faults persistent-object-faults]])
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
019 (:import [java.net URI URISyntaxException]))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
020
|
019
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
021 ;;; Copyright (C) Simon Brooke, 2022
|
020 (:import [java.net URI URISyntaxException]))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
022
|
021
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
023 ;;; This program is free software; you can redistribute it and/or
|
022 ;;; Copyright (C) Simon Brooke, 2022
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
024 ;;; modify it under the terms of the GNU General Public License
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
025 ;;; as published by the Free Software Foundation; either version 2
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
026 ;;; of the License, or (at your option) any later version.
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
027
|
023
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
028 ;;; This program is distributed in the hope that it will be useful,
|
024 ;;; This program is free software; you can redistribute it and/or
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
029 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
025 ;;; modify it under the terms of the GNU General Public License
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
030 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
026 ;;; as published by the Free Software Foundation; either version 2
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
031 ;;; GNU General Public License for more details.
|
027 ;;; of the License, or (at your option) any later version.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
032
|
028
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
033 ;;; You should have received a copy of the GNU General Public License
|
029 ;;; This program is distributed in the hope that it will be useful,
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
034 ;;; along with this program; if not, write to the Free Software
|
030 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
035 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
031 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
032 ;;; GNU General Public License for more details.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
036
|
033
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
034 ;;; You should have received a copy of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
035 ;;; along with this program; if not, write to the Free Software
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
036 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
037
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
037 (defn object?
|
038 (defn object?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
038 "Returns `true` iff `x` is recognisably an ActivityStreams object.
|
039 "Returns `true` iff `x` is recognisably an ActivityStreams object.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
039
|
040
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
040 **NOTE THAT** The ActivityStreams spec
|
041 **NOTE THAT** The ActivityStreams spec
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
041 [says](https://www.w3.org/TR/activitystreams-core/#object):
|
042 [says](https://www.w3.org/TR/activitystreams-core/#object):
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
042
|
043
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
043 > All properties are optional (including the id and type)
|
044 > All properties are optional (including the id and type)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
044
|
045
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
045 But we are *just not having that*, because otherwise we're flying blind.
|
046 But we are *just not having that*, because otherwise we're flying blind.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
046 We *shall* reject objects lacking at least `:type`. Missing `:id` keys are
|
047 We *shall* reject objects lacking at least `:type`. Missing `:id` keys are
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
047 tolerable because they represent transient objects, which we expect to
|
048 tolerable because they represent transient objects, which we expect to
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
048 handle.
|
049 handle.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
049
|
050
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
050 **NOTE THAT** The ActivityPub spec [says](https://www.w3.org/TR/activitypub/#obj)
|
051 **NOTE THAT** The ActivityPub spec [says](https://www.w3.org/TR/activitypub/#obj)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
051
|
052
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
052 > Implementers SHOULD include the ActivityPub context in their object
|
053 > Implementers SHOULD include the ActivityPub context in their object
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
053 > definitions
|
054 > definitions
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
054
|
055
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
055 but in samples found in the wild they typically don't."
|
056 but in samples found in the wild they typically don't."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
056 ([x]
|
057 ([x]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="15 out of 15 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
057 (and (map? x) (:type x) true))
|
058 (object? x *reject-severity*))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
058 ([x severity]
|
059 ([x severity]
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="8 out of 8 forms covered">
|
||||||
|
060 (empty? (filter-severity (object-faults x) severity))))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
061
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
062 (defn persistent-object?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
063 "`true` iff `x` is a persistent object.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
064
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
065 Transient objects in ActivityPub are not required to have an `id` key, but persistent
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
066 ones must have a key, and it must be an IRI (but normally a URI)."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
067 ([x]
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
|
068 (persistent-object? x *reject-severity*))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
069 ([x severity]
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="8 out of 8 forms covered">
|
||||||
|
070 (empty? (filter-severity (persistent-object-faults x) severity))))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
071
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
072 (defn actor?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
073 "Returns `true` if `x` quacks like an actor, else false."
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
|
074 ([x] (actor? x *reject-severity*))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
075 ([x severity]
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="8 out of 8 forms covered">
|
||||||
|
076 (empty? (filter-severity (actor-faults x) severity))))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
077
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
078 (defn actor-or-uri?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
079 "`true` if `x` is either a URI or an actor.
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
080
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
081 **TODO**: I need to decide about whether to reify referenced objects
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
082 before validation or after. After reification, every reference to an actor
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
083 *must be* to an actor object, but before, may only be to a URI pointing to
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
084 one."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
085 [x]
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 3 forms covered">
|
||||||
|
086 (try
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 5 forms covered">
|
||||||
|
087 (and
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 9 forms covered">
|
||||||
|
088 (cond (string? x) (uri? (URI. x))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 3 forms covered">
|
||||||
|
089 :else (actor? x))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
090 true)
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
091 (catch URISyntaxException _ false)
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
092 (catch NullPointerException _ false)))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
093
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
094 (defn activity?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
095 "`true` iff `x` quacks like an activity, else false."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 4 forms covered">
|
||||||
|
096 ([x] (activity? x *reject-severity*))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
097 ([x severity]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 8 forms covered">
|
<span class="not-covered" title="0 out of 8 forms covered">
|
||||||
059 (empty? (filter-severity (object-faults x) severity))))
|
098 (empty? (filter-severity (activity-faults x) severity))))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
060
|
099
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
061 (defn persistent-object?
|
100 (defn link?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
062 "`true` iff `x` is a persistent object.
|
101 "`true` iff `x` quacks like a link, else false."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="not-covered" title="0 out of 4 forms covered">
|
||||||
063
|
102 ([x] (link? x *reject-severity*))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
064 Transient objects in ActivityPub are not required to have an `id` key, but persistent
|
103 ([x severity]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-covered" title="0 out of 8 forms covered">
|
||||||
065 ones must have a key, and it must be an IRI (but normally a URI)."
|
104 (empty? (filter-severity (link-faults x) severity))))
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
066 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="1 out of 2 forms covered">
|
|
||||||
067 (try
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="13 out of 13 forms covered">
|
|
||||||
068 (and (object? x) (uri? (URI. (:id x))))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
069 (catch URISyntaxException _ false)))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
070
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
071 ;; (persistent-object? {:type "test" :id "https://mastodon.scot/@barfilfarm"})
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
072
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
073 (def ^:const actor-types
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
074 "The set of types we will accept as actors.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
075
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
076 There's an [explicit set of allowed actor types]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
077 (https://www.w3.org/TR/activitystreams-vocabulary/#actor-types)."
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="6 out of 6 forms covered">
|
|
||||||
078 #{"Application"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
079 "Group"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
080 "Organization"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
081 "Person"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
082 "Service"})
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
083
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="33 out of 34 forms covered">
|
|
||||||
084 (defmacro actor-type?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
085 "Return `true` iff the `x` is a recognised actor type, else `false`."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
086 [^String x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
087 `(if (actor-types ~x) true false))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
088
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
089 ;; (actor-type? "Group")
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
090
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
091 (def ^:const verb-types
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
092 "The set of types we will accept as verbs.
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="2 out of 4 forms covered">
|
|
||||||
093
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
094 There's an [explicit set of allowed verb types]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
095 (https://www.w3.org/TR/activitystreams-vocabulary/#activity-types)."
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="29 out of 29 forms covered">
|
|
||||||
096 #{"Accept" "Add" "Announce" "Arrive" "Block" "Create" "Delete" "Dislike"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
097 "Flag" "Follow" "Ignore" "Invite" "Join" "Leave" "Like" "Listen" "Move"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
098 "Offer" "Question" "Reject" "Read" "Remove" "TentativeAccept"
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
099 "TentativeReject" "Travel" "Undo" "Update" "View"})
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
100
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="33 out of 34 forms covered">
|
|
||||||
101 (defmacro verb-type?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
102 ;; TODO: better as a macro
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
103 [^String x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
104 `(if (verb-types ~x) true false))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
105
|
105
|
||||||
</span><br/>
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
106 (defn link-or-uri?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
107 "`true` iff `x` is either a URI or a link, else false.
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
108
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
109 There are several points in the specification where e.g. the `:image`
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
110 property (if present) may be either a link or a URI."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
111 [x]
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 5 forms covered">
|
||||||
|
112 (and
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 9 forms covered">
|
||||||
|
113 (cond (string? x) (uri? (URI. x))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 3 forms covered">
|
||||||
|
114 :else (link? x))
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
115 true))
|
||||||
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
106
|
116
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
107 (defn actor?
|
117 (defn collection?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
108 "Returns `true` if `x` quacks like an actor, else false.
|
118 "`true` iff `x` quacks like a collection of type `object-type`, else `false`.
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
109
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
110 **NOTE THAT** [Section 4.1 of the spec]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
111 (https://www.w3.org/TR/activitypub/#actor-objects) says explicitly that
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
112
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
113 > Actor objects MUST have, in addition to the properties mandated by 3.1 Object Identifiers, the following properties:
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
114 >
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
115 > inbox
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
116 > A reference to an [ActivityStreams] OrderedCollection comprised of all the messages received by the actor; see 5.2 Inbox.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
117 > outbox
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
118 > An [ActivityStreams] OrderedCollection comprised of all the messages produced by the actor; see 5.1 Outbox.
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
119
|
119
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
120 However, none of the provided examples in the [activitystreams-test-documents repository]() does in fact have these properties"
|
120 With one argument, will recognise plain collections and ordered collections,
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
121 [x]
|
121 but (currently) not collection pages."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="partial" title="7 out of 21 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
122 (and
|
122 ([x ^String object-type]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="3 out of 3 forms covered">
|
<span class="partial" title="10 out of 11 forms covered">
|
||||||
123 (object? x)
|
123 (let [items (or (:items x) (:orderedItems x))]
|
||||||
|
</span><br/>
|
||||||
|
<span class="partial" title="14 out of 17 forms covered">
|
||||||
|
124 (and
|
||||||
|
</span><br/>
|
||||||
|
<span class="partial" title="5 out of 6 forms covered">
|
||||||
|
125 (cond
|
||||||
|
</span><br/>
|
||||||
|
<span class="partial" title="3 out of 8 forms covered">
|
||||||
|
126 (:items x) (nil? (:orderedItems x))
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="8 out of 8 forms covered">
|
||||||
|
127 (:orderedItems x) (nil? (:items x)) ;; can't have both properties
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="5 out of 5 forms covered">
|
<span class="covered" title="5 out of 5 forms covered">
|
||||||
124 (has-context? x)
|
128 (integer? (:totalItems x)) true ;; can have neither, provided it has totalItems.
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 6 forms covered">
|
|
||||||
125 (uri? (URI. (:inbox x)))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 6 forms covered">
|
|
||||||
126 (uri? (URI. (:outbox x)))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 7 forms covered">
|
|
||||||
127 (actor-type? (:type x))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
128 true))
|
129 :else false)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="covered" title="3 out of 3 forms covered">
|
||||||
129
|
130 (object? x)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="5 out of 5 forms covered">
|
||||||
130 (defn actor-or-uri?
|
131 (= (:type x) object-type)
|
||||||
|
</span><br/>
|
||||||
|
<span class="partial" title="2 out of 3 forms covered">
|
||||||
|
132 (if items
|
||||||
|
</span><br/>
|
||||||
|
<span class="partial" title="10 out of 12 forms covered">
|
||||||
|
133 (and (coll? items)
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
|
134 (every? object? items) ;; if there are items, they must form a
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
131 "`true` if `x` is either a URI or an actor.
|
135 ;; collection of objects.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
132
|
136 true)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
133 **TODO**: I need to decide about whether to reify referenced objects
|
137 true) ;; but it's OK if there aren't.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
134 before validation or after. After reification, every reference to an actor
|
138 true)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
135 *must be* to an actor object, but before, may only be to a URI pointing to
|
139 ;; test for totalItems not done here, because collection pages don't
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
136 one."
|
140 ;; have it.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
137 [x]
|
141 ))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
138 (and
|
142 ([x]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 9 forms covered">
|
<span class="not-covered" title="0 out of 9 forms covered">
|
||||||
139 (cond (string? x) (uri? (URI. x))
|
143 (and
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 3 forms covered">
|
<span class="not-covered" title="0 out of 10 forms covered">
|
||||||
140 :else (actor? x))
|
144 (or (collection? x "Collection")
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
141 true))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
142
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
143 (defn activity?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
144 "`true` iff `x` quacks like an activity, else false."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
145 [x]
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 2 forms covered">
|
<span class="not-covered" title="0 out of 2 forms covered">
|
||||||
146 (try
|
145 (collection? x "OrderedCollection"))
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 28 forms covered">
|
|
||||||
147 (and (object? x)
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
<span class="not-covered" title="0 out of 5 forms covered">
|
||||||
148 (has-context? x)
|
146 (integer? (:totalItems x))
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
|
||||||
149 (string? (:summary x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
|
||||||
150 (actor-or-uri? (:actor x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 7 forms covered">
|
|
||||||
151 (verb-type? (:type x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 15 forms covered">
|
|
||||||
152 (or (object? (:object x)) (uri? (URI. (:object x))))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
153 true)
|
147 true)))
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
154 (catch URISyntaxException _ false)))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
155
|
148
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
156 (defn link?
|
149 (defn unordered-collection?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
157 "`true` iff `x` quacks like a link, else false."
|
150 "`true` iff `x` quacks like an unordered collection, else `false`."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
158 [x]
|
151 [x]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 16 forms covered">
|
<span class="not-covered" title="0 out of 18 forms covered">
|
||||||
159 (and (object? x)
|
152 (and (collection? x "Collection") (integer? (:totalItems x)) true))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
160 (= (:type x) "Link")
|
153
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 6 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
161 (uri? (URI. (:href x)))
|
154 (defn ordered-collection?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
162 true))
|
155 "`true` iff `x` quacks like an ordered collection, else `false`."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
156 [x]
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 18 forms covered">
|
||||||
|
157 (and (collection? x "OrderedCollection") (integer? (:totalItems x)) true))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
158
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
159 (defn collection-page?
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
160 "`true` iff `x` quacks like a page in a paged collection, else `false`."
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
161 [x]
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-covered" title="0 out of 4 forms covered">
|
||||||
|
162 (collection? x "CollectionPage"))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
163
|
163
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
164 (defn link-or-uri?
|
164 (defn ordered-collection-page?
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
165 "`true` iff `x` is either a URI or a link, else false.
|
165 "`true` iff `x` quacks like a page in an ordered paged collection, else `false`."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
166
|
166 [x]
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
167 There are several points in the specification where e.g. the `:image`
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
168 property (if present) may be either a link or a URI."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
169 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
|
||||||
170 (and
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 9 forms covered">
|
|
||||||
171 (cond (string? x) (uri? (URI. x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 3 forms covered">
|
|
||||||
172 :else (link? x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
173 true))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
174
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
175 (defn collection?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
176 "`true` iff `x` quacks like a collection of type `object-type`, else `false`.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
177
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
178 With one argument, will recognise plain collections and ordered collections,
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
179 but (currently) not collection pages."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
180 ([x ^String object-type]
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="10 out of 11 forms covered">
|
|
||||||
181 (let [items (or (:items x) (:orderedItems x))]
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="14 out of 17 forms covered">
|
|
||||||
182 (and
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="5 out of 6 forms covered">
|
|
||||||
183 (cond
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="3 out of 8 forms covered">
|
|
||||||
184 (:items x) (nil? (:orderedItems x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="8 out of 8 forms covered">
|
|
||||||
185 (:orderedItems x) (nil? (:items x)) ;; can't have both properties
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="5 out of 5 forms covered">
|
|
||||||
186 (integer? (:totalItems x)) true ;; can have neither, provided it has totalItems.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
187 :else false)
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="3 out of 3 forms covered">
|
|
||||||
188 (object? x)
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="5 out of 5 forms covered">
|
|
||||||
189 (= (:type x) object-type)
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="2 out of 3 forms covered">
|
|
||||||
190 (if items
|
|
||||||
</span><br/>
|
|
||||||
<span class="partial" title="10 out of 12 forms covered">
|
|
||||||
191 (and (coll? items)
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
192 (every? object? items) ;; if there are items, they must form a
|
167 (collection? x "OrderedCollectionPage"))
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
193 ;; collection of objects.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
194 true)
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
195 true) ;; but it's OK if there aren't.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
196 true)
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
197 ;; test for totalItems not done here, because collection pages don't
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
198 ;; have it.
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
199 ))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
200 ([x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 9 forms covered">
|
|
||||||
201 (and
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 10 forms covered">
|
|
||||||
202 (or (collection? x "Collection")
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 2 forms covered">
|
|
||||||
203 (collection? x "OrderedCollection"))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 5 forms covered">
|
|
||||||
204 (integer? (:totalItems x))
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
205 true)))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
206
|
168
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
207 (defn unordered-collection?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
208 "`true` iff `x` quacks like an unordered collection, else `false`."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
209 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 18 forms covered">
|
|
||||||
210 (and (collection? x "Collection") (integer? (:totalItems x)) true))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
211
|
169
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
212 (defn ordered-collection?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
213 "`true` iff `x` quacks like an ordered collection, else `false`."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
214 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 18 forms covered">
|
|
||||||
215 (and (collection? x "OrderedCollection") (integer? (:totalItems x)) true))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
216
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
217 (defn collection-page?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
218 "`true` iff `x` quacks like a page in a paged collection, else `false`."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
219 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-covered" title="0 out of 4 forms covered">
|
|
||||||
220 (collection? x "CollectionPage"))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
221
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
|
||||||
222 (defn ordered-collection-page?
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
223 "`true` iff `x` quacks like a page in an ordered paged collection, else `false`."
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
224 [x]
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
|
||||||
225 (collection? x "OrderedCollectionPage"))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
226
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
227
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -10,17 +10,65 @@
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
002
|
002
|
||||||
</span><br/>
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
003 ;;; Copyright (C) Simon Brooke, 2022
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
004
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
005 ;;; This program is free software; you can redistribute it and/or
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
006 ;;; modify it under the terms of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
007 ;;; as published by the Free Software Foundation; either version 2
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
008 ;;; of the License, or (at your option) any later version.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
009
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
010 ;;; This program is distributed in the hope that it will be useful,
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
011 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
012 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
013 ;;; GNU General Public License for more details.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
014
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
015 ;;; You should have received a copy of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
016 ;;; along with this program; if not, write to the Free Software
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
017 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
018
|
||||||
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
003 (defn foo
|
019 (defn foo
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
004 "I don't do a whole lot."
|
020 "I don't do a whole lot."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
005 [x]
|
021 [x]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-covered" title="0 out of 4 forms covered">
|
<span class="not-covered" title="0 out of 4 forms covered">
|
||||||
006 (println x "Hello, World!"))
|
022 (println x "Hello, World!"))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -17,175 +17,163 @@
|
||||||
004 [clj-activitypub.webfinger :as webfinger]
|
004 [clj-activitypub.webfinger :as webfinger]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
005 [clj-pgp.core :as pgp]
|
005 [clj-pgp.generate :as pgp-gen]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
006 [clj-pgp.keyring :as keyring]
|
006 [clojure.walk :refer [keywordize-keys]]))
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
007 [clj-pgp.generate :as pgp-gen]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
008 [clojure.walk :refer [keywordize-keys]]
|
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
009 [clojure.pprint :refer [pprint]]))
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
010
|
007
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
011 ;;; Copyright (C) Simon Brooke, 2022
|
008 ;;; Copyright (C) Simon Brooke, 2022
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
012
|
009
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
013 ;;; This program is free software; you can redistribute it and/or
|
010 ;;; This program is free software; you can redistribute it and/or
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
014 ;;; modify it under the terms of the GNU General Public License
|
011 ;;; modify it under the terms of the GNU General Public License
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
015 ;;; as published by the Free Software Foundation; either version 2
|
012 ;;; as published by the Free Software Foundation; either version 2
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
016 ;;; of the License, or (at your option) any later version.
|
013 ;;; of the License, or (at your option) any later version.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
017
|
014
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
018 ;;; This program is distributed in the hope that it will be useful,
|
015 ;;; This program is distributed in the hope that it will be useful,
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
019 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
016 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
020 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
017 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
021 ;;; GNU General Public License for more details.
|
018 ;;; GNU General Public License for more details.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
022
|
019
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
023 ;;; You should have received a copy of the GNU General Public License
|
020 ;;; You should have received a copy of the GNU General Public License
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
024 ;;; along with this program; if not, write to the Free Software
|
021 ;;; along with this program; if not, write to the Free Software
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
025 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
022 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
023
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
024 ;;; Use any ActivityPub account handle you like - for example, your own
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
|
025 (def account-handle "@simon_brooke@mastodon.scot")
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
026
|
026
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
027 ;;; Use any ActivityPub account handle you like - for example, your own
|
027 (def handle (activitypub/parse-account account-handle))
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="2 out of 2 forms covered">
|
|
||||||
028 (def account-handle "@simon_brooke@mastodon.scot")
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
029
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
030 (def handle (activitypub/parse-account account-handle))
|
028 (webfinger/fetch-user-id "mastodon.scot" "simon_brooke")
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
|
||||||
031 (webfinger/fetch-user-id "mastodon.scot" "simon_brooke")
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="9 out of 9 forms covered">
|
<span class="covered" title="9 out of 9 forms covered">
|
||||||
032 (apply webfinger/fetch-user-id (map handle [:domain :username]))
|
029 (apply webfinger/fetch-user-id (map handle [:domain :username]))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
033
|
030
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
034 ;;; Retrieve the account details from its home server
|
031 ;;; Retrieve the account details from its home server
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
035 ;;; (`keywordize-keys` is not necessary here but produces a more idiomatic clojure
|
032 ;;; (`keywordize-keys` is not necessary here but produces a more idiomatic clojure
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
036 ;;; data structure)
|
033 ;;; data structure)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
037 (def account
|
034 (def account
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
038 "Fetch my account to mess with"
|
035 "Fetch my account to mess with"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
039 (let [handle (activitypub/parse-account account-handle)]
|
036 (let [handle (activitypub/parse-account account-handle)]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="2 out of 2 forms covered">
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
040 (keywordize-keys
|
037 (keywordize-keys
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="2 out of 2 forms covered">
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
041 (activitypub/fetch-user
|
038 (activitypub/fetch-user
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="9 out of 9 forms covered">
|
<span class="covered" title="9 out of 9 forms covered">
|
||||||
042 (apply webfinger/fetch-user-id (map handle [:domain :username]))))))
|
039 (apply webfinger/fetch-user-id (map handle [:domain :username]))))))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
040
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
041 ;;; examine what you got back!
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="3 out of 3 forms covered">
|
||||||
|
042 (:inbox account)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
043
|
043
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
044 ;;; examine what you got back!
|
044 ;; (def rsa (pgp-gen/rsa-keypair-generator 2048))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="3 out of 3 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
045 (:inbox account)
|
045 ;; (def kp (pgp-gen/generate-keypair rsa :rsa-general))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
046
|
046
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
047
|
047 ;; how we make a public/private key pair. But this key pair is not the one
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
|
||||||
048 (def rsa (pgp-gen/rsa-keypair-generator 2048))
|
|
||||||
</span><br/>
|
|
||||||
<span class="covered" title="5 out of 5 forms covered">
|
|
||||||
049 (def kp (pgp-gen/generate-keypair rsa :rsa-general))
|
|
||||||
</span><br/>
|
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
|
||||||
050
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
051 ;; how we make a public/private key pair. But this key pair is not the one
|
048 ;; known to mastodon.scot as my key pair, so that doesn't get us very far...
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
052 ;; known to mastodon.scot as my key pair, so that doesn't get us very far...
|
049 ;; I think.
|
||||||
</span><br/>
|
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
||||||
053 ;; I think.
|
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
054 (let [rsa (pgp-gen/rsa-keypair-generator 2048)
|
050 (let [rsa (pgp-gen/rsa-keypair-generator 2048)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="4 out of 4 forms covered">
|
<span class="covered" title="4 out of 4 forms covered">
|
||||||
055 kp (pgp-gen/generate-keypair rsa :rsa-general)
|
051 kp (pgp-gen/generate-keypair rsa :rsa-general)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="2 out of 2 forms covered">
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
056 public (-> kp .getPublicKey .getEncoded)
|
052 public (-> kp .getPublicKey .getEncoded)
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="3 out of 3 forms covered">
|
<span class="covered" title="3 out of 3 forms covered">
|
||||||
057 private (-> kp .getPrivateKey .getPrivateKeyDataPacket .getEncoded)]
|
053 private (-> kp .getPrivateKey .getPrivateKeyDataPacket .getEncoded)]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="6 out of 6 forms covered">
|
<span class="covered" title="6 out of 6 forms covered">
|
||||||
058 (println (str "Public key: " public))
|
054 (println (str "Public key: " public))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="6 out of 6 forms covered">
|
<span class="covered" title="6 out of 6 forms covered">
|
||||||
059 (println (str "Private key: " private))
|
055 (println (str "Private key: " private))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
060 )
|
056 )
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
061
|
057
|
||||||
</span><br/>
|
</span><br/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -13,65 +13,146 @@
|
||||||
<span class="blank" title="0 out of 0 forms covered">
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
003
|
003
|
||||||
</span><br/>
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
004 ;;; Copyright (C) Simon Brooke, 2022
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
005
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
006 ;;; This program is free software; you can redistribute it and/or
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
007 ;;; modify it under the terms of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
008 ;;; as published by the Free Software Foundation; either version 2
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
009 ;;; of the License, or (at your option) any later version.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
010
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
011 ;;; This program is distributed in the hope that it will be useful,
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
012 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
013 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
014 ;;; GNU General Public License for more details.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
015
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
016 ;;; You should have received a copy of the GNU General Public License
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
017 ;;; along with this program; if not, write to the Free Software
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
018 ;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
019
|
||||||
|
</span><br/>
|
||||||
<span class="covered" title="1 out of 1 forms covered">
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
004 (def pid
|
020 (def get-pid
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
005 "OK, this is hacky as fuck, but I hope it works. The problem is that the
|
021 "Get the process id of the current process.
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
006 way to get the process id has changed several times during the history
|
022
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
007 of Java development, and the code for one version of Java won't even compile
|
023 OK, this is hacky as fuck, but I hope it works. The problem is that the
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
008 in a different version."
|
024 way to get the process id has changed several times during the history
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="9 out of 9 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
009 (let [java-version (read-string (apply str (take 2
|
025 of Java development, and the code for one version of Java won't even compile
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="3 out of 3 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
010 (split
|
026 in a different version."
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="2 out of 2 forms covered">
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
011 (System/getProperty "java.version")
|
027 (memoize
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
028 (fn []
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="9 out of 9 forms covered">
|
||||||
|
029 (let [java-version (read-string (apply str (take 2
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="3 out of 3 forms covered">
|
||||||
|
030 (split
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="2 out of 2 forms covered">
|
||||||
|
031 (System/getProperty "java.version")
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
012 #"[_\.]"))))
|
032 #"[_\.]"))))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="partial" title="4 out of 8 forms covered">
|
<span class="partial" title="4 out of 8 forms covered">
|
||||||
013 cmd (case java-version
|
033 cmd (case java-version
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
014 18 "(let [[_ pid hostname]
|
034 18 "(let [[_ pid hostname]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
015 (re-find
|
035 (re-find
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
016 #\"^(\\d+)@(.*)\"
|
036 #\"^(\\d+)@(.*)\"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
017 (.getName
|
037 (.getName
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
018 (java.lang.management.ManagementFactory/getRuntimeMXBean)))]
|
038 (java.lang.management.ManagementFactory/getRuntimeMXBean)))]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
019 pid)"
|
039 pid)"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
020 (19 110) "(.pid (java.lang.ProcessHandle/current))"
|
040 (19 110) "(.pid (java.lang.ProcessHandle/current))"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
021 111 "(.getPid (java.lang.management.ManagementFactory/getRuntimeMXBean))"
|
041 111 "(.getPid (java.lang.management.ManagementFactory/getRuntimeMXBean))"
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="not-tracked" title="0 out of 0 forms covered">
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
022 ":default")]
|
042 ":default")]
|
||||||
</span><br/>
|
</span><br/>
|
||||||
<span class="covered" title="5 out of 5 forms covered">
|
<span class="covered" title="5 out of 5 forms covered">
|
||||||
023 (eval (read-string cmd))))
|
043 (eval (read-string cmd))))))
|
||||||
|
</span><br/>
|
||||||
|
<span class="blank" title="0 out of 0 forms covered">
|
||||||
|
044
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="1 out of 1 forms covered">
|
||||||
|
045 (def get-hostname
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
046 "return the hostname of the current host.
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
047
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
048 Java's methods for getting the hostname are quite startlingly slow, we
|
||||||
|
</span><br/>
|
||||||
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
||||||
|
049 do not want todo this repeatedly!"
|
||||||
|
</span><br/>
|
||||||
|
<span class="covered" title="5 out of 5 forms covered">
|
||||||
|
050 (memoize (fn [] (.. java.net.InetAddress getLocalHost getHostName))))
|
||||||
</span><br/>
|
</span><br/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -96,47 +96,47 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/quack/fault_messages.clj.html">dog-and-duck.quack.fault-messages</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/quack/fault_messages.clj.html">dog-and-duck.quack.fault-messages</a></td><td class="with-bar"><div class="covered"
|
||||||
style="width:100.0%;
|
style="width:100.0%;
|
||||||
float:left;"> 19 </div></td>
|
float:left;"> 25 </div></td>
|
||||||
<td class="with-number">100.00 %</td>
|
<td class="with-number">100.00 %</td>
|
||||||
<td class="with-bar"><div class="covered"
|
<td class="with-bar"><div class="covered"
|
||||||
style="width:100.0%;
|
style="width:100.0%;
|
||||||
float:left;"> 3 </div></td>
|
float:left;"> 3 </div></td>
|
||||||
<td class="with-number">100.00 %</td>
|
<td class="with-number">100.00 %</td>
|
||||||
<td class="with-number">12</td><td class="with-number">1</td><td class="with-number">3</td>
|
<td class="with-number">31</td><td class="with-number">5</td><td class="with-number">3</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/quack/picky.clj.html">dog-and-duck.quack.picky</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/quack/picky.clj.html">dog-and-duck.quack.picky</a></td><td class="with-bar"><div class="covered"
|
||||||
style="width:94.01993355481727%;
|
style="width:53.432642487046635%;
|
||||||
float:left;"> 283 </div><div class="not-covered"
|
float:left;"> 825 </div><div class="not-covered"
|
||||||
style="width:5.980066445182724%;
|
style="width:46.567357512953365%;
|
||||||
float:left;"> 18 </div></td>
|
float:left;"> 719 </div></td>
|
||||||
<td class="with-number">94.02 %</td>
|
<td class="with-number">53.43 %</td>
|
||||||
<td class="with-bar"><div class="covered"
|
<td class="with-bar"><div class="covered"
|
||||||
style="width:92.3076923076923%;
|
style="width:53.57142857142857%;
|
||||||
float:left;"> 60 </div><div class="partial"
|
float:left;"> 135 </div><div class="partial"
|
||||||
style="width:6.153846153846154%;
|
style="width:5.158730158730159%;
|
||||||
float:left;"> 4 </div><div class="not-covered"
|
float:left;"> 13 </div><div class="not-covered"
|
||||||
style="width:1.5384615384615385%;
|
style="width:41.26984126984127%;
|
||||||
float:left;"> 1 </div></td>
|
float:left;"> 104 </div></td>
|
||||||
<td class="with-number">98.46 %</td>
|
<td class="with-number">58.73 %</td>
|
||||||
<td class="with-number">162</td><td class="with-number">11</td><td class="with-number">65</td>
|
<td class="with-number">547</td><td class="with-number">41</td><td class="with-number">252</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/quack/quack.clj.html">dog-and-duck.quack.quack</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/quack/quack.clj.html">dog-and-duck.quack.quack</a></td><td class="with-bar"><div class="covered"
|
||||||
style="width:48.36734693877551%;
|
style="width:46.56488549618321%;
|
||||||
float:left;"> 237 </div><div class="not-covered"
|
float:left;"> 122 </div><div class="not-covered"
|
||||||
style="width:51.63265306122449%;
|
style="width:53.43511450381679%;
|
||||||
float:left;"> 253 </div></td>
|
float:left;"> 140 </div></td>
|
||||||
<td class="with-number">48.37 %</td>
|
<td class="with-number">46.56 %</td>
|
||||||
<td class="with-bar"><div class="covered"
|
<td class="with-bar"><div class="covered"
|
||||||
style="width:43.28358208955224%;
|
style="width:51.02040816326531%;
|
||||||
float:left;"> 29 </div><div class="partial"
|
float:left;"> 25 </div><div class="partial"
|
||||||
style="width:16.417910447761194%;
|
style="width:12.244897959183673%;
|
||||||
float:left;"> 11 </div><div class="not-covered"
|
float:left;"> 6 </div><div class="not-covered"
|
||||||
style="width:40.298507462686565%;
|
style="width:36.734693877551024%;
|
||||||
float:left;"> 27 </div></td>
|
float:left;"> 18 </div></td>
|
||||||
<td class="with-number">59.70 %</td>
|
<td class="with-number">63.27 %</td>
|
||||||
<td class="with-number">227</td><td class="with-number">26</td><td class="with-number">67</td>
|
<td class="with-number">169</td><td class="with-number">21</td><td class="with-number">49</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/scratch/core.clj.html">dog-and-duck.scratch.core</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/scratch/core.clj.html">dog-and-duck.scratch.core</a></td><td class="with-bar"><div class="covered"
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
style="width:33.333333333333336%;
|
style="width:33.333333333333336%;
|
||||||
float:left;"> 1 </div></td>
|
float:left;"> 1 </div></td>
|
||||||
<td class="with-number">66.67 %</td>
|
<td class="with-number">66.67 %</td>
|
||||||
<td class="with-number">6</td><td class="with-number">1</td><td class="with-number">3</td>
|
<td class="with-number">22</td><td class="with-number">5</td><td class="with-number">3</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/scratch/parser.clj.html">dog-and-duck.scratch.parser</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/scratch/parser.clj.html">dog-and-duck.scratch.parser</a></td><td class="with-bar"><div class="covered"
|
||||||
|
@ -173,34 +173,34 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/scratch/scratch.clj.html">dog-and-duck.scratch.scratch</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/scratch/scratch.clj.html">dog-and-duck.scratch.scratch</a></td><td class="with-bar"><div class="covered"
|
||||||
style="width:100.0%;
|
style="width:100.0%;
|
||||||
float:left;"> 75 </div></td>
|
float:left;"> 66 </div></td>
|
||||||
<td class="with-number">100.00 %</td>
|
<td class="with-number">100.00 %</td>
|
||||||
<td class="with-bar"><div class="covered"
|
<td class="with-bar"><div class="covered"
|
||||||
style="width:100.0%;
|
style="width:100.0%;
|
||||||
float:left;"> 19 </div></td>
|
float:left;"> 17 </div></td>
|
||||||
<td class="with-number">100.00 %</td>
|
<td class="with-number">100.00 %</td>
|
||||||
<td class="with-number">61</td><td class="with-number">10</td><td class="with-number">19</td>
|
<td class="with-number">57</td><td class="with-number">9</td><td class="with-number">17</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="dog_and_duck/utils/process.clj.html">dog-and-duck.utils.process</a></td><td class="with-bar"><div class="covered"
|
<td><a href="dog_and_duck/utils/process.clj.html">dog-and-duck.utils.process</a></td><td class="with-bar"><div class="covered"
|
||||||
style="width:86.20689655172414%;
|
style="width:89.47368421052632%;
|
||||||
float:left;"> 25 </div><div class="not-covered"
|
float:left;"> 34 </div><div class="not-covered"
|
||||||
style="width:13.793103448275861%;
|
style="width:10.526315789473685%;
|
||||||
float:left;"> 4 </div></td>
|
float:left;"> 4 </div></td>
|
||||||
<td class="with-number">86.21 %</td>
|
<td class="with-number">89.47 %</td>
|
||||||
<td class="with-bar"><div class="covered"
|
<td class="with-bar"><div class="covered"
|
||||||
style="width:85.71428571428571%;
|
style="width:90.9090909090909%;
|
||||||
float:left;"> 6 </div><div class="partial"
|
float:left;"> 10 </div><div class="partial"
|
||||||
style="width:14.285714285714286%;
|
style="width:9.090909090909092%;
|
||||||
float:left;"> 1 </div></td>
|
float:left;"> 1 </div></td>
|
||||||
<td class="with-number">100.00 %</td>
|
<td class="with-number">100.00 %</td>
|
||||||
<td class="with-number">23</td><td class="with-number">1</td><td class="with-number">7</td>
|
<td class="with-number">50</td><td class="with-number">6</td><td class="with-number">11</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Totals:</td>
|
<tr><td>Totals:</td>
|
||||||
<td class="with-bar"></td>
|
<td class="with-bar"></td>
|
||||||
<td class="with-number">61.92 %</td>
|
<td class="with-number">54.39 %</td>
|
||||||
<td class="with-bar"></td>
|
<td class="with-bar"></td>
|
||||||
<td class="with-number">67.69 %</td>
|
<td class="with-number">60.38 %</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -27,6 +27,7 @@
|
||||||
<h4><a href="#severity" name="severity"></a>Severity</h4>
|
<h4><a href="#severity" name="severity"></a>Severity</h4>
|
||||||
<p>Each fault report object MUST have a <code>severity</code> field whose value MUST be one of</p>
|
<p>Each fault report object MUST have a <code>severity</code> field whose value MUST be one of</p>
|
||||||
<ol>
|
<ol>
|
||||||
|
<li><code>:info</code> things which are not actuallys fault, but issues noted during validation;</li>
|
||||||
<li><code>:minor</code> things which I consider to be faults, but which don’t actually breach the spec;</li>
|
<li><code>:minor</code> things which I consider to be faults, but which don’t actually breach the spec;</li>
|
||||||
<li><code>:should</code> instances where the spec says something SHOULD be done, which isn’t;</li>
|
<li><code>:should</code> instances where the spec says something SHOULD be done, which isn’t;</li>
|
||||||
<li><code>:must</code> instances where the spec says something MUST be done, which isn’t;</li>
|
<li><code>:must</code> instances where the spec says something MUST be done, which isn’t;</li>
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue