14 Commits

Author SHA1 Message Date
iska aaee85909b Merge branch 'release/2.0.4' 2017-04-03 22:21:42 +02:00
iska 8d3f24ef8b Bump HTMLKit version to 2.0.4 2017-04-03 22:21:15 +02:00
iska b652935739 Update podspec for 2.0.4 2017-04-03 22:20:51 +02:00
iska 601c83a51f Update jazzy.yaml for 2.0.4 2017-04-03 22:20:42 +02:00
iska 774ac35bbb Add Changelog entry for HTMLKit 2.0.4 2017-04-03 22:20:05 +02:00
iska 9651d12fd0 Deprecate for old HTMLRange’s initializers with typo 2017-03-31 17:23:30 +02:00
Iskandar Abudiab 0899a4013d Merge pull request #11 from tali/develop
Fix typo in HTMLRange's initializer

initWithDowcument: -> initWithDocument
2017-03-31 17:19:16 +02:00
Martin Waitz 22de41d912 Fix typo Dowcument -> Document 2017-03-31 08:53:11 +02:00
Iskandar Abudiab 2f47e733bd Merge pull request #8 from tali/develop
Fix tests for Swift 3.1
2017-03-14 00:13:36 +01:00
Martin Waitz 36f5df015a [Tests] fix includes 2017-03-13 23:11:16 +01:00
Martin Waitz bbc5467b33 [modulemap] use textual header for character definitions
Both CSSCodePoints.h and HTMLTokenizerCharacters.h define the same
symbols.
They are never included by the same compilation unit, but when they are
compiled into the same module, they create a conflict.
Fix this conflict by using `textual header`.
2017-03-13 23:11:16 +01:00
iska 7ef19f5e20 Ignore performance tests
For now these are ignored for faster testing/iterations.
The test fixture should also be replaced with several smaller
and more representative ones, since it is relatively big.
2017-03-13 23:04:58 +01:00
iska a102f5cd7d Fix loading of test resources
Building and testing the project via Xcode copies the resources into
the testing bundle, which is not the case for SwiftPM. Hence the helper
method, that tries loading the resource from the bundle first. If it is
nil then the resource is loaded from the test module path directly.
2017-03-13 23:01:53 +01:00
iska 40b057b569 Merge branch 'release/2.0.3' into develop 2017-03-06 00:31:03 +01:00
16 changed files with 158 additions and 103 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
module: HTMLKit
module_version: 2.0.3
module_version: 2.0.4
author: Iskandar Abudiab
author_url: https://twitter.com/iabudiab
github_url: https://github.com/iabudiab/HTMLKit
+13
View File
@@ -1,5 +1,18 @@
# Change Log
## [2.0.4](https://github.com/iabudiab/HTMLKit/releases/tag/2.0.4)
Released on 2017.04.2
### Fixed
- Testing with Swift 3.1
- Fixed by @tali in PR #8
### Deprecated
- `HTMLRange` initializers with typo
- `initWithDowcument:startContainer:startOffset:endContainer:endOffset:`
## [2.0.3](https://github.com/iabudiab/HTMLKit/releases/tag/2.0.3)
Released on 2017.03.6
+1 -1
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "HTMLKit"
s.version = "2.0.3"
s.version = "2.0.4"
s.summary = "HTMLKit, an Objective-C framework for your everyday HTML needs."
s.license = "MIT"
s.homepage = "https://github.com/iabudiab/HTMLKit"
+1 -1
View File
@@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.0.3</string>
<string>2.0.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
+19 -5
View File
@@ -23,14 +23,28 @@
#pragma mark - Lifecycle
- (instancetype)initWithDocument:(HTMLDocument *)document
{
return [self initWithDocument:document startContainer:document startOffset:0 endContainer:document endOffset:0];
}
- (instancetype)initWithDowcument:(HTMLDocument *)document
{
return [self initWithDowcument:document startContainer:document startOffset:0 endContainer:document endOffset:0];
return [self initWithDocument:document startContainer:document startOffset:0 endContainer:document endOffset:0];
}
- (instancetype)initWithDowcument:(HTMLDocument *)document
startContainer:(HTMLNode *)startContainer startOffset:(NSUInteger)startOffset
endContainer:(HTMLNode *)endContainer endOffset:(NSUInteger)endOffset
{
return [self initWithDocument:document
startContainer:startContainer startOffset:startOffset
endContainer:endContainer endOffset:endOffset];
}
- (instancetype)initWithDocument:(HTMLDocument *)document
startContainer:(HTMLNode *)startContainer startOffset:(NSUInteger)startOffset
endContainer:(HTMLNode *)endContainer endOffset:(NSUInteger)endOffset
{
self = [super init];
if (self) {
@@ -517,7 +531,7 @@ NS_INLINE HTMLCharacterData * CloneCharachterData(HTMLNode *node, NSUInteger sta
HTMLNode *clone = [firstPartiallyContainedChild copy];
[fragment appendNode:clone];
HTMLRange *subRange = [[HTMLRange alloc] initWithDowcument:_ownerDocument
HTMLRange *subRange = [[HTMLRange alloc] initWithDocument:_ownerDocument
startContainer:_startContainer
startOffset:_startOffset
endContainer:firstPartiallyContainedChild
@@ -537,7 +551,7 @@ NS_INLINE HTMLCharacterData * CloneCharachterData(HTMLNode *node, NSUInteger sta
HTMLNode *clone = [lastPartiallyContainedChild copy];
[fragment appendNode:clone];
HTMLRange *subRange = [[HTMLRange alloc] initWithDowcument:_ownerDocument
HTMLRange *subRange = [[HTMLRange alloc] initWithDocument:_ownerDocument
startContainer:lastPartiallyContainedChild
startOffset:0
endContainer:_endContainer
@@ -580,7 +594,7 @@ NS_INLINE HTMLCharacterData * CloneCharachterData(HTMLNode *node, NSUInteger sta
HTMLNode *clone = [firstPartiallyContainedChild copy];
[fragment appendNode:clone];
HTMLRange *subRange = [[HTMLRange alloc] initWithDowcument:_ownerDocument
HTMLRange *subRange = [[HTMLRange alloc] initWithDocument:_ownerDocument
startContainer:_startContainer
startOffset:_startOffset
endContainer:firstPartiallyContainedChild
@@ -601,7 +615,7 @@ NS_INLINE HTMLCharacterData * CloneCharachterData(HTMLNode *node, NSUInteger sta
HTMLNode *clone = [lastPartiallyContainedChild copy];
[fragment appendNode:clone];
HTMLRange *subRange = [[HTMLRange alloc] initWithDowcument:_ownerDocument
HTMLRange *subRange = [[HTMLRange alloc] initWithDocument:_ownerDocument
startContainer:lastPartiallyContainedChild
startOffset:0
endContainer:_endContainer
+15 -2
View File
@@ -81,7 +81,12 @@ typedef NS_ENUM(unsigned short, HTMLRangeComparisonMethod)
@param document The HTML doucment for which the range will be constructed.
@return A new HTML Range instance.
*/
- (instancetype)initWithDowcument:(HTMLDocument *)document;
- (instancetype)initWithDocument:(HTMLDocument *)document;
/**
Deprecated due to typo.
*/
- (instancetype)initWithDowcument:(HTMLDocument *)document __attribute__((deprecated("Replaced by -initWithDocument:")));
/**
Initializes a new range instance for the given document and boundaries.
@@ -93,9 +98,17 @@ typedef NS_ENUM(unsigned short, HTMLRangeComparisonMethod)
@param endOffset The offset of the end boundary
@return A new HTML Range instance.
*/
- (instancetype)initWithDocument:(HTMLDocument *)document
startContainer:(HTMLNode *)startContainer startOffset:(NSUInteger)startOffset
endContainer:(HTMLNode *)endContainer endOffset:(NSUInteger)endOffset;
/**
Deprecated due to typo.
*/
- (instancetype)initWithDowcument:(HTMLDocument *)document
startContainer:(HTMLNode *)startContainer startOffset:(NSUInteger)startOffset
endContainer:(HTMLNode *)endContainer endOffset:(NSUInteger)endOffset;
endContainer:(HTMLNode *)endContainer endOffset:(NSUInteger)endOffset
__attribute__((deprecated("Replaced by -initWithDocument:startContainer:startOffset:endContainer:endOffset:")));
/**
Sets the start boundary.
+2 -2
View File
@@ -5,7 +5,7 @@ module HTMLKit {
export *
explicit module Private {
header "CSSCodePoints.h"
textual header "CSSCodePoints.h"
header "CSSInputStream.h"
header "HTMLCharacterToken.h"
header "HTMLCommentToken.h"
@@ -22,7 +22,7 @@ module HTMLKit {
header "HTMLTagToken.h"
header "HTMLToken.h"
header "HTMLTokenizer.h"
header "HTMLTokenizerCharacters.h"
textual header "HTMLTokenizerCharacters.h"
header "HTMLTokenizerEntities.h"
header "HTMLTokenizerStates.h"
header "HTMLTokens.h"
+1 -1
View File
@@ -7,7 +7,7 @@
//
#import <XCTest/XCTest.h>
#import <HTMLKit/HTMLKit.h>
#import "HTMLKit.h"
#import "CSSSelectorTest.h"
#import "CSSSelectorParser.h"
+2 -2
View File
@@ -11,6 +11,7 @@
#import "HTMLDocument.h"
#import "HTMLElement.h"
#import "CSSSelectors.h"
#import "HTMLKitTestUtil.h"
static NSString * const CSSTests = @"css-tests";
@@ -18,8 +19,7 @@ static NSString * const CSSTests = @"css-tests";
+ (NSArray *)loadCSSSelectorTests
{
NSString *path = [[NSBundle bundleForClass:self.class] resourcePath];
path = [path stringByAppendingPathComponent:CSSTests];
NSString *path = [HTMLKitTestUtil pathForFixture:CSSTests ofType:nil inDirectory:nil];
NSMutableArray *tests = [NSMutableArray array];
NSArray *testFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
+5 -6
View File
@@ -7,23 +7,22 @@
//
#import "HTML5LibTokenizerTest.h"
#import "HTMLOrderedDictionary.h"
#import "HTMLTokenizerStates.h"
#import "HTMLTokens.h"
#import "HTMLKitTestUtil.h"
static NSString * const HTML5LibTests = @"html5lib-tests";
static NSString * const TOKENIZER = @"tokenizer";
static NSString * const Tokenizer = @"tokenizer";
@implementation HTML5LibTokenizerTest
+ (NSDictionary *)loadHTML5LibTokenizerTests
{
NSString *path = [[NSBundle bundleForClass:self.class] resourcePath];
path = [path stringByAppendingPathComponent:HTML5LibTests];
path = [path stringByAppendingPathComponent:TOKENIZER];
NSMutableDictionary *testsMap = [NSMutableDictionary dictionary];
NSString *path = [HTMLKitTestUtil pathForFixture:Tokenizer ofType:nil inDirectory:HTML5LibTests];
NSArray *testFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
NSMutableDictionary *testsMap = [NSMutableDictionary dictionary];
for (NSString *testFile in testFiles) {
if (![testFile.pathExtension isEqualToString:@"test"]) {
continue;
@@ -13,6 +13,7 @@
#import "HTMLElement.h"
#import "HTMLText.h"
#import "HTMLComment.h"
#import "HTMLKitTestUtil.h"
static NSString * const HTML5LibTests = @"html5lib-tests";
static NSString * const TreeConstruction = @"tree-construction";
@@ -21,13 +22,10 @@ static NSString * const TreeConstruction = @"tree-construction";
+ (NSDictionary *)loadHTML5LibTreeConstructionTests
{
NSString *path = [[NSBundle bundleForClass:self.class] resourcePath];
path = [path stringByAppendingPathComponent:HTML5LibTests];
path = [path stringByAppendingPathComponent:TreeConstruction];
NSMutableDictionary *testsMap = [NSMutableDictionary dictionary];
NSString *path = [HTMLKitTestUtil pathForFixture:TreeConstruction ofType:nil inDirectory:HTML5LibTests];
NSArray *testFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
NSMutableDictionary *testsMap = [NSMutableDictionary dictionary];
for (NSString *testFile in testFiles) {
if (![testFile.pathExtension isEqualToString:@"dat"]) {
continue;
@@ -8,6 +8,7 @@
#import <XCTest/XCTest.h>
#import "HTMLParser.h"
#import "HTMLKitTestUtil.h"
@interface HTMLKitParserPerformance : XCTestCase
@@ -17,11 +18,9 @@
#define HTMLKIT_NO_DOM_CHECKS
- (void)testParserPerformance
- (void)_testParserPerformance
{
NSString *path = [[NSBundle bundleForClass:self.class] resourcePath];
path = [path stringByAppendingPathComponent:@"Fixtures"];
path = [path stringByAppendingPathComponent:@"HTML Standard.html"];
NSString *path = [HTMLKitTestUtil pathForFixture:@"HTML Standard" ofType:@"html" inDirectory:@"Fixtures"];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
+1
View File
@@ -12,5 +12,6 @@
+ (NSInvocation *)addTestToClass:(Class)cls withName:(NSString *)name block:(id)block;
+ (id)ivarForInstacne:(id)instance name:(NSString *)name;
+ (NSString *)pathForFixture:(NSString *)fixture ofType:(NSString *)type inDirectory:(NSString *)directory;
@end
+19
View File
@@ -32,4 +32,23 @@
return object_getIvar(instance, ivar);
}
+ (NSString *)pathForFixture:(NSString *)fixture ofType:(NSString *)type inDirectory:(NSString *)directory
{
// Try testing bundle first
NSString *path = [[NSBundle bundleForClass:self.class] pathForResource:fixture ofType:type inDirectory:directory];
if (path) {
return path;
}
path = [[@(__FILE__) stringByDeletingLastPathComponent] stringByDeletingLastPathComponent];
if (directory) {
path = [path stringByAppendingPathComponent:directory];
}
NSString *resource = type ? [NSString stringWithFormat:@"%@.%@", fixture, type] : fixture;
path = [path stringByAppendingPathComponent:resource];
return path;
}
@end
@@ -10,6 +10,7 @@
#import "HTMLTokenizer.h"
#import "HTMLTokenizerStates.h"
#import "HTMLTokens.h"
#import "HTMLKitTestUtil.h"
@interface HTMLKitTokenizerPerformance : XCTestCase
@@ -17,11 +18,9 @@
@implementation HTMLKitTokenizerPerformance
- (void)testTokenizerPerformance
- (void)_testTokenizerPerformance
{
NSString *path = [[NSBundle bundleForClass:self.class] resourcePath];
path = [path stringByAppendingPathComponent:@"Fixtures"];
path = [path stringByAppendingPathComponent:@"HTML Standard.html"];
NSString *path = [HTMLKitTestUtil pathForFixture:@"HTML Standard" ofType:@"html" inDirectory:@"Fixtures"];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
+69 -69
View File
@@ -90,7 +90,7 @@
- (void)testInitRange
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
XCTAssertEqualObjects(range.startContainer, _document);
XCTAssertEqual(range.startOffset, 0);
@@ -101,7 +101,7 @@
- (void)testSetStartBoundary
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
XCTAssertThrows([range setStartNode:[HTMLElement new] startOffset:0], @"Cannot set boundary to a node outside of the range's document");
XCTAssertThrows([range setStartNode:[HTMLDocumentType new] startOffset:0], @"DOCTYPE as range boundary is invalid");
@@ -130,7 +130,7 @@
- (void)testSetEndBoundary
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
XCTAssertThrows([range setEndNode:[HTMLDocumentType new] endOffset: 0], @"DOCTYPE as range boundary is invalid");
XCTAssertThrows([range setEndNode:_firstText endOffset:_firstText.length + 1], @"Offset is outside the boundary node");
@@ -168,7 +168,7 @@
- (void)testSetStartBeforeNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><!--Second comment--></div>
// |___|
@@ -263,7 +263,7 @@
- (void)testSetStartAfterNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><!--Second comment--></div>
// |___|
@@ -358,7 +358,7 @@
- (void)testSetEndBeforeNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><!--Second comment--></div>
// |___|
@@ -453,7 +453,7 @@
- (void)testSetEndAfterNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><!--Second comment--></div>
// |___|
@@ -548,7 +548,7 @@
- (void)testIsCollapsed
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
XCTAssertTrue(range.isCollapsed);
[range setEndNode:_title endOffset:1];
@@ -560,7 +560,7 @@
- (void)testCollapseToStart
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |______________|
@@ -579,7 +579,7 @@
- (void)testCollapseToEnd
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |______________|
@@ -598,7 +598,7 @@
- (void)testSelectNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// ----------
@@ -651,7 +651,7 @@
- (void)testSelectNodeContents
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// ----------
@@ -704,9 +704,9 @@
- (void)testCompareBoundaries
{
HTMLRange *range1 = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range1 = [[HTMLRange alloc] initWithDocument:_document];
HTMLRange *range2 = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range2 = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// ----------
@@ -776,7 +776,7 @@
- (void)testContainmentAndComparisons
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
/*********** Compare ***********/
@@ -850,7 +850,7 @@
- (void)testIntersections
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
XCTAssertFalse([range intersectsNode:[HTMLText new]]);
XCTAssertTrue([range intersectsNode:_document]);
@@ -882,7 +882,7 @@
- (void)testThatCharacterDataMutationsUpdateRangeCorrectly
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |________|
@@ -980,7 +980,7 @@
- (void)testThatCharacterDataMutationsUpdateRangeCorrectly_DifferentBoundaries
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |___________________________|
@@ -1094,7 +1094,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_BeforeStartTextNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |________|
[range selectNodeContents:_firstText];
@@ -1111,7 +1111,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_AfterEndTextNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |________|
[range selectNodeContents:_firstText];
@@ -1128,7 +1128,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_MidleSameTextNode
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |________|
[range selectNodeContents:_firstText];
@@ -1145,7 +1145,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_MidleDifferentTextNodes
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |______________________________|
[range setStartNode:_firstText startOffset:2];
@@ -1163,7 +1163,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_BeforeStartDifferentTextNodes
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |______________________________|
[range setStartNode:_firstText startOffset:6];
@@ -1181,7 +1181,7 @@
- (void)testThatTextSplitUpdateRangeCorrectly_BeforeEndDifferentTextNodes
{
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:_document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:_document];
// <h1>Title</h1><p>Hello</p><div><div>First text<!--First comment-->Second text</div><--Second comment--></div>
// |_______________________________|
[range setStartNode:_firstText startOffset:6];
@@ -1241,7 +1241,7 @@
- (void)testDeleteContents_SameTextNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1260,7 +1260,7 @@
- (void)testDeleteContents_SameTextNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNode:node];
@@ -1279,7 +1279,7 @@
- (void)testDeleteContents_SameTextNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNodeContents:node];
@@ -1299,7 +1299,7 @@
- (void)testDeleteContents_DifferentTextNodesOfSingleParent
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1318,7 +1318,7 @@
- (void)testDeleteContents_DifferentTextNodesOfDifferentParents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1337,7 +1337,7 @@
- (void)testDeleteContents_DifferentTextNodesOfDifferentParents_HavingContainedNodesInBetween
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1355,7 +1355,7 @@
- (void)testDeleteContents_SameContainerNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:0];
@@ -1374,7 +1374,7 @@
- (void)testDeleteContents_SameContainerNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNode:node];
@@ -1391,7 +1391,7 @@
- (void)testDeleteContents_SameContainerNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNodeContents:node];
@@ -1408,7 +1408,7 @@
- (void)testDeleteContents_StartContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#D1"];
[range setStartNode:start startOffset:0];
@@ -1427,7 +1427,7 @@
- (void)testDeleteContents_EndContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1448,7 +1448,7 @@
- (void)testCloneContents_SameTextNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1464,7 +1464,7 @@
- (void)testCloneContents_SameTextNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNode:node];
@@ -1478,7 +1478,7 @@
- (void)testCloneContents_SameTextNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNodeContents:node];
@@ -1492,7 +1492,7 @@
- (void)testCloneContents_DifferentTextNodesOfSingleParent
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1506,7 +1506,7 @@
- (void)testCloneContents_DifferentTextNodesOfDifferentParents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1520,7 +1520,7 @@
- (void)testCloneContents_DifferentTextNodesOfDifferentParents_HavingContainedNodesInBetween
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1536,7 +1536,7 @@
- (void)testCloneContents_SameContainerNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:0];
@@ -1550,7 +1550,7 @@
- (void)testCloneContents_SameContainerNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNode:node];
@@ -1562,7 +1562,7 @@
- (void)testCloneContents_SameContainerNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNodeContents:node];
@@ -1574,7 +1574,7 @@
- (void)testCloneContents_StartContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#D1"];
[range setStartNode:start startOffset:0];
@@ -1588,7 +1588,7 @@
- (void)testCloneContents_EndContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1604,7 +1604,7 @@
- (void)testExtractContents_SameTextNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1627,7 +1627,7 @@
- (void)testExtractContents_SameTextNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNode:node];
@@ -1650,7 +1650,7 @@
- (void)testExtractContents_SameTextNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"].firstChild;
[range selectNodeContents:node];
@@ -1674,7 +1674,7 @@
- (void)testExtractContents_DifferentTextNodesOfSingleParent
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1695,7 +1695,7 @@
- (void)testExtractContents_DifferentTextNodesOfDifferentParents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1716,7 +1716,7 @@
- (void)testExtractContents_DifferentTextNodesOfDifferentParents_HavingContainedNodesInBetween
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:3];
@@ -1738,7 +1738,7 @@
- (void)testExtractContents_SameContainerNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:0];
@@ -1759,7 +1759,7 @@
- (void)testExtractContents_SameContainerNode_Selected
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNode:node];
@@ -1778,7 +1778,7 @@
- (void)testExtractContents_SameContainerNode_SelectedContents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *node = [document querySelector:@"#P1"];
[range selectNodeContents:node];
@@ -1797,7 +1797,7 @@
- (void)testExtractContents_StartContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#D1"];
[range setStartNode:start startOffset:0];
@@ -1818,7 +1818,7 @@
- (void)testExtractContents_EndContainerIsCommonRoot
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:1];
@@ -1841,7 +1841,7 @@
- (void)testInsertNode_InvalidNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -1860,7 +1860,7 @@
- (void)testInsertNode_TextNodeStart_Begin
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:0];
@@ -1884,7 +1884,7 @@
- (void)testInsertNode_TextNodeStart_Middle
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -1908,7 +1908,7 @@
- (void)testInsertNode_NonTextNodeStart_Begin
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:0];
@@ -1932,7 +1932,7 @@
- (void)testInsertNode_NonTextNodeStart_Middle
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:2];
@@ -1956,7 +1956,7 @@
- (void)testInsertNode_NonTextNodeStart_DifferentParents
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#D1"];
[range setStartNode:start startOffset:1];
@@ -1980,7 +1980,7 @@
- (void)testSurroundContents_InvalidNode
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -1995,7 +1995,7 @@
- (void)testSurroundContents_PartiallySelectedAncestors
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -2016,7 +2016,7 @@
- (void)testSurroundContents_TextNodes
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -2037,7 +2037,7 @@
- (void)testSurroundContents_NonTextNodes
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"];
[range setStartNode:start startOffset:0];
@@ -2060,7 +2060,7 @@
- (void)testRangeStringifier
{
HTMLDocument *document = self.editingDocument;
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
HTMLNode *start = [document querySelector:@"#P1"].firstChild;
[range setStartNode:start startOffset:2];
@@ -2110,7 +2110,7 @@
// range should be autoreleased, deallocated and detached after autoreleasepool
@autoreleasepool {
HTMLRange *range = [[HTMLRange alloc] initWithDowcument:document];
HTMLRange *range = [[HTMLRange alloc] initWithDocument:document];
[range cloneContents];
XCTAssertEqual(1, ranges.count);
}