summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2020-12-26 15:25:01 +0100
committerPaolo Borelli <pborelli@gnome.org>2020-12-27 11:21:22 +0100
commitdf4a1f402b2252879bb2887b9d3605357419e1d5 (patch)
tree47a01c6623efd7a6e7a4b568d04f5c751500fc37
parent569b4fae180e0fe5f0555ba1c780a6881e0b151c (diff)
downloadlibrsvg-df4a1f402b2252879bb2887b9d3605357419e1d5.tar.gz
attributes: add a simple constructor for tests
This allows removing unsafe from gradient and pattern tests.
-rw-r--r--src/gradient.rs9
-rw-r--r--src/pattern.rs5
-rw-r--r--src/xml/attributes.rs5
3 files changed, 8 insertions, 11 deletions
diff --git a/src/gradient.rs b/src/gradient.rs
index e1229db1..b005cf30 100644
--- a/src/gradient.rs
+++ b/src/gradient.rs
@@ -749,7 +749,6 @@ mod tests {
use super::*;
use crate::node::{Node, NodeData};
use markup5ever::{namespace_url, ns, QualName};
- use std::ptr;
#[test]
fn parses_spread_method() {
@@ -767,22 +766,18 @@ mod tests {
#[test]
fn gradient_resolved_from_defaults_is_really_resolved() {
- let attrs = unsafe { Attributes::new_from_xml2_attributes(0, ptr::null()) };
-
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("linearGradient")),
- attrs,
+ Attributes::new(),
));
let unresolved = borrow_element_as!(node, LinearGradient).get_unresolved(&node);
let gradient = unresolved.gradient.resolve_from_defaults();
assert!(gradient.is_resolved());
- let attrs = unsafe { Attributes::new_from_xml2_attributes(0, ptr::null()) };
-
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("radialGradient")),
- attrs,
+ Attributes::new(),
));
let unresolved = borrow_element_as!(node, RadialGradient).get_unresolved(&node);
diff --git a/src/pattern.rs b/src/pattern.rs
index 7432f06a..05d57783 100644
--- a/src/pattern.rs
+++ b/src/pattern.rs
@@ -430,15 +430,12 @@ mod tests {
use super::*;
use crate::node::NodeData;
use markup5ever::{namespace_url, ns, QualName};
- use std::ptr;
#[test]
fn pattern_resolved_from_defaults_is_really_resolved() {
- let attrs = unsafe { Attributes::new_from_xml2_attributes(0, ptr::null()) };
-
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("pattern")),
- attrs,
+ Attributes::new(),
));
let unresolved = borrow_element_as!(node, Pattern).get_unresolved(&node);
diff --git a/src/xml/attributes.rs b/src/xml/attributes.rs
index 20176835..8afa02d8 100644
--- a/src/xml/attributes.rs
+++ b/src/xml/attributes.rs
@@ -26,6 +26,11 @@ pub struct Attributes(Vec<(QualName, AttributeValue)>);
pub struct AttributesIter<'a>(slice::Iter<'a, (QualName, AttributeValue)>);
impl Attributes {
+ #[cfg(test)]
+ pub fn new() -> Attributes {
+ Attributes(Vec::new())
+ }
+
/// Creates an iterable `Attributes` from the C array of borrowed C strings.
///
/// With libxml2's SAX parser, the caller's startElementNsSAX2Func