// // JSONFeedParserTests.swift // RSParser // // Created by Brent Simmons on 6/26/17. // Copyright © 2017 Ranchero Software, LLC. All rights reserved. // import XCTest import RSParser class JSONFeedParserTests: XCTestCase { func testInessentialPerformance() { // 0.001 sec on my 2012 iMac. let d = parserData("inessential", "json", "http://inessential.com/") self.measure { let _ = try! FeedParser.parse(d) } } func testDaringFireballPerformance() { // 0.009 sec on my 2012 iMac. let d = parserData("DaringFireball", "json", "http://daringfireball.net/") self.measure { let _ = try! FeedParser.parse(d) } } func testThatEntitiesAreDecoded() { let d = parserData("DaringFireball", "json", "http://daringfireball.net/") let parsedFeed = try! FeedParser.parse(d) // https://github.com/brentsimmons/Evergreen/issues/176 // In the article titled "The Talk Show: ‘I Do Like Throwing a Baby’", // make sure the content HTML starts with "\n
New episode of America’s" // instead of "\n
New episode of America’s" — this will tell us // that entities are being decoded. for article in parsedFeed!.items { if article.title == "The Talk Show: ‘I Do Like Throwing a Baby’" { XCTAssert(article.contentHTML!.hasPrefix("\n
New episode of America’s")) return } } XCTAssert(false, "Expected to find “The Talk Show: ‘I Do Like Throwing a Baby’” article.") } func testGettingFaviconAndIconURLs() { let d = parserData("DaringFireball", "json", "http://daringfireball.net/") let parsedFeed = try! FeedParser.parse(d)! XCTAssert(parsedFeed.faviconURL == "https://daringfireball.net/graphics/favicon-64.png") XCTAssert(parsedFeed.iconURL == "https://daringfireball.net/graphics/apple-touch-icon.png") } func testAllThis() { let d = parserData("allthis", "json", "http://leancrew.com/allthis/") let parsedFeed = try! FeedParser.parse(d)! XCTAssertEqual(parsedFeed.items.count, 12) } }