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

Unified Diff: pkg/polymer/lib/testing/testing.js

Issue 24077003: fix polymer tests -- replace run.sh and run tests using bots (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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: pkg/polymer/lib/testing/testing.js
diff --git a/pkg/polymer/lib/testing/testing.js b/pkg/polymer/lib/testing/testing.js
deleted file mode 100644
index 3c22f05c7d672e26eb80603cecbd4572c239cdac..0000000000000000000000000000000000000000
--- a/pkg/polymer/lib/testing/testing.js
+++ /dev/null
@@ -1,175 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-(function() {
- var undoReplaceScripts = [];
-
- var flags = {};
- // populate flags from location
- location.search.slice(1).split('&').forEach(function(o) {
- o = o.split('=');
- o[0] && (flags[o[0]] = o[1] || true);
- });
-
- // Webkit is migrating from layoutTestController to testRunner, we use
- // layoutTestController as a fallback until that settles in.
- var runner = window.testRunner || window.layoutTestController;
-
- if (runner) {
- runner.dumpAsText();
- runner.waitUntilDone();
- }
-
- function dumpDOM() {
- // Undo any scripts that were modified.
- undoReplaceScripts.forEach(function(undo) { undo(); });
-
- function expandShadowRoot(node) {
- for (var n = node.firstChild; n; n = n.nextSibling) {
- expandShadowRoot(n);
- }
- var shadow = node.shadowRoot || node.webkitShadowRoot ||
- node.olderShadowRoot;
-
- if (shadow) {
- expandShadowRoot(shadow);
-
- var name = 'shadow-root';
- if (shadow == node.olderShadowRoot) name = 'older-' + name;
-
- var fakeShadow = document.createElement(name);
- while (shadow.firstChild) fakeShadow.appendChild(shadow.firstChild);
- node.insertBefore(fakeShadow, node.firstChild);
- }
- }
-
- // TODO(jmesserly): use querySelector to workaround unwrapped "document".
- expandShadowRoot(document.querySelector('body'));
-
- // Clean up all of the junk added to the DOM by js-interop and shadow CSS
- // TODO(jmesserly): it seems like we're leaking lots of dart-port attributes
- // for the document elemenet
- function cleanTree(node) {
- for (var n = node.firstChild; n; n = n.nextSibling) {
- cleanTree(n);
- }
-
- // TODO(terry): Need to remove attributes in the dart-port: namespace
- // these are added for JS interop. See bug
- // https://code.google.com/p/dart/issues/detail?id=12645
- // The new dart:js shouldn't need these attrs for dart2js or
- // Dartium (won't need with native support) then remove the
- // below code.
- // Remove JS interop dart-port attributes,
- if (node.tagName == 'HTML' && node.attributes) {
- for (var i = node.attributes.length; i--; i >= 0) {
- var attrNode = node.attributes[i];
- if (attrNode && attrNode.name.indexOf('dart-port:') == 0) {
- node.removeAttributeNode(attrNode);
- }
- }
- }
-
- // We remove the contents of style tags so that we can compare both runs
- // with and without the runtmie css shim. We keep the STYLE right under
- // HEAD, because it is not affected by the shim.
- if (node.tagName == 'STYLE') {
- if (node.attributes['shadowcssshim'] != null) {
- node.parentNode.removeChild(node);
- } else if (node.parentNode.tagName != "HEAD") {
- node.textContent = '/* style hidden by testing.js */'
- }
- }
-
- if (node.tagName == 'SCRIPT') {
- if (node.textContent.indexOf('_DART_TEMPORARY_ATTACHED') >= 0) {
- node.parentNode.removeChild(node);
- } else {
- // Remove the JS Interop script.
- var typeAttr = node.getAttributeNode("type");
- if (typeAttr && typeAttr.value == "text/javascript") {
- if (node.textContent.indexOf(
- "(function() {\n // Proxy support for js.dart.\n\n") == 0) {
- node.parentNode.removeChild(node);
- }
- }
- }
- }
- }
-
- // TODO(jmesserly): use querySelector to workaround unwrapped "document".
- cleanTree(document.querySelector('html'));
-
- var out = document.createElement('pre');
- out.textContent = document.documentElement.outerHTML;
- document.body.innerHTML = '';
- document.body.appendChild(out);
- }
-
- function messageHandler(e) {
- if (e.data == 'done' && runner) {
- // On success, dump the DOM. Convert shadowRoot contents into
- // <shadow-root>
- dumpDOM();
- runner.notifyDone();
- }
- }
-
- window.addEventListener('message', messageHandler, false);
-
- function errorHandler(e) {
- if (runner) {
- window.setTimeout(function() { runner.notifyDone(); }, 0);
- }
- window.console.log('FAIL');
- }
-
- window.addEventListener('error', errorHandler, false);
-
- if (navigator.webkitStartDart && !flags.js) {
- // TODO(jmesserly): fix this so we don't need to copy from browser/dart.js
- if (!navigator.webkitStartDart()) {
- document.body.innerHTML = 'This build has expired. Please download a new Dartium at http://www.dartlang.org/dartium/index.html';
- }
- } else {
- if (flags.shadowdomjs) {
- // Allow flags to force polyfill of ShadowDOM so we can test it.
- window.__forceShadowDomPolyfill = true;
- }
-
- // TODO:
- // - Support in-browser compilation.
- // - Handle inline Dart scripts.
- window.addEventListener("DOMContentLoaded", function (e) {
- // Fall back to compiled JS. Run through all the scripts and
- // replace them if they have a type that indicate that they source
- // in Dart code.
- //
- // <script type="application/dart" src="..."></script>
- //
- var scripts = document.getElementsByTagName("script");
- var length = scripts.length;
- for (var i = 0; i < length; ++i) {
- var script = scripts[i];
- if (script.type == "application/dart") {
- // Remap foo.dart to foo.dart.js.
- if (script.src && script.src != '') {
- var jsScript = document.createElement('script');
- jsScript.src = script.src.replace(/\.dart(?=\?|$)/, '.dart.js');
- var parent = script.parentNode;
- // TODO(vsm): Find a solution for issue 8455 that works with more
- // than one script.
- document.currentScript = jsScript;
-
- undoReplaceScripts.push(function() {
- parent.replaceChild(script, jsScript);
- });
- parent.replaceChild(jsScript, script);
- }
- }
- }
- }, false);
- }
-
-})();

Powered by Google App Engine
This is Rietveld 408576698