Skip to content

Instantly share code, notes, and snippets.

@daleharvey
Created April 24, 2019 08:49
Show Gist options
  • Save daleharvey/6602337ee0b01e6d49ef076ddd72c3c9 to your computer and use it in GitHub Desktop.
Save daleharvey/6602337ee0b01e6d49ef076ddd72c3c9 to your computer and use it in GitHub Desktop.
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