diff --git a/packages/metascraper-logo-favicon/src/index.js b/packages/metascraper-logo-favicon/src/index.js
index 7080eca46..4ec24630f 100644
--- a/packages/metascraper-logo-favicon/src/index.js
+++ b/packages/metascraper-logo-favicon/src/index.js
@@ -56,11 +56,13 @@ const getDomNodeSizes = (domNodes, attr, url) =>
.reduce((acc, domNode) => {
const relativeUrl = domNode.attribs[attr]
if (!relativeUrl) return acc
+ const normalizedUrl = normalizeUrl(url, relativeUrl)
+ if (!normalizedUrl) return acc
return [
...acc,
{
...domNode.attribs,
- url: normalizeUrl(url, relativeUrl),
+ url: normalizedUrl,
size: getSize(url, domNode.attribs.sizes)
}
]
diff --git a/packages/metascraper-logo-favicon/test/index.js b/packages/metascraper-logo-favicon/test/index.js
index 38de23dc9..c71a8da90 100644
--- a/packages/metascraper-logo-favicon/test/index.js
+++ b/packages/metascraper-logo-favicon/test/index.js
@@ -80,10 +80,7 @@ test('get the biggest icon possible', async t => {
''
])
const metadata = await metascraper({ url, html })
- t.is(
- metadata.logo,
- 'https://cdn.microlink.io/logo/favicon-196x196.png'
- )
+ t.is(metadata.logo, 'https://cdn.microlink.io/logo/favicon-196x196.png')
})
test('detect `rel="fluid-icon"`', async t => {
@@ -139,7 +136,10 @@ test('detect `rel="apple-touch-icon-precomposed"`', async t => {
''
])
const metadata = await metascraper({ url, html })
- t.is(metadata.logo, 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png')
+ t.is(
+ metadata.logo,
+ 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png'
+ )
})
test('detect `rel="apple-touch-icon"`', async t => {
@@ -149,7 +149,10 @@ test('detect `rel="apple-touch-icon"`', async t => {
''
])
const metadata = await metascraper({ url, html })
- t.is(metadata.logo, 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png')
+ t.is(
+ metadata.logo,
+ 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png'
+ )
})
test('detect `rel="shortcut icon"`', async t => {
@@ -159,10 +162,7 @@ test('detect `rel="shortcut icon"`', async t => {
''
])
const metadata = await metascraper({ url, html })
- t.is(
- metadata.logo,
- 'https://cdn.microlink.io/logo/favicon.ico'
- )
+ t.is(metadata.logo, 'https://cdn.microlink.io/logo/favicon.ico')
})
test('detect `rel="mask icon"`', async t => {
@@ -236,10 +236,18 @@ test('resolve logo using from google associated with the domain', async t => {
t.true(metadata.logo.includes('gstatic'))
})
-test('avoid data URI when data length is 0', async t => {
+test('avoid empty data URI', async t => {
const url = 'https://www.adobe.com/'
const html = ''
const metascraper = createMetascraper()
const metadata = await metascraper({ url, html })
t.is(metadata.logo, 'https://www.adobe.com/favicon.ico')
})
+
+test('avoid wrong data URI', async t => {
+ const url = 'https://www.adobe.com/'
+ const html = ''
+ const metascraper = createMetascraper()
+ const metadata = await metascraper({ url, html })
+ t.is(metadata.logo, 'https://www.adobe.com/favicon.ico')
+})
diff --git a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md
index 28704d3f2..dbc5510cd 100644
--- a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md
+++ b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md
@@ -15,7 +15,7 @@ Generated by [AVA](https://avajs.dev).
description: '[...] it’s natural to think that San Francisco’s new Nasdaq Entrepreneurial Center,…',
image: 'https://s.hdnux.com/photos/45/53/13/9876166/6/rawImage.jpg',
lang: 'en',
- logo: 'https://www.sfchronicle.com/sites/premiumsfgate/apple-touch-icon-152x152.png',
+ logo: 'https://www.sfchronicle.com/sites/premiumsfgate/apple-touch-icon-196x196.png',
publisher: 'SFGATE',
title: 'Nasdaq center in SF offers free classes for entrepreneurs',
url: 'https://www.sfchronicle.com/business/article/Nasdaq-center-in-SF-offers-free-classes-for-7338290.php',
diff --git a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap
index 3b16a5bbe..f48942308 100644
Binary files a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap and b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap differ