// // HTMLFeedFinderTests.swift // RSFeedFinder // // Created by Brent Simmons on 8/7/16. // Copyright © 2016 Ranchero Software, LLC. All rights reserved. // import XCTest @testable import RSFeedFinder import RSParser class HTMLFeedFinderTests: XCTestCase { func parserData(_ filename: String, _ fileExtension: String, _ url: String) -> ParserData { let bundle = Bundle(for: HTMLFeedFinderTests.self) let path = bundle.path(forResource: filename, ofType: fileExtension)! let data = try! Data(contentsOf: URL(fileURLWithPath: path)) return ParserData(url: url, data: data) } func feedFinder(_ fileName: String, _ fileExtension: String, _ url: String) -> HTMLFeedFinder { let d = parserData(fileName, fileExtension, url) return HTMLFeedFinder(parserData: d) } func testPerformanceWithDaringFireball() { let d = parserData("DaringFireball", "html", "https://daringfireball.net/") self.measure { let finder = HTMLFeedFinder(parserData: d) let _ = finder.feedSpecifiers } } func testFindingBestFeedWithDaringFireBall() { let finder = feedFinder("DaringFireball", "html", "https://daringfireball.net/") let feedSpecifiers = finder.feedSpecifiers let bestFeedSpecifier = FeedSpecifier.bestFeed(in: feedSpecifiers)! XCTAssert(bestFeedSpecifier.urlString == "https://daringfireball.net/feeds/json") } func testFindingBestFeedWithFurbo() { let finder = feedFinder("furbo", "html", "http://furbo.org") let feedSpecifiers = finder.feedSpecifiers let bestFeedSpecifier = FeedSpecifier.bestFeed(in: feedSpecifiers)! XCTAssert(bestFeedSpecifier.urlString == "http://furbo.org/feed/") } func testFindingBestFeedWithIndieStack() { let finder = feedFinder("indiestack", "html", "http://indiestack.com/") let feedSpecifiers = finder.feedSpecifiers let bestFeedSpecifier = FeedSpecifier.bestFeed(in: feedSpecifiers)! XCTAssert(bestFeedSpecifier.urlString == "http://indiestack.com/feed/json/") } }