Use HTMLOrderedDictionary when cloning element's attributes

This commit is contained in:
iska
2018-03-21 22:19:24 +01:00
parent 12af838fa2
commit b7bf9d2b04
3 changed files with 21 additions and 0 deletions
+7
View File
@@ -154,4 +154,11 @@
return [_keys countByEnumeratingWithState:state objects:buffer count:len];
}
#pragma mark - Copying
- (id)mutableCopy
{
return [[HTMLOrderedDictionary alloc] initWithDictionary:self];
}
@end
+2
View File
@@ -24,3 +24,5 @@
#import "HTMLKitDOMExceptions.h"
#import "HTMLNamespaces.h"
#import "HTMLQuirksMode.h"
#import "HTMLOrderedDictionary.h"
+12
View File
@@ -543,6 +543,18 @@
XCTAssertEqualObjects(clone.firstChild.firstChild.asElement.attributes, innerLevel2.attributes);
}
- (void)testDeepCloneElementAttributes {
HTMLElement *div = [[HTMLElement alloc] initWithTagName:@"div"
attributes:@{@"id": @"outer",
@"class": @"green",
@"data": @"test"}];
HTMLElement *clone = [div cloneNodeDeep:YES];
XCTAssertEqualObjects(clone.attributes, div.attributes);
XCTAssertTrue([clone.attributes isKindOfClass:[HTMLOrderedDictionary class]]);
}
#pragma mark - Bug Fixes
- (void)testBugFix_Issue_20 {