Skip to content

Commit f644997

Browse files
committed
Add horizontal spaghetti and sprinkles test (#213)
1 parent 0408c9f commit f644997

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tests/horizontal_playground.html

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,48 @@
107107
function logger(e) {
108108
console.log(e);
109109
}
110+
111+
function sprinkles(n) {
112+
var prototypes = [];
113+
var toolbox = document.getElementById('toolbox');
114+
var blocks = toolbox.getElementsByTagName('block');
115+
for (var i = 0, block; block = blocks[i]; i++) {
116+
prototypes.push(block.getAttribute('type'));
117+
}
118+
for (var i = 0; i < n; i++) {
119+
var prototype = prototypes[Math.floor(Math.random() * prototypes.length)];
120+
var block = workspace.newBlock(prototype);
121+
block.initSvg();
122+
block.getSvgRoot().setAttribute('transform', 'translate(' +
123+
Math.round(Math.random() * 450 + 40) + ', ' +
124+
Math.round(Math.random() * 600 + 40) + ')');
125+
block.render();
126+
}
127+
}
128+
function spaghetti(n) {
129+
var xml = spaghettiXml;
130+
for(var i = 0; i < n; i++) {
131+
xml = xml.replace(/(<(statement|next)( name="SUBSTACK")?>)<\//g,
132+
'$1' + spaghettiXml + '</');
133+
}
134+
xml = '<xml xmlns="http://www.w3.org/1999/xhtml">' + xml + '</xml>';
135+
debugger;
136+
var dom = Blockly.Xml.textToDom(xml);
137+
console.time('Spaghetti domToWorkspace');
138+
Blockly.Xml.domToWorkspace(workspace, dom);
139+
console.timeEnd('Spaghetti domToWorkspace');
140+
// document.getElementById('importExport').value = xml;
141+
}
142+
var spaghettiXml = [
143+
' <block type="control_repeat">',
144+
' <value name="TIMES">',
145+
' <shadow type="math_number">',
146+
' <field name="NUM">10</field>',
147+
' </shadow>',
148+
' </value>',
149+
' <statement name="SUBSTACK"></statement>',
150+
' <next></next>',
151+
' </block>'].join('\n');
110152
</script>
111153

112154
<style>
@@ -231,5 +273,10 @@ <h1>Horizontal block rendering!</h1>
231273
Log events: &nbsp;
232274
<input type="checkbox" onclick="logEvents(this.checked)" id="logCheck">
233275
</p>
276+
<p>
277+
Stress test: &nbsp;
278+
<input type="button" value="Sprinkles!" onclick="sprinkles(100)">
279+
<input type="button" value="Spaghetti!" onclick="spaghetti(10)">
280+
</p>
234281
</body>
235282
</html>

0 commit comments

Comments
 (0)