Global Metrics
path: .metrics.mi.mi_sei
old: 29.67451221478155
new: 29.65174432412658
path: .metrics.mi.mi_original
old: 52.07678331895252
new: 52.0610018197377
path: .metrics.mi.mi_visual_studio
old: 30.45425925084943
new: 30.44503030394017
path: .metrics.halstead.volume
old: 1981.3590104863615
new: 1987.38137829939
path: .metrics.halstead.time
old: 2950.960228383942
new: 2981.072067449086
path: .metrics.halstead.N2
old: 140.0
new: 141.0
path: .metrics.halstead.level
old: 0.0373015873015873
new: 0.037037037037037035
path: .metrics.halstead.bugs
old: 0.4710163538392168
new: 0.47421512198215526
path: .metrics.halstead.difficulty
old: 26.80851063829787
new: 27.0
path: .metrics.halstead.purity_ratio
old: 1.021654486488786
new: 1.0185585638024564
path: .metrics.halstead.effort
old: 53117.284110910965
new: 53659.29721408353
path: .metrics.halstead.length
old: 329.0
new: 330.0
Spaces Data
Minimal test - lines (62, 117)
path: .spaces[1].metrics.halstead.purity_ratio
old: 1.1474343415062789
new: 1.141725712941571
path: .spaces[1].metrics.halstead.volume
old: 1122.9419688230416
new: 1128.5566786671568
path: .spaces[1].metrics.halstead.N2
old: 82.0
new: 83.0
path: .spaces[1].metrics.halstead.difficulty
old: 21.78125
new: 22.046875
path: .spaces[1].metrics.halstead.bugs
old: 0.2808700861289263
new: 0.28409201159527225
path: .spaces[1].metrics.halstead.level
old: 0.04591104734576758
new: 0.04535790219702339
path: .spaces[1].metrics.halstead.effort
old: 24459.079758426877
new: 24881.148024989972
path: .spaces[1].metrics.halstead.time
old: 1358.8377643570486
new: 1382.286001388332
path: .spaces[1].metrics.halstead.length
old: 200.0
new: 201.0
path: .spaces[1].metrics.mi.mi_original
old: 67.65602476309735
new: 67.63008954723995
path: .spaces[1].metrics.mi.mi_sei
old: 22.61889843580001
new: 22.581481828498127
path: .spaces[1].metrics.mi.mi_visual_studio
old: 39.56492676204523
new: 39.54975996914617
Code
async function testLink(
aLinkIndexOrFunction,
pinTab,
expectNewTab,
testSubFrame,
aURL = TEST_URL
) {
let appTab = BrowserTestUtils.addTab(gBrowser, aURL, { skipAnimation: true });
if (pinTab) {
gBrowser.pinTab(appTab);
}
gBrowser.selectedTab = appTab;
let browser = appTab.linkedBrowser;
await BrowserTestUtils.browserLoaded(browser);
let promise;
if (expectNewTab) {
promise = BrowserTestUtils.waitForNewTab(gBrowser).then(tab => {
let loaded = tab.linkedBrowser.documentURI.spec;
BrowserTestUtils.removeTab(tab);
return loaded;
});
} else {
promise = BrowserTestUtils.browserLoaded(browser, testSubFrame);
}
let href;
if (typeof aLinkIndexOrFunction === "function") {
ok(!browser.isRemoteBrowser, "don't pass a function for a remote browser");
let link = aLinkIndexOrFunction(browser.contentDocument);
info("Clicking " + link.textContent);
link.click();
href = link.href;
} else {
href = await SpecialPowers.spawn(
browser,
[[testSubFrame, aLinkIndexOrFunction]],
function([subFrame, index]) {
let doc = subFrame
? content.document.querySelector("iframe").contentDocument
: content.document;
let link = doc.querySelectorAll("a")[index];
info("Clicking " + link.textContent);
link.click();
return link.href;
}
);
}
info(`Waiting on load of ${href}`);
let loaded = await promise;
is(loaded, href, "loaded the right document");
BrowserTestUtils.removeTab(appTab);
}