@@ -188,7 +188,7 @@ fn check_elements(elem1: &NodeDataRef<ElementData>,
188
188
elem : ElementInformation :: new ( elem1, path) ,
189
189
opposite_elem : ElementInformation :: new ( elem2, path) ,
190
190
} )
191
- } else if ( * e1 . attributes . borrow ( ) ) . map . len ( ) != ( * e2 . attributes . borrow ( ) ) . map . len ( ) {
191
+ } else {
192
192
let all_attributes_match =
193
193
( * e1. attributes . borrow ( ) ) . map . iter ( ) . any ( |( k, v) | {
194
194
( * e2. attributes . borrow ( ) ) . map . get ( k) != Some ( v)
@@ -217,8 +217,6 @@ fn check_elements(elem1: &NodeDataRef<ElementData>,
217
217
} else {
218
218
None
219
219
}
220
- } else {
221
- None
222
220
}
223
221
}
224
222
@@ -429,3 +427,16 @@ fn test_issue_6() {
429
427
let b = "<mark></mark><div class=\" paragraph\" ><p>chunky bacon</p></div><mark></mark>" ;
430
428
let _ = get_differences ( a, b) ;
431
429
}
430
+
431
+ #[ test]
432
+ fn test_attributes ( ) {
433
+ let a = r#"<span class="toto"></span>"# ;
434
+ let b = r#"<span class="tata"></span>"# ;
435
+ let differences = get_differences ( a, b) ;
436
+ assert_eq ! ( differences. len( ) , 1 ) ;
437
+
438
+ let a = r#"<span foo="a" class="toto"></span>"# ;
439
+ let b = r#"<span class="toto" foo="a"></span>"# ;
440
+ let differences = get_differences ( a, b) ;
441
+ assert_eq ! ( differences. len( ) , 0 ) ;
442
+ }
0 commit comments