Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4121)

Unified Diff: chrome/test/data/third_party/spaceport/js/testDom.js

Issue 10154006: Add test data for spaceport benchmark. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/third_party/spaceport/js/testDom.js
diff --git a/chrome/test/data/third_party/spaceport/js/testDom.js b/chrome/test/data/third_party/spaceport/js/testDom.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef9234cebbd362a140a67d824d6ca9807f2b5faf
--- /dev/null
+++ b/chrome/test/data/third_party/spaceport/js/testDom.js
@@ -0,0 +1,87 @@
+define([ 'util/report' ], function (report) {
+ function classes(el) {
+ return el.className.split(/\s+/g);
+ }
+
+ function addClass(el, className) {
+ el.className += ' ' + className;
+ }
+
+ function removeClass(el, className) {
+ // wtb classList (damnit Safari!)
+ el.className = classes(el).filter(function (c) {
+ return c !== className;
+ }).join(' ');
+ }
+
+ function testResultNameAccept(name) {
+ return name !== 'pass';
+ }
+
+ var testDom = {
+ endTest: function (domId, err, results) {
+ var el = document.getElementById(domId);
+ if (!el) {
+ throw new Error('Could not find element #' + domId);
+ }
+
+ function findSlot(name) {
+ var elements = el.querySelectorAll('[data-property]');
+ var i;
+ for (i = 0; i < elements.length; ++i) {
+ var element = elements[i];
+ if (element.getAttribute('data-property') === name) {
+ return element;
+ }
+ }
+
+ return null;
+ }
+
+ function fillSlots(name, value) {
+ if (!testResultNameAccept(name)) {
+ return;
+ }
+
+ if (value === null || typeof value === 'undefined') {
+ return;
+ }
+
+ if (typeof value === 'object') {
+ Object.keys(value).forEach(function (subName) {
+ fillSlots(subName, value[subName]);
+ });
+ } else {
+ var slot = findSlot(name);
+ if (slot) {
+ slot.textContent = value;
+ } else {
+ //console.warn('Could not find slot ' + name + ' for ' + domId, value);
+ }
+ }
+ }
+
+ fillSlots('', results);
+
+ removeClass(el, 'pass');
+ removeClass(el, 'fail');
+ removeClass(el, 'error');
+
+ if (err) {
+ addClass(el, 'error');
+
+ var errorMessageEl = el.querySelector('.error-message');
+ if (errorMessageEl) {
+ errorMessageEl.textContent = err;
+ }
+ } else if (results && results.passed) {
+ addClass(el, 'pass');
+ } else {
+ addClass(el, 'fail');
+ }
+
+ }
+ };
+
+ return testDom;
+});
« no previous file with comments | « chrome/test/data/third_party/spaceport/js/tables.js ('k') | chrome/test/data/third_party/spaceport/js/testRunner.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698