benchpress
Version:
Benchpress - a framework for e2e performance tests
38 lines • 5.42 kB
JavaScript
var q = require('q');
var FirefoxProfile = require('firefox-profile');
var jpm = require('jpm/lib/xpi');
var pathUtil = require('path');
var PERF_ADDON_PACKAGE_JSON_DIR = '..';
exports.getAbsolutePath = function (path) {
var normalizedPath = pathUtil.normalize(path);
if (pathUtil.resolve(normalizedPath) == normalizedPath) {
// Already absolute path
return normalizedPath;
}
else {
return pathUtil.join(__dirname, normalizedPath);
}
};
exports.getFirefoxProfile = function (extensionPath) {
var deferred = q.defer();
var firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtensions([extensionPath], () => {
firefoxProfile.encoded(encodedProfile => {
var multiCapabilities = [{ browserName: 'firefox', firefox_profile: encodedProfile }];
deferred.resolve(multiCapabilities);
});
});
return deferred.promise;
};
exports.getFirefoxProfileWithExtension = function () {
var absPackageJsonDir = pathUtil.join(__dirname, PERF_ADDON_PACKAGE_JSON_DIR);
var packageJson = require(pathUtil.join(absPackageJsonDir, 'package.json'));
var savedCwd = process.cwd();
process.chdir(absPackageJsonDir);
return jpm(packageJson)
.then(xpiPath => {
process.chdir(savedCwd);
return exports.getFirefoxProfile(xpiPath);
});
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmaW5nX3BsdWdpbl93cmFwcGVyLW91dHB1dF9wYXRoLXhCTElCclZSLnRtcC9iZW5jaHByZXNzL3NyYy9maXJlZm94X2V4dGVuc2lvbi9saWIvdGVzdF9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNqQyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFL0IsSUFBSSwyQkFBMkIsR0FBRyxJQUFJLENBQUM7QUFFdkMsT0FBTyxDQUFDLGVBQWUsR0FBRyxVQUFTLElBQUk7SUFDckMsSUFBSSxjQUFjLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsd0JBQXdCO1FBQ3hCLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixPQUFPLENBQUMsaUJBQWlCLEdBQUcsVUFBUyxhQUFhO0lBQ2hELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV6QixJQUFJLGNBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQzFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUM1QyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWM7WUFDbkMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFDLENBQUMsQ0FBQztZQUNwRixRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLE9BQU8sQ0FBQyw4QkFBOEIsR0FBRztJQUN2QyxJQUFJLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUUsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUU1RSxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1NBQ2xCLElBQUksQ0FBQyxPQUFPO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHEgPSByZXF1aXJlKCdxJyk7XG52YXIgRmlyZWZveFByb2ZpbGUgPSByZXF1aXJlKCdmaXJlZm94LXByb2ZpbGUnKTtcbnZhciBqcG0gPSByZXF1aXJlKCdqcG0vbGliL3hwaScpO1xudmFyIHBhdGhVdGlsID0gcmVxdWlyZSgncGF0aCcpO1xuXG52YXIgUEVSRl9BRERPTl9QQUNLQUdFX0pTT05fRElSID0gJy4uJztcblxuZXhwb3J0cy5nZXRBYnNvbHV0ZVBhdGggPSBmdW5jdGlvbihwYXRoKSB7XG4gIHZhciBub3JtYWxpemVkUGF0aCA9IHBhdGhVdGlsLm5vcm1hbGl6ZShwYXRoKTtcbiAgaWYgKHBhdGhVdGlsLnJlc29sdmUobm9ybWFsaXplZFBhdGgpID09IG5vcm1hbGl6ZWRQYXRoKSB7XG4gICAgLy8gQWxyZWFkeSBhYnNvbHV0ZSBwYXRoXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXRoVXRpbC5qb2luKF9fZGlybmFtZSwgbm9ybWFsaXplZFBhdGgpO1xuICB9XG59O1xuXG5leHBvcnRzLmdldEZpcmVmb3hQcm9maWxlID0gZnVuY3Rpb24oZXh0ZW5zaW9uUGF0aCkge1xuICB2YXIgZGVmZXJyZWQgPSBxLmRlZmVyKCk7XG5cbiAgdmFyIGZpcmVmb3hQcm9maWxlID0gbmV3IEZpcmVmb3hQcm9maWxlKCk7XG4gIGZpcmVmb3hQcm9maWxlLmFkZEV4dGVuc2lvbnMoW2V4dGVuc2lvblBhdGhdLCAoKSA9PiB7XG4gICAgZmlyZWZveFByb2ZpbGUuZW5jb2RlZChlbmNvZGVkUHJvZmlsZSA9PiB7XG4gICAgICB2YXIgbXVsdGlDYXBhYmlsaXRpZXMgPSBbe2Jyb3dzZXJOYW1lOiAnZmlyZWZveCcsIGZpcmVmb3hfcHJvZmlsZTogZW5jb2RlZFByb2ZpbGV9XTtcbiAgICAgIGRlZmVycmVkLnJlc29sdmUobXVsdGlDYXBhYmlsaXRpZXMpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZGVmZXJyZWQucHJvbWlzZTtcbn07XG5cbmV4cG9ydHMuZ2V0RmlyZWZveFByb2ZpbGVXaXRoRXh0ZW5zaW9uID0gZnVuY3Rpb24oKSB7XG4gIHZhciBhYnNQYWNrYWdlSnNvbkRpciA9IHBhdGhVdGlsLmpvaW4oX19kaXJuYW1lLCBQRVJGX0FERE9OX1BBQ0tBR0VfSlNPTl9ESVIpO1xuICB2YXIgcGFja2FnZUpzb24gPSByZXF1aXJlKHBhdGhVdGlsLmpvaW4oYWJzUGFja2FnZUpzb25EaXIsICdwYWNrYWdlLmpzb24nKSk7XG5cbiAgdmFyIHNhdmVkQ3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgcHJvY2Vzcy5jaGRpcihhYnNQYWNrYWdlSnNvbkRpcik7XG5cbiAgcmV0dXJuIGpwbShwYWNrYWdlSnNvbilcbiAgICAgIC50aGVuKHhwaVBhdGggPT4ge1xuICAgICAgICBwcm9jZXNzLmNoZGlyKHNhdmVkQ3dkKTtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuZ2V0RmlyZWZveFByb2ZpbGUoeHBpUGF0aCk7XG4gICAgICB9KTtcbn07XG4iXX0=