| <!DOCTYPE html> | |
| <!-- | |
| Copyright 2011 WebDriver committers | |
| Copyright 2011 Google Inc. | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <html> | |
| <head> | |
| <title>text_benchmark.html</title> | |
| <script src="test_bootstrap.js"></script> | |
| <script type="text/javascript"> | |
| goog.require('bot.dom'); | |
| goog.require('goog.dom'); | |
| goog.require('goog.dom.TagName'); | |
| goog.require('goog.testing.PerformanceTable'); | |
| goog.require('goog.testing.PerformanceTimer'); | |
| goog.require('goog.testing.TestCase'); | |
| </script> | |
| <script type="text/javascript"> | |
| /* This benchmarking tool is modeled after goog.testing.benchmark. | |
| * It has been forked to ensure results are written to a specific | |
| * DOM element so we don't lose our DOM below (which is used in the | |
| * benchmarking. | |
| */ | |
| window.onload = function() { | |
| // Parse the 'times' query parameter if it's set. | |
| var times = 200; | |
| var search = window.location.search; | |
| var timesMatch = search.match(/(?:\?|&)times=([^?&]+)/i); | |
| if (timesMatch) { | |
| times = timesMatch[1]; | |
| } | |
| var prefix = 'benchmark'; | |
| // First, get the functions. | |
| var testSource = goog.testing.TestCase.getGlobals(prefix); | |
| var benchmarks = {}; | |
| var names = []; | |
| for (var name in testSource) { | |
| try { | |
| var ref = testSource[name]; | |
| } catch (ex) { | |
| // NOTE(user): When running tests from a file:// URL on Firefox 3.5 | |
| // for Windows, any reference to window.sessionStorage raises | |
| // an "Operation is not supported" exception. Ignore any exceptions | |
| // raised by simply accessing global properties. | |
| } | |
| if ((new RegExp('^' + prefix)).test(name) && goog.isFunction(ref)) { | |
| benchmarks[name] = ref; | |
| names.push(name); | |
| } | |
| } | |
| document.body.appendChild( | |
| goog.dom.createTextNode( | |
| 'Running ' + names.length + ' benchmarks ' + times + ' times each.')); | |
| document.body.appendChild(goog.dom.createElement(goog.dom.TagName.BR)); | |
| names.sort(); | |
| // Build a table and timer. | |
| var performanceTimer = new goog.testing.PerformanceTimer(times); | |
| performanceTimer.setDiscardOutliers(true); | |
| var results = document.createElement('div'); | |
| document.body.appendChild(results); | |
| var performanceTable = new goog.testing.PerformanceTable(results, | |
| performanceTimer, 2); | |
| setUp(); | |
| // Next, run the benchmarks. | |
| for (var i = 0; i < names.length; i++) { | |
| performanceTable.run(benchmarks[names[i]], names[i]); | |
| } | |
| }; | |
| var h1, p1, p2; | |
| function setUp() { | |
| h1 = document.getElementsByTagName('h1')[0]; | |
| var pTags = document.getElementsByTagName('p'); | |
| p1 = pTags[0]; | |
| p2 = pTags[1]; | |
| } | |
| function benchmarkGetText_fromH1() { | |
| bot.dom.getVisibleText(h1); | |
| } | |
| function benchmarkGetText_fromH1Span() { | |
| bot.dom.getVisibleText(h1.firstChild); | |
| } | |
| function benchmarkGetText_fromFirstP() { | |
| bot.dom.getVisibleText(p1); | |
| } | |
| function benchmarkGetText_fromSecondP() { | |
| bot.dom.getVisibleText(p2); | |
| } | |
| function benchmarkGetText_fromBody() { | |
| bot.dom.getVisibleText(document.body); | |
| } | |
| </script> | |
| </head> | |
| <body> | |
| <h1><span>Lorem ipsum</span></h1> | |
| <p> | |
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus feugiat arcu | |
| in ipsum imperdiet sagittis. Sed tempus pulvinar nisl, id molestie nunc | |
| accumsan nec. Morbi malesuada, sem at mollis fermentum, ipsum est sagittis | |
| eros, a convallis nisl purus id turpis. Donec velit neque, mattis eu aliquam | |
| a, fringilla vitae neque. Proin pellentesque nisi eget nulla egestas sodales | |
| ultrices nulla molestie. Ut mollis cursus metus, in dictum justo euismod ut. | |
| Ut ipsum elit, lacinia at consectetur auctor, porttitor sit amet dui. | |
| Maecenas nisl justo, tempor mattis imperdiet a, rhoncus ac mi. In hac habitasse | |
| platea dictumst. Pellentesque malesuada sodales tincidunt. Etiam fringilla | |
| mattis massa gravida euismod. Mauris ut odio et sapien tempus faucibus in et | |
| purus. In varius, justo vel porta elementum, risus ante porttitor elit, et | |
| lobortis quam nibh et elit. Vivamus elementum, odio commodo tempus commodo, | |
| ipsum lectus placerat enim, et pharetra arcu nibh non turpis. Vestibulum ante | |
| ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut | |
| elementum felis vitae ligula congue non consectetur risus interdum. Aliquam | |
| non nisl ac nibh aliquam feugiat vitae quis sapien. In ultricies scelerisque | |
| neque, nec porta sem lobortis nec. Curabitur pulvinar pretium bibendum. | |
| </p> | |
| <p> | |
| Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac | |
| turpis egestas. Sed blandit adipiscing ipsum vitae venenatis. Duis purus | |
| augue, mollis in faucibus id, consectetur sed nunc. Curabitur iaculis elit nec | |
| est congue vitae suscipit lacus varius. Etiam eget tellus at orci pellentesque | |
| tincidunt sit amet vitae tellus. Quisque ante ipsum, convallis ac tincidunt ut, | |
| feugiat et turpis. Nullam facilisis lacinia mi, sit amet porttitor ante | |
| interdum eu. Aenean ut ipsum in elit suscipit malesuada eu rutrum sapien. | |
| Integer tincidunt ipsum vitae ligula ultricies pretium. Duis consectetur, elit | |
| mollis pulvinar cursus, lorem magna vulputate orci, at varius dui tellus sed | |
| metus. Pellentesque quis enim urna, eu ultricies nunc. Maecenas dolor diam, | |
| viverra nec bibendum eu, rutrum eu turpis. Donec vestibulum dolor ut massa | |
| commodo suscipit. Morbi erat tellus, semper ut sodales eu, gravida a diam. | |
| </p> | |
| </body> | |
| </html> |