diff --git a/Sources/HTMLNode.m b/Sources/HTMLNode.m index d948ff9..6038db3 100644 --- a/Sources/HTMLNode.m +++ b/Sources/HTMLNode.m @@ -127,7 +127,7 @@ NSString * const RemoveChildNode = @"-removeChildNode:"; - (HTMLElement *)nextSiblingElement { - HTMLNode *node = self.previousSibling; + HTMLNode *node = self.nextSibling; while (node && node.nodeType != HTMLNodeElement) { node = node.nextSibling; } diff --git a/Tests/HTMLKitTests/HTMLNodeIteratorTests.m b/Tests/HTMLKitTests/HTMLNodeIteratorTests.m index 71f1b70..fe51ef4 100644 --- a/Tests/HTMLKitTests/HTMLNodeIteratorTests.m +++ b/Tests/HTMLKitTests/HTMLNodeIteratorTests.m @@ -608,4 +608,19 @@ static HTMLNode * (^ LastDescendant)(HTMLNode *) = ^ HTMLNode * (HTMLNode *node) XCTAssertTrue([element.elementId isEqualToString:divId]); } +- (void)testBugFix_Issue_28 { + HTMLDocument *document = self.document; + HTMLNodeIterator *iterator = document.body.nodeIterator; + + [iterator nextNode]; // Reference node: + + HTMLElement *span = (HTMLElement*)iterator.nextNode; // + NSString *spanTag = @"span"; + XCTAssertTrue([span.tagName isEqualToString:spanTag]); + + HTMLElement *paragraph = span.nextSiblingElement; //

+ NSString *paragraphTag = @"p"; + XCTAssertTrue([paragraph.tagName isEqualToString:paragraphTag]); +} + @end