🚿 Add component upgrade/downgrade leak tests

master
Sam Saccone 2015-10-22 17:55:14 -07:00
parent 525423e7dc
commit 30cf84dfcd
3 changed files with 51 additions and 0 deletions

8
test/memory/blank.html Normal file
View File

@ -0,0 +1,8 @@
<DOCTYPE html>
<html>
<head>
<script src="../../dist/material.js"></script>
</head>
<body></body>
</html>

View File

@ -6,10 +6,33 @@ var webdriver = drool.webdriver;
var controlFlow = webdriver.promise.controlFlow();
var measureSnackbar = require('./snackbar');
var measureMenu = require('./menu');
var measureUpgradeDowngrade = require('./upgrade-downgrade');
var driver = drool.start({chromeOptions: 'no-sandbox'});
var snackbarStamps = [];
var menuStamps = [];
// commented out tests require special DOM to bootstrap
['MaterialButton',
'MaterialSpinner',
'MaterialTooltip',
// 'MaterialCheckbox',
// 'MaterialIconToggle',
'MaterialDataTable',
// 'MaterialIconToggle',
// 'MaterialLayout',
// 'MaterialMenu',
'MaterialProgress',
// 'MaterialRadio',
'MaterialRipple',
// 'MaterialSlider',
'MaterialSnackbar',
// 'MaterialSwitch',
'MaterialTabs',
// 'MaterialTextfield',
].forEach(function(v) {
measureUpgradeDowngrade([], 0, driver, v);
});
for (var i = 0; i < 3; ++i) {
measureSnackbar(snackbarStamps, i, driver);
}

View File

@ -0,0 +1,20 @@
var path = require('path');
var drool = require('drool');
var heapDiffPrinter = require('./utils.js').heapDiffPrinter;
var webdriver = drool.webdriver;
module.exports = function(stamps, i, driver, component) {
drool.flow({
setup: function() {
driver.get('file://' + path.join(__dirname, 'blank.html'));
},
action: function() {
driver.executeScript("(function() { var e = document.createElement('div');" +
"componentHandler.upgradeElement(e, '"+ component + "');" +
"componentHandler.downgradeElements(e);})()");
},
assert: function(after, initial) {
heapDiffPrinter(after, initial, i, component);
}
}, driver);
};