diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/lib/yui/yui_3.0.0b1/api/TestReporter.js.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.0.0b1/api/TestReporter.js.html Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,325 @@ + + + + + API: test TestReporter.js (YUI Library) + + + + + + + + + + +
+
+

Yahoo! UI Library

+

test  3.0.0b1

+ Yahoo! UI Library + > test + + > TestReporter.js (source view) +
+
+ Search: +
+   +
+
+
+
+ +
+
+
+
+
+ Filters + + + +
+
+ +
+ +
    Y.namespace("Test");
+    
+    /**
+     * An object capable of sending test results to a server.
+     * @param {String} url The URL to submit the results to.
+     * @param {Function} format (Optiona) A function that outputs the results in a specific format.
+     *      Default is Y.Test.Format.XML.
+     * @constructor
+     * @namespace Test
+     * @class Reporter
+     */
+    Y.Test.Reporter = function(url, format) {
+    
+        /**
+         * The URL to submit the data to.
+         * @type String
+         * @property url
+         */
+        this.url = url;
+    
+        /**
+         * The formatting function to call when submitting the data.
+         * @type Function
+         * @property format
+         */
+        this.format = format || Y.Test.Format.XML;
+    
+        /**
+         * Extra fields to submit with the request.
+         * @type Object
+         * @property _fields
+         * @private
+         */
+        this._fields = new Object();
+        
+        /**
+         * The form element used to submit the results.
+         * @type HTMLFormElement
+         * @property _form
+         * @private
+         */
+        this._form = null;
+    
+        /**
+         * Iframe used as a target for form submission.
+         * @type HTMLIFrameElement
+         * @property _iframe
+         * @private
+         */
+        this._iframe = null;
+    };
+    
+    Y.Test.Reporter.prototype = {
+    
+        //restore missing constructor
+        constructor: Y.Test.Reporter,
+    
+        /**
+         * Adds a field to the form that submits the results.
+         * @param {String} name The name of the field.
+         * @param {Variant} value The value of the field.
+         * @return {Void}
+         * @method addField
+         */
+        addField : function (name, value){
+            this._fields[name] = value;    
+        },
+        
+        /**
+         * Removes all previous defined fields.
+         * @return {Void}
+         * @method addField
+         */
+        clearFields : function(){
+            this._fields = new Object();
+        },
+    
+        /**
+         * Cleans up the memory associated with the TestReporter, removing DOM elements
+         * that were created.
+         * @return {Void}
+         * @method destroy
+         */
+        destroy : function() {
+            if (this._form){
+                this._form.parentNode.removeChild(this._form);
+                this._form = null;
+            }        
+            if (this._iframe){
+                this._iframe.parentNode.removeChild(this._iframe);
+                this._iframe = null;
+            }
+            this._fields = null;
+        },
+    
+        /**
+         * Sends the report to the server.
+         * @param {Object} results The results object created by TestRunner.
+         * @return {Void}
+         * @method report
+         */
+        report : function(results){
+        
+            //if the form hasn't been created yet, create it
+            if (!this._form){
+                this._form = document.createElement("form");
+                this._form.method = "post";
+                this._form.style.visibility = "hidden";
+                this._form.style.position = "absolute";
+                this._form.style.top = 0;
+                document.body.appendChild(this._form);
+            
+                //IE won't let you assign a name using the DOM, must do it the hacky way
+                if (Y.UA.ie){
+                    this._iframe = document.createElement("<iframe name=\"yuiTestTarget\" />");
+                } else {
+                    this._iframe = document.createElement("iframe");
+                    this._iframe.name = "yuiTestTarget";
+                }
+    
+                this._iframe.src = "javascript:false";
+                this._iframe.style.visibility = "hidden";
+                this._iframe.style.position = "absolute";
+                this._iframe.style.top = 0;
+                document.body.appendChild(this._iframe);
+    
+                this._form.target = "yuiTestTarget";
+            }
+    
+            //set the form's action
+            this._form.action = this.url;
+        
+            //remove any existing fields
+            while(this._form.hasChildNodes()){
+                this._form.removeChild(this._form.lastChild);
+            }
+            
+            //create default fields
+            this._fields.results = this.format(results);
+            this._fields.useragent = navigator.userAgent;
+            this._fields.timestamp = (new Date()).toLocaleString();
+    
+            //add fields to the form
+            Y.Object.each(this._fields, function(value, prop){
+                if (typeof value != "function"){
+                    var input = document.createElement("input");
+                    input.type = "hidden";
+                    input.name = prop;
+                    input.value = value;
+                    this._form.appendChild(input);
+                }
+            }, this);
+    
+            //remove default fields
+            delete this._fields.results;
+            delete this._fields.useragent;
+            delete this._fields.timestamp;
+            
+            if (arguments[1] !== false){
+                this._form.submit();
+            }
+        
+        }
+    
+    };
+
+
+
+
+ +
+
+
+ Copyright © 2009 Yahoo! Inc. All rights reserved. +
+
+ + +