aboutsummaryrefslogtreecommitdiffstats
path: root/tests/runner/listeners.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/runner/listeners.js')
-rw-r--r--tests/runner/listeners.js112
1 files changed, 0 insertions, 112 deletions
diff --git a/tests/runner/listeners.js b/tests/runner/listeners.js
deleted file mode 100644
index ed6fb24e8..000000000
--- a/tests/runner/listeners.js
+++ /dev/null
@@ -1,112 +0,0 @@
-( function() {
- "use strict";
-
- // Get the report ID from the URL.
- var match = location.search.match( /reportId=([^&]+)/ );
- if ( !match ) {
- return;
- }
- var id = match[ 1 ];
-
- // Adopted from https://github.com/douglascrockford/JSON-js
- // Support: IE 11+
- // Using the replacer argument of JSON.stringify in IE has issues
- // TODO: Replace this with a circular replacer + JSON.stringify + WeakSet
- function decycle( object ) {
- var objects = [];
-
- // The derez function recurses through the object, producing the deep copy.
- function derez( value ) {
- if (
- typeof value === "object" &&
- value !== null &&
- !( value instanceof Boolean ) &&
- !( value instanceof Date ) &&
- !( value instanceof Number ) &&
- !( value instanceof RegExp ) &&
- !( value instanceof String )
- ) {
-
- // Return a string early for elements
- if ( value.nodeType ) {
- return value.toString();
- }
-
- if ( objects.indexOf( value ) > -1 ) {
- return;
- }
-
- objects.push( value );
-
- if ( Array.isArray( value ) ) {
-
- // If it is an array, replicate the array.
- return value.map( derez );
- } else {
-
- // If it is an object, replicate the object.
- var nu = Object.create( null );
- Object.keys( value ).forEach( function( name ) {
- nu[ name ] = derez( value[ name ] );
- } );
- return nu;
- }
- }
-
- // Serialize Symbols as string representations so they are
- // sent over the wire after being stringified.
- if ( typeof value === "symbol" ) {
-
- // We can *describe* unique symbols, but note that their identity
- // (e.g., `Symbol() !== Symbol()`) is lost
- var ctor = Symbol.keyFor( value ) !== undefined ? "Symbol.for" : "Symbol";
- return ctor + "(" + JSON.stringify( value.description ) + ")";
- }
-
- return value;
- }
- return derez( object );
- }
-
- function send( type, data ) {
- var json = JSON.stringify( {
- id: id,
- type: type,
- data: data ? decycle( data ) : undefined
- } );
- var request = new XMLHttpRequest();
- request.open( "POST", "/api/report", true );
- request.setRequestHeader( "Content-Type", "application/json" );
- request.send( json );
- return request;
- }
-
- require( [ "qunit" ], function( QUnit ) {
-
- // Send acknowledgement to the server.
- send( "ack" );
-
- QUnit.on( "testEnd", function( data ) {
- send( "testEnd", data );
- } );
-
- QUnit.on( "runEnd", function( data ) {
-
- // Reduce the payload size.
- // childSuites is large and unused.
- data.childSuites = undefined;
-
- var request = send( "runEnd", data );
- request.onload = function() {
- if ( request.status === 200 && request.responseText ) {
- try {
- var json = JSON.parse( request.responseText );
- window.location = json.url;
- } catch ( e ) {
- console.error( e );
- }
- }
- };
- } );
- } );
-} )();