diff --git a/Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift b/Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift
index 12343f615..4133a9a8c 100644
--- a/Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift
+++ b/Modules/Parser/Tests/ParserTests/HTMLMetadataTests.swift
@@ -7,146 +7,147 @@
//
import XCTest
+import HTMLParser
-//class HTMLMetadataTests: XCTestCase {
-//
-// func testDaringFireball() {
-//
-// let d = parserData("DaringFireball", "html", "http://daringfireball.net/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-//
-// XCTAssertEqual(metadata.favicons.first?.urlString, "http://daringfireball.net/graphics/favicon.ico?v=005")
-//
-// XCTAssertEqual(metadata.feedLinks.count, 1)
-//
-// let feedLink = metadata.feedLinks.first!
-// XCTAssertNil(feedLink.title)
-// XCTAssertEqual(feedLink.type, "application/atom+xml")
-// XCTAssertEqual(feedLink.urlString, "http://daringfireball.net/feeds/main")
-// }
-//
-// func testDaringFireballPerformance() {
-//
-// // 0.002 sec on my 2012 iMac
-// let d = parserData("DaringFireball", "html", "http://daringfireball.net/")
-// self.measure {
-// let _ = RSHTMLMetadataParser.htmlMetadata(with: d)
-// }
-// }
-//
-// func testFurbo() {
-//
-// let d = parserData("furbo", "html", "http://furbo.org/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-//
-// XCTAssertEqual(metadata.favicons.first?.urlString, "http://furbo.org/favicon.ico")
-//
-// XCTAssertEqual(metadata.feedLinks.count, 1)
-//
-// let feedLink = metadata.feedLinks.first!
-// XCTAssertEqual(feedLink.title, "Iconfactory News Feed")
-// XCTAssertEqual(feedLink.type, "application/rss+xml")
-// }
-//
-// func testFurboPerformance() {
-//
-// // 0.001 sec on my 2012 iMac
-// let d = parserData("furbo", "html", "http://furbo.org/")
-// self.measure {
-// let _ = RSHTMLMetadataParser.htmlMetadata(with: d)
-// }
-// }
-//
-// func testInessential() {
-//
-// let d = parserData("inessential", "html", "http://inessential.com/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-//
-// XCTAssertNil(metadata.favicons.first?.urlString)
-//
-// XCTAssertEqual(metadata.feedLinks.count, 1)
-// let feedLink = metadata.feedLinks.first!
-// XCTAssertEqual(feedLink.title, "RSS")
-// XCTAssertEqual(feedLink.type, "application/rss+xml")
-// XCTAssertEqual(feedLink.urlString, "http://inessential.com/xml/rss.xml")
-//
-// XCTAssertEqual(metadata.appleTouchIcons.count, 0);
-// }
-//
-// func testInessentialPerformance() {
-//
-// // 0.001 sec on my 2012 iMac
-// let d = parserData("inessential", "html", "http://inessential.com/")
-// self.measure {
-// let _ = RSHTMLMetadataParser.htmlMetadata(with: d)
-// }
-// }
-//
-// func testCocoPerformance() {
-//
-// // 0.004 sec on my 2012 iMac
-// let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
-// self.measure {
-// let _ = RSHTMLMetadataParser.htmlMetadata(with: d)
-// }
-// }
-//
-// func testSixColors() {
-//
-// let d = parserData("sixcolors", "html", "http://sixcolors.com/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-//
-// XCTAssertEqual(metadata.favicons.first?.urlString, "https://sixcolors.com/images/favicon.ico")
-//
-// XCTAssertEqual(metadata.feedLinks.count, 1);
-// let feedLink = metadata.feedLinks.first!
-// XCTAssertEqual(feedLink.title, "RSS");
-// XCTAssertEqual(feedLink.type, "application/rss+xml");
-// XCTAssertEqual(feedLink.urlString, "http://feedpress.me/sixcolors");
-//
-// XCTAssertEqual(metadata.appleTouchIcons.count, 6);
-// let icon = metadata.appleTouchIcons[3];
-// XCTAssertEqual(icon.rel, "apple-touch-icon");
-// XCTAssertEqual(icon.sizes, "120x120");
-// XCTAssertEqual(icon.urlString, "https://sixcolors.com/apple-touch-icon-120.png");
-// }
-//
-// func testSixColorsPerformance() {
-//
-// // 0.002 sec on my 2012 iMac
-// let d = parserData("sixcolors", "html", "http://sixcolors.com/")
-// self.measure {
-// let _ = RSHTMLMetadataParser.htmlMetadata(with: d)
-// }
-// }
-//
-// func testCocoOGImage() {
-//
-// let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-// let openGraphData = metadata.openGraphProperties
-// let image = openGraphData.images.first!
-// XCTAssert(image.url == "https://cdn.theatlantic.com/assets/media/img/mt/2017/11/1033101_first_full_length_trailer_arrives_pixars_coco/facebook.jpg?1511382177")
-// }
-//
-// func testCocoTwitterImage() {
-//
-// let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-// let twitterData = metadata.twitterProperties
-// let imageURL = twitterData.imageURL!
-// XCTAssert(imageURL == "https://cdn.theatlantic.com/assets/media/img/mt/2017/11/1033101_first_full_length_trailer_arrives_pixars_coco/facebook.jpg?1511382177")
-// }
-//
-// func testYouTube() {
-// // YouTube is a special case — the feed links appear after the head section, in the body section.
-// let d = parserData("YouTubeTheVolvoRocks", "html", "https://www.youtube.com/user/TheVolvorocks")
-// let metadata = RSHTMLMetadataParser.htmlMetadata(with: d)
-//
-// XCTAssertEqual(metadata.feedLinks.count, 1);
-// let feedLink = metadata.feedLinks.first!
-// XCTAssertEqual(feedLink.title, "RSS");
-// XCTAssertEqual(feedLink.type, "application/rss+xml");
-// XCTAssertEqual(feedLink.urlString, "https://www.youtube.com/feeds/videos.xml?channel_id=UCct7QF2jcWRY6dhXWMSq9LQ");
-// }
-//}
+final class HTMLMetadataTests: XCTestCase {
+
+ func testDaringFireball() {
+
+ let d = parserData("DaringFireball", "html", "http://daringfireball.net/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+
+ XCTAssertEqual(metadata.favicons?.first?.urlString, "http://daringfireball.net/graphics/favicon.ico?v=005")
+
+ XCTAssertEqual(metadata.feedLinks?.count, 1)
+
+ let feedLink: HTMLMetadataFeedLink = (metadata.feedLinks?.first!)!
+ XCTAssertNil(feedLink.title)
+ XCTAssertEqual(feedLink.type, "application/atom+xml")
+ XCTAssertEqual(feedLink.urlString, "http://daringfireball.net/feeds/main")
+ }
+
+ func testDaringFireballPerformance() {
+
+ // 0.002 sec on my 2012 iMac
+ let d = parserData("DaringFireball", "html", "http://daringfireball.net/")
+ self.measure {
+ let _ = HTMLMetadataParser.metadata(with: d)
+ }
+ }
+
+ func testFurbo() {
+
+ let d = parserData("furbo", "html", "http://furbo.org/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+
+ XCTAssertEqual(metadata.favicons?.first?.urlString, "http://furbo.org/favicon.ico")
+
+ XCTAssertEqual(metadata.feedLinks?.count, 1)
+
+ let feedLink = (metadata.feedLinks?.first!)!
+ XCTAssertEqual(feedLink.title, "Iconfactory News Feed")
+ XCTAssertEqual(feedLink.type, "application/rss+xml")
+ }
+
+ func testFurboPerformance() {
+
+ // 0.001 sec on my 2012 iMac
+ let d = parserData("furbo", "html", "http://furbo.org/")
+ self.measure {
+ let _ = HTMLMetadataParser.metadata(with: d)
+ }
+ }
+
+ func testInessential() {
+
+ let d = parserData("inessential", "html", "http://inessential.com/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+
+ XCTAssertNil(metadata.favicons?.first?.urlString)
+
+ XCTAssertEqual(metadata.feedLinks?.count, 1)
+ let feedLink = (metadata.feedLinks?.first!)!
+ XCTAssertEqual(feedLink.title, "RSS")
+ XCTAssertEqual(feedLink.type, "application/rss+xml")
+ XCTAssertEqual(feedLink.urlString, "http://inessential.com/xml/rss.xml")
+
+ XCTAssertEqual(metadata.appleTouchIcons?.count ?? 0, 0);
+ }
+
+ func testInessentialPerformance() {
+
+ // 0.001 sec on my 2012 iMac
+ let d = parserData("inessential", "html", "http://inessential.com/")
+ self.measure {
+ let _ = HTMLMetadataParser.metadata(with: d)
+ }
+ }
+
+ func testCocoPerformance() {
+
+ // 0.004 sec on my 2012 iMac
+ let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
+ self.measure {
+ let _ = HTMLMetadataParser.metadata(with: d)
+ }
+ }
+
+ func testSixColors() {
+
+ let d = parserData("sixcolors", "html", "http://sixcolors.com/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+
+ XCTAssertEqual(metadata.favicons?.first?.urlString, "https://sixcolors.com/images/favicon.ico")
+
+ XCTAssertEqual(metadata.feedLinks?.count, 1);
+ let feedLink = (metadata.feedLinks?.first!)!
+ XCTAssertEqual(feedLink.title, "RSS");
+ XCTAssertEqual(feedLink.type, "application/rss+xml");
+ XCTAssertEqual(feedLink.urlString, "http://feedpress.me/sixcolors");
+
+ XCTAssertEqual(metadata.appleTouchIcons!.count, 6);
+ let icon = metadata.appleTouchIcons![3];
+ XCTAssertEqual(icon.rel, "apple-touch-icon");
+ XCTAssertEqual(icon.sizes, "120x120");
+ XCTAssertEqual(icon.urlString, "https://sixcolors.com/apple-touch-icon-120.png");
+ }
+
+ func testSixColorsPerformance() {
+
+ // 0.002 sec on my 2012 iMac
+ let d = parserData("sixcolors", "html", "http://sixcolors.com/")
+ self.measure {
+ let _ = HTMLMetadataParser.metadata(with: d)
+ }
+ }
+
+ func testCocoOGImage() {
+
+ let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+ let openGraphData = metadata.openGraphProperties!
+ let image = openGraphData.image!
+ XCTAssert(image.url == "https://cdn.theatlantic.com/assets/media/img/mt/2017/11/1033101_first_full_length_trailer_arrives_pixars_coco/facebook.jpg?1511382177")
+ }
+
+ func testCocoTwitterImage() {
+
+ let d = parserData("coco", "html", "https://www.theatlantic.com/entertainment/archive/2017/11/coco-is-among-pixars-best-movies-in-years/546695/")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+ let twitterData = metadata.twitterProperties!
+ let imageURL = twitterData.imageURL!
+ XCTAssert(imageURL == "https://cdn.theatlantic.com/assets/media/img/mt/2017/11/1033101_first_full_length_trailer_arrives_pixars_coco/facebook.jpg?1511382177")
+ }
+
+ func testYouTube() {
+ // YouTube is a special case — the feed links appear after the head section, in the body section.
+ let d = parserData("YouTubeTheVolvoRocks", "html", "https://www.youtube.com/user/TheVolvorocks")
+ let metadata = HTMLMetadataParser.metadata(with: d)
+
+ XCTAssertEqual(metadata.feedLinks!.count, 1);
+ let feedLink = metadata.feedLinks!.first!
+ XCTAssertEqual(feedLink.title, "RSS");
+ XCTAssertEqual(feedLink.type, "application/rss+xml");
+ XCTAssertEqual(feedLink.urlString, "https://www.youtube.com/feeds/videos.xml?channel_id=UCct7QF2jcWRY6dhXWMSq9LQ");
+ }
+}