Adding mapbox-gl branch
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!--
|
||||
Copyright 2008 The Closure Library Authors. All Rights Reserved.
|
||||
|
||||
Use of this source code is governed by the Apache License, Version 2.0.
|
||||
See the COPYING file for details.
|
||||
-->
|
||||
<!--
|
||||
Author: attila@google.com (Attila Bodis)
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Closure Performance Tests - goog.ui.Button</title>
|
||||
<link rel="stylesheet" type="text/css" href="../testing/performancetable.css" />
|
||||
<script src="../base.js"></script>
|
||||
<script>
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventHandler');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.testing.PerformanceTable');
|
||||
goog.require('goog.testing.jsunit');
|
||||
goog.require('goog.ui.Button');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>goog.ui.Button Performance Tests</h1>
|
||||
<p>
|
||||
<b>User-agent:</b> <script>document.write(navigator.userAgent);</script>
|
||||
</p>
|
||||
<div id="perfTable"></div>
|
||||
<hr>
|
||||
<div id="renderSandbox"></div>
|
||||
<div id="decorateSandbox"></div>
|
||||
<script>
|
||||
// The sandboxen.
|
||||
var renderSandbox = goog.dom.getElement('renderSandbox');
|
||||
var decorateSandbox = goog.dom.getElement('decorateSandbox');
|
||||
|
||||
// Arrays of rendered/decorated buttons (so we can dispose of them).
|
||||
var renderedButtons;
|
||||
var decoratedButtons;
|
||||
|
||||
// 0-based index of the button currently being rendered/decorated.
|
||||
var renderIndex;
|
||||
var decorateIndex;
|
||||
|
||||
// Element currently being decorated.
|
||||
var elementToDecorate;
|
||||
|
||||
// Number of buttons to create/decorate per test run.
|
||||
var SAMPLES_PER_RUN = 200;
|
||||
|
||||
// The performance table.
|
||||
var table;
|
||||
|
||||
function setUpPage() {
|
||||
table = new goog.testing.PerformanceTable(
|
||||
goog.dom.getElement('perfTable'));
|
||||
}
|
||||
|
||||
// Sets up a render test.
|
||||
function setUpRenderTest() {
|
||||
renderedButtons = [];
|
||||
renderIndex = 0;
|
||||
}
|
||||
|
||||
// Cleans up after a render test.
|
||||
function cleanUpAfterRenderTest() {
|
||||
for (var i = 0, count = renderedButtons.length; i < count; i++) {
|
||||
renderedButtons[i].dispose();
|
||||
}
|
||||
renderedButtons = null;
|
||||
goog.dom.removeChildren(renderSandbox);
|
||||
}
|
||||
|
||||
// Sets up a decorate test.
|
||||
function setUpDecorateTest(opt_count) {
|
||||
var count = opt_count || 1000;
|
||||
for (var i = 0; i < count; i++) {
|
||||
decorateSandbox.appendChild(goog.dom.createDom('button', 'goog-button',
|
||||
'W00t!'));
|
||||
}
|
||||
elementToDecorate = decorateSandbox.firstChild;
|
||||
decoratedButtons = [];
|
||||
decorateIndex = 0;
|
||||
}
|
||||
|
||||
// Cleans up after a decorate test.
|
||||
function cleanUpAfterDecorateTest() {
|
||||
for (var i = 0, count = decoratedButtons.length; i < count; i++) {
|
||||
decoratedButtons[i].dispose();
|
||||
}
|
||||
decoratedButtons = null;
|
||||
goog.dom.removeChildren(decorateSandbox);
|
||||
}
|
||||
|
||||
// Renders the given number of buttons. Since children are appended to
|
||||
// the same parent element in each performance test run, we keep track of
|
||||
// the current index via the global renderIndex variable.
|
||||
function renderButtons(count, autoDetectBiDi) {
|
||||
for (var i = 0; i < count; i++) {
|
||||
var button = new goog.ui.Button('W00t!');
|
||||
if (!autoDetectBiDi) {
|
||||
button.setRightToLeft(false);
|
||||
}
|
||||
button.render(renderSandbox);
|
||||
renderedButtons[renderIndex++] = button;
|
||||
}
|
||||
}
|
||||
|
||||
// Decorates "count" buttons. The decorate sandbox contains enough child
|
||||
// elements for the whole test, but we only decorate up to "count" elements
|
||||
// per test run, so we need to keep track of where we are via the global
|
||||
// decorateIndex and elementToDecorate variables.
|
||||
function decorateButtons(count, autoDetectBiDi) {
|
||||
for (var i = 0; i < count; i++) {
|
||||
var next = elementToDecorate.nextSibling;
|
||||
var button = new goog.ui.Button();
|
||||
if (!autoDetectBiDi) {
|
||||
button.setRightToLeft(false);
|
||||
}
|
||||
button.decorate(elementToDecorate);
|
||||
decoratedButtons[decorateIndex++] = button;
|
||||
elementToDecorate = next;
|
||||
}
|
||||
}
|
||||
|
||||
function testRender() {
|
||||
setUpRenderTest();
|
||||
table.run(
|
||||
goog.partial(renderButtons, SAMPLES_PER_RUN, true),
|
||||
'Render ' + SAMPLES_PER_RUN + ' buttons (default)');
|
||||
cleanUpAfterRenderTest();
|
||||
assertEquals('The expected number of buttons must have been rendered',
|
||||
SAMPLES_PER_RUN * table.getTimer().getNumSamples(), renderIndex);
|
||||
}
|
||||
|
||||
function testDecorate() {
|
||||
setUpDecorateTest(SAMPLES_PER_RUN * table.getTimer().getNumSamples());
|
||||
table.run(
|
||||
goog.partial(decorateButtons, SAMPLES_PER_RUN, true),
|
||||
'Decorate ' + SAMPLES_PER_RUN + ' buttons (default)');
|
||||
cleanUpAfterDecorateTest();
|
||||
assertEquals('The expected number of buttons must have been decorated',
|
||||
SAMPLES_PER_RUN * table.getTimer().getNumSamples(),
|
||||
decorateIndex);
|
||||
assertNull('All buttons must have been decorated', elementToDecorate);
|
||||
}
|
||||
|
||||
function testRenderNoBiDiAutoDetect() {
|
||||
setUpRenderTest();
|
||||
table.run(
|
||||
goog.partial(renderButtons, SAMPLES_PER_RUN, false),
|
||||
'Render ' + SAMPLES_PER_RUN + ' buttons (no BiDi auto-detect)');
|
||||
cleanUpAfterRenderTest();
|
||||
assertEquals('The expected number of buttons must have been rendered',
|
||||
SAMPLES_PER_RUN * table.getTimer().getNumSamples(),
|
||||
renderIndex);
|
||||
}
|
||||
|
||||
function testDecorateNoBiDiAutoDetect() {
|
||||
setUpDecorateTest(SAMPLES_PER_RUN * table.getTimer().getNumSamples());
|
||||
table.run(
|
||||
goog.partial(decorateButtons, SAMPLES_PER_RUN, false),
|
||||
'Decorate ' + SAMPLES_PER_RUN + ' buttons (no BiDi auto-detect)');
|
||||
cleanUpAfterDecorateTest();
|
||||
assertEquals('The expected number of buttons must have been decorated',
|
||||
SAMPLES_PER_RUN * table.getTimer().getNumSamples(),
|
||||
decorateIndex);
|
||||
assertNull('All buttons must have been decorated', elementToDecorate);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user