From 55d74f86440a5a804d4551e04f7fd39518af0723 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Fri, 12 May 2017 01:49:57 +0800 Subject: add web portal framework for TestAPI Change-Id: I62cea8b59ffe6a6cde98051c130f4502c07d3557 Signed-off-by: SerenaFeng --- .../testapi-ui/assets/lib/jquery/src/ajax/jsonp.js | 102 +++++++++++++ .../testapi-ui/assets/lib/jquery/src/ajax/load.js | 76 +++++++++ .../assets/lib/jquery/src/ajax/parseXML.js | 30 ++++ .../assets/lib/jquery/src/ajax/script.js | 77 ++++++++++ .../assets/lib/jquery/src/ajax/var/location.js | 5 + .../assets/lib/jquery/src/ajax/var/nonce.js | 7 + .../assets/lib/jquery/src/ajax/var/rquery.js | 5 + .../testapi-ui/assets/lib/jquery/src/ajax/xhr.js | 169 +++++++++++++++++++++ 8 files changed, 471 insertions(+) create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/jsonp.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/load.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/parseXML.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/script.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/var/location.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/var/nonce.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/var/rquery.js create mode 100644 testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/xhr.js (limited to 'testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax') diff --git a/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/jsonp.js b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/jsonp.js new file mode 100644 index 0000000..8c406e7 --- /dev/null +++ b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/jsonp.js @@ -0,0 +1,102 @@ +define( [ + "../core", + "./var/nonce", + "./var/rquery", + "../ajax" +], function( jQuery, nonce, rquery ) { + +"use strict"; + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup( { + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +} ); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && + ( s.contentType || "" ) + .indexOf( "application/x-www-form-urlencoded" ) === 0 && + rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters[ "script json" ] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // Force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always( function() { + + // If previous value didn't exist - remove it + if ( overwritten === undefined ) { + jQuery( window ).removeProp( callbackName ); + + // Otherwise restore preexisting value + } else { + window[ callbackName ] = overwritten; + } + + // Save back as free + if ( s[ callbackName ] ) { + + // Make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // Save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + } ); + + // Delegate to script + return "script"; + } +} ); + +} ); diff --git a/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/load.js b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/load.js new file mode 100644 index 0000000..3ce3a5a --- /dev/null +++ b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/load.js @@ -0,0 +1,76 @@ +define( [ + "../core", + "../core/stripAndCollapse", + "../core/parseHTML", + "../ajax", + "../traversing", + "../manipulation", + "../selector" +], function( jQuery, stripAndCollapse ) { + +"use strict"; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + var selector, type, response, + self = this, + off = url.indexOf( " " ); + + if ( off > -1 ) { + selector = stripAndCollapse( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax( { + url: url, + + // If "type" variable is undefined, then "GET" method will be used. + // Make value of this field explicit since + // user can override it through ajaxSetup method + type: type || "GET", + dataType: "html", + data: params + } ).done( function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery( "
" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + // If the request succeeds, this function gets "data", "status", "jqXHR" + // but they are ignored because response was set above. + // If it fails, this function gets "jqXHR", "status", "error" + } ).always( callback && function( jqXHR, status ) { + self.each( function() { + callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); + } ); + } ); + } + + return this; +}; + +} ); diff --git a/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/parseXML.js b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/parseXML.js new file mode 100644 index 0000000..acf7ab2 --- /dev/null +++ b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/parseXML.js @@ -0,0 +1,30 @@ +define( [ + "../core" +], function( jQuery ) { + +"use strict"; + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + +return jQuery.parseXML; + +} ); diff --git a/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/script.js b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/script.js new file mode 100644 index 0000000..6e0d21e --- /dev/null +++ b/testapi/3rd_party/static/testapi-ui/assets/lib/jquery/src/ajax/script.js @@ -0,0 +1,77 @@ +define( [ + "../core", + "../var/document", + "../ajax" +], function( jQuery, document ) { + +"use strict"; + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( "