Created
April 24, 2019 08:49
-
-
Save daleharvey/6602337ee0b01e6d49ef076ddd72c3c9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const glob = require('glob'); | |
const fs = require('fs'); | |
const fetch = require('node-fetch'); | |
const GECKO_PATH = "/Users/dale/src/gecko"; | |
const EXTENSIONS_PATH = "browser/components/search/extensions"; | |
async function testUrl(url) { | |
if (!url || !/https/.test(url)) { | |
return true; | |
} | |
try { | |
let result = await fetch(url, {timeout: 5000}); | |
if (!/https/.test(result.url)) { | |
console.log("FAILED: ", url); | |
return false; | |
} | |
} catch (ex) { | |
console.log("FAILED: ", url); | |
return false; | |
} | |
return true; | |
} | |
function url(url, params) { | |
if (params) { | |
let prefix = /\?/.test(url) ? '' : '?'; | |
url += prefix + params; | |
} | |
return url; | |
} | |
(async function test() { | |
let path = `${GECKO_PATH}/${EXTENSIONS_PATH}/**/manifest.json`; | |
let files = glob.sync(path).sort(); | |
for (const file of files) { | |
let rawdata = fs.readFileSync(file); | |
let manifest = JSON.parse(rawdata); | |
let { | |
search_url, | |
search_url_get_params, | |
suggest_url, | |
suggest_url_get_params, | |
search_form, | |
} = manifest.chrome_settings_overrides.search_provider; | |
let searchUrl = url(search_url, search_url_get_params); | |
let suggestUrl = url(suggest_url, suggest_url_get_params); | |
if (!(await testUrl(searchUrl)) || | |
!(await testUrl(suggestUrl)) || | |
!(await testUrl(search_form))) { | |
console.error(`${file} failed`); | |
} | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment