Skip to content

Commit 4752efb

Browse files
committed
enable processor-graph tests and fix issues
1 parent 9f057f0 commit 4752efb

File tree

526 files changed

+3576
-1751
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

526 files changed

+3576
-1751
lines changed

html2rdf/src/errors.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,20 @@ impl ProcessorGraphError for CurieOrIriError {
102102
impl ProcessorGraphError for TermOrIriError {
103103
fn message_class(&self) -> Option<PGClass> {
104104
match self {
105-
TermOrIriError::Term(_) => None,
105+
TermOrIriError::Term(err) => err.message_class(),
106106
TermOrIriError::Iri(err) => err.message_class(),
107107
}
108108
}
109109
}
110110

111111
#[derive(derive_more::Error, derive_more::Display, Debug)]
112-
#[display("Invalid term")]
113-
pub struct InvalidTerm;
112+
#[display("Invalid term: `{term}`")]
113+
pub struct InvalidTerm {
114+
pub term: String,
115+
}
116+
117+
impl ProcessorGraphError for InvalidTerm {
118+
fn message_class(&self) -> Option<PGClass> {
119+
Some(PGClass::UnresolvedTerm)
120+
}
121+
}

html2rdf/src/resolver.rs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@ impl<'r> Resolver<'r> {
144144
continue;
145145
}
146146
let prefix = prefix.to_ascii_lowercase();
147+
148+
// TODO: no fast way to see if a prefix is present, currently
149+
let test_c = Curie::new(Some(&prefix), "");
150+
if iri_mappings.expand_curie(&test_c).is_ok()
151+
|| self
152+
.constant_data
153+
.host_prefix_mappings
154+
.expand_curie(&test_c)
155+
.is_ok()
156+
{
157+
processor_graph.emit_message(
158+
PGClass::PrefixRedefinition,
159+
&format!("prefix '{prefix}' redefined via @xmlns"),
160+
None, // TODO: context
161+
);
162+
}
163+
147164
if let Err(curie::InvalidPrefixError::ReservedPrefix) =
148165
iri_mappings.add_prefix(&prefix, iri)
149166
{
@@ -161,6 +178,23 @@ impl<'r> Resolver<'r> {
161178
continue;
162179
}
163180
let prefix = prefix.to_ascii_lowercase();
181+
182+
// TODO: no fast way to see if a prefix is present, currently
183+
let test_c = Curie::new(Some(&prefix), "");
184+
if iri_mappings.expand_curie(&test_c).is_ok()
185+
|| self
186+
.constant_data
187+
.host_prefix_mappings
188+
.expand_curie(&test_c)
189+
.is_ok()
190+
{
191+
processor_graph.emit_message(
192+
PGClass::PrefixRedefinition,
193+
&format!("prefix '{prefix}' redefined via @prefix"),
194+
None, // TODO: context
195+
);
196+
}
197+
164198
if let Err(curie::InvalidPrefixError::ReservedPrefix) =
165199
iri_mappings.add_prefix(&prefix, iri)
166200
{
@@ -266,7 +300,9 @@ impl Resolver<'_> {
266300
Ok(Some(term))
267301
} else {
268302
// > Otherwise, the term has no associated IRI and MUST be ignored.
269-
Err(InvalidTerm)
303+
Err(InvalidTerm {
304+
term: term.to_string(),
305+
})
270306
}
271307
} else {
272308
// not a term

html2rdf/src/vocab.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ pub mod rdfa {
4848
oxrdf::NamedNodeRef::new_unchecked("http://www.w3.org/ns/rdfa#VocabReferenceError");
4949

5050
pub static UNRESOLVED_CURIE: oxrdf::NamedNodeRef =
51-
oxrdf::NamedNodeRef::new_unchecked("http://www.w3.org/ns/rdfa#UnresolvedCurie");
51+
oxrdf::NamedNodeRef::new_unchecked("http://www.w3.org/ns/rdfa#UnresolvedCURIE");
5252

5353
pub static UNRESOLVED_TERM: oxrdf::NamedNodeRef =
5454
oxrdf::NamedNodeRef::new_unchecked("http://www.w3.org/ns/rdfa#UnresolvedTerm");

html2rdf/tests/processor-graph.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fn invalid_blank_node_suffix_emits_warning() {
1919
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
2020
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
2121
@prefix dc: <//purl.org/dc/terms/> .
22-
_:c14n0 a rdfa:UnresolvedCurie ;
22+
_:c14n0 a rdfa:UnresolvedCURIE ;
2323
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
2424
dc:description "Invalid CURIE: [_:invalid blank] (invalid blank node suffix `invalid blank`)" .
2525
"#);
@@ -42,7 +42,7 @@ fn undefined_prefix_in_safe_curie_emits_warning() {
4242
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
4343
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
4444
@prefix dc: <//purl.org/dc/terms/> .
45-
_:c14n0 a rdfa:UnresolvedCurie ;
45+
_:c14n0 a rdfa:UnresolvedCURIE ;
4646
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
4747
dc:description "Invalid CURIE: [undefined:thing] (no such prefix defined)" .
4848
"#);
@@ -65,7 +65,7 @@ fn invalid_iri_from_curie_expansion_emits_warning() {
6565
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
6666
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
6767
@prefix dc: <//purl.org/dc/terms/> .
68-
_:c14n0 a rdfa:UnresolvedCurie ;
68+
_:c14n0 a rdfa:UnresolvedCURIE ;
6969
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
7070
dc:description "Expanding CURIE [bad:thing] resulted in an invalid IRI (Invalid IRI: <http://example.test/invalid{iri}/thing>; Invalid IRI code point '{')" .
7171
"#);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
@base <http://rdfa.info/test-suite/test-cases/rdfa1.1-lite/html5/0015.html> .
6+
@prefix rdf: <//www.w3.org/1999/02/22-rdf-syntax-ns#> .
7+
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
8+
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
9+
@prefix dc: <//purl.org/dc/terms/> .
10+
_:c14n0 a rdfa:PrefixRedefinition ;
11+
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
12+
dc:description "prefix 'dc' redefined via @prefix" .
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
@base <http://rdfa.info/test-suite/test-cases/rdfa1.1-lite/html5/0021.html> .
6+
@prefix rdf: <//www.w3.org/1999/02/22-rdf-syntax-ns#> .
7+
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
8+
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
9+
@prefix dc: <//purl.org/dc/terms/> .
10+
_:c14n0 a rdfa:PrefixRedefinition ;
11+
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
12+
dc:description "prefix 'dc' redefined via @prefix" .
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
@base <http://rdfa.info/test-suite/test-cases/rdfa1.1-lite/html5/0023.html> .
6+
@prefix rdf: <//www.w3.org/1999/02/22-rdf-syntax-ns#> .
7+
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
8+
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
9+
@prefix dc: <//purl.org/dc/terms/> .
10+
_:c14n0 a rdfa:PrefixRedefinition ;
11+
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
12+
dc:description "prefix 'dc' redefined via @prefix" .
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
@base <http://rdfa.info/test-suite/test-cases/rdfa1.1-lite/html5/0030.html> .
6+
@prefix rdf: <//www.w3.org/1999/02/22-rdf-syntax-ns#> .
7+
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
8+
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
9+
@prefix dc: <//purl.org/dc/terms/> .
10+
_:c14n0 a rdfa:PrefixRedefinition ;
11+
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
12+
dc:description "prefix 'cc' redefined via @prefix" .
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
source: html2rdf/tests/test-cases.rs
3+
expression: "utils::serialize_normalized_graph(processor_graph, base.as_str(),)"
4+
---
5+
@base <http://rdfa.info/test-suite/test-cases/rdfa1.1-lite/html5/0050.html> .
6+
@prefix rdf: <//www.w3.org/1999/02/22-rdf-syntax-ns#> .
7+
@prefix xsd: <//www.w3.org/2001/XMLSchema#> .
8+
@prefix rdfa: <//www.w3.org/ns/rdfa#> .
9+
@prefix dc: <//purl.org/dc/terms/> .
10+
_:c14n0 a rdfa:PrefixRedefinition ;
11+
dc:date "2020-01-13T12:02:00Z"^^xsd:dateTime ;
12+
dc:description "prefix 'foaf' redefined via @prefix" .

0 commit comments

Comments
 (0)