| Index: chrome_frame/test/data/chrome_frame_tester_helpers.js
|
| diff --git a/chrome_frame/test/data/chrome_frame_tester_helpers.js b/chrome_frame/test/data/chrome_frame_tester_helpers.js
|
| deleted file mode 100644
|
| index 0fda5523ac83acf01144ad4443c41be42e74f151..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/test/data/chrome_frame_tester_helpers.js
|
| +++ /dev/null
|
| @@ -1,316 +0,0 @@
|
| -//
|
| -// This script provides some mechanics for testing ChromeFrame
|
| -//
|
| -function onSuccess(name, id) {
|
| - appendStatus("Success reported!");
|
| - onFinished(name, id, "OK");
|
| -}
|
| -
|
| -function onFailure(name, id, status) {
|
| - appendStatus("Failure reported: " + status);
|
| - onFinished(name, id, status);
|
| -}
|
| -
|
| -function byId(id) {
|
| - return document.getElementById(id);
|
| -}
|
| -
|
| -function getXHRObject(){
|
| - var XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP',
|
| - 'Msxml2.XMLHTTP.4.0'];
|
| - var http = null;
|
| - try {
|
| - http = new XMLHttpRequest();
|
| - } catch(e) {
|
| - }
|
| -
|
| - if (http)
|
| - return http;
|
| -
|
| - for (var i = 0; i < 3; ++i) {
|
| - var progid = XMLHTTP_PROGIDS[i];
|
| - try {
|
| - http = new ActiveXObject(progid);
|
| - } catch(e) {
|
| - }
|
| -
|
| - if (http)
|
| - break;
|
| - }
|
| - return http;
|
| -}
|
| -
|
| -var reportURL = "/writefile/";
|
| -
|
| -// Optionally send the server a notification that onload was fired.
|
| -// To be called from within window.onload.
|
| -function sendOnLoadEvent() {
|
| - writeToServer("OnLoadEvent", "loaded");
|
| -}
|
| -
|
| -function writeToServer(name, result) {
|
| - var xhr = getXHRObject();
|
| - if(!xhr)
|
| - return;
|
| -
|
| - // asynchronously POST the results
|
| - xhr.open("POST", reportURL + name, true);
|
| - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
| - try {
|
| - xhr.send(result);
|
| - } catch(e) {
|
| - appendStatus("XHR send failed. Error: " + e.description);
|
| - }
|
| -}
|
| -
|
| -function postResult(name, result) {
|
| - writeToServer(name, result);
|
| -}
|
| -
|
| -// Finish running a test by setting the status
|
| -// and the cookie.
|
| -function onFinished(name, id, result) {
|
| - // set a cookie to report the results...
|
| - var cookie = name + "." + id + ".status=" + result + "; path=/";
|
| - document.cookie = cookie;
|
| -
|
| - // ...and POST the status back to the server
|
| - postResult(name, result);
|
| -}
|
| -
|
| -function appendStatus(message) {
|
| - var statusPanel = byId("statusPanel");
|
| - if (statusPanel) {
|
| - statusPanel.innerHTML += '<BR>' + message;
|
| - }
|
| -}
|
| -
|
| -function readCookie(name) {
|
| - var cookie_name = name + "=";
|
| - var ca = document.cookie.split(';');
|
| -
|
| - for(var i = 0 ; i < ca.length ; i++) {
|
| - var c = ca[i];
|
| - while (c.charAt(0) == ' ') {
|
| - c = c.substring(1,c.length);
|
| - }
|
| - if (c.indexOf(cookie_name) == 0) {
|
| - return c.substring(cookie_name.length, c.length);
|
| - }
|
| - }
|
| - return null;
|
| -}
|
| -
|
| -function createCookie(name,value,days) {
|
| - var expires = "";
|
| - if (days) {
|
| - var date = new Date();
|
| - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
| - expires = "; expires=" + date.toGMTString();
|
| - }
|
| - document.cookie = name+"="+value+expires+"; path=/";
|
| -}
|
| -
|
| -function eraseCookie(name) {
|
| - createCookie(name, "", -1);
|
| -}
|
| -
|
| -function isRunningInMSIE() {
|
| - if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
|
| - return true;
|
| -
|
| - return false;
|
| -}
|
| -
|
| -function reloadUsingCFProtocol() {
|
| - var redirect_location = "gcf:";
|
| - redirect_location += window.location;
|
| - window.location = redirect_location;
|
| -}
|
| -
|
| -function isRunningInChrome() {
|
| - var is_chrome_frame = /chromeframe/.test(navigator.userAgent.toLowerCase());
|
| - if (is_chrome_frame)
|
| - return 0;
|
| - var is_chrome = /chrome/.test(navigator.userAgent.toLowerCase());
|
| - return is_chrome;
|
| -}
|
| -
|
| -function TestIfRunningInChrome() {
|
| - var is_chrome = isRunningInChrome();
|
| - if (!is_chrome) {
|
| - onFailure("ChromeFrameWindowOpen", "Window Open failed :-(",
|
| - "User agent = " + navigator.userAgent.toLowerCase());
|
| - }
|
| - return is_chrome;
|
| -}
|
| -
|
| -// Returns the base document url.
|
| -function GetBaseUrlPath() {
|
| - var url = window.location.protocol + "//" + window.location.host + "/";
|
| - return url;
|
| -}
|
| -
|
| -// Appends arguments passed in to the base document url and returns the same.
|
| -function AppendArgumentsToBaseUrl() {
|
| - var url = GetBaseUrlPath();
|
| - for (arg_index = 0; arg_index < arguments.length; arg_index++) {
|
| - url += arguments[arg_index];
|
| - }
|
| - return url;
|
| -}
|
| -
|
| -// Get the value of the first parameter from the query string which matches the
|
| -// given name.
|
| -function getURLParameter(name) {
|
| - name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
|
| - var regexString = "[\\?&]" + name + "=([^&#]*)";
|
| - var regex = new RegExp(regexString);
|
| - var results = regex.exec(window.location.href);
|
| - if (results == null) {
|
| - return "";
|
| - } else {
|
| - return results[1];
|
| - }
|
| -}
|
| -
|
| -// Create new URL by given html page name and querystring, based on current URL
|
| -// path.
|
| -function buildURL(pageName, queryString) {
|
| - var path = window.location.pathname;
|
| - var url = "";
|
| -
|
| - url += window.location.protocol + "//" + window.location.host;
|
| - if (path.lastIndexOf("/") > 0) {
|
| - url += path.substring(0, path.lastIndexOf("/")) + "/" + pageName;
|
| - } else {
|
| - url += "/" + pageName;
|
| - }
|
| - url += ((queryString == "") ? "" : "?" + queryString);
|
| - return url;
|
| -}
|
| -
|
| -// Helper function for insertControl.
|
| -function generateControlHtml(configuration) {
|
| - var objectAttributes = new Object();
|
| - var params = new Array();
|
| - var embedAttributes = new Object();
|
| - var param;
|
| - var html;
|
| -
|
| - function stringifyAttributes(attributeCollection) {
|
| - var result = new String();
|
| - for (var attributeName in attributeCollection) {
|
| - result += ' ' + attributeName + '="' +
|
| - attributeCollection[attributeName] + '"';
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - function applyAttribute(attributeCollection, name, value, defaultValue) {
|
| - if (value === undefined)
|
| - value = defaultValue;
|
| - if (value !== null)
|
| - attributeCollection[name] = value;
|
| - }
|
| -
|
| - objectAttributes.classid="CLSID:E0A900DF-9611-4446-86BD-4B1D47E7DB2A";
|
| - objectAttributes.codebase="http://www.google.com";
|
| - applyAttribute(objectAttributes, "id", configuration.id, "ChromeFrame");
|
| - applyAttribute(objectAttributes, "width", configuration.width, "500");
|
| - applyAttribute(objectAttributes, "height", configuration.height, "500");
|
| -
|
| - // Attributes provided by the caller override any defaults.
|
| - for (var attribute in configuration.objectAttributes) {
|
| - if (configuration.objectAttributes[attribute] === null)
|
| - delete objectAttributes[attribute];
|
| - else
|
| - objectAttributes[attribute] = configuration.objectAttributes[attribute];
|
| - }
|
| -
|
| - embedAttributes.type = "application/chromeframe";
|
| -
|
| - // By default, embed id = object.id + "Plugin". null id means omit id.
|
| - if (embedAttributes.id === null)
|
| - delete embedAttributes.id;
|
| - else if (embedAttributes.id === undefined && objectAttributes.id !== null)
|
| - embedAttributes.id = objectAttributes.id + "Plugin";
|
| -
|
| - // By default, embed name = object.id. null name means omit name.
|
| - if (embedAttributes.name === null)
|
| - delete embedAttributes.name;
|
| - else if (embedAttributes.name === undefined && objectAttributes.id !== null)
|
| - embedAttributes.name = objectAttributes.id;
|
| -
|
| - applyAttribute(embedAttributes, "width", configuration.width, "500");
|
| - applyAttribute(embedAttributes, "height", configuration.height, "500");
|
| - applyAttribute(embedAttributes, "src", configuration.src, null);
|
| -
|
| - for (var attribute in configuration.embedAttributes) {
|
| - if (configuration.embedAttributes[attribute] === null)
|
| - delete embedAttributes[attribute];
|
| - else
|
| - embedAttributes[attribute] = configuration.embedAttributes[attribute];
|
| - }
|
| -
|
| - if (embedAttributes.src !== undefined) {
|
| - param = new Object();
|
| - param.name = "src";
|
| - param.value = embedAttributes.src;
|
| - params.push(param);
|
| - }
|
| -
|
| - // All event handlers are params and attributes of the embed object.
|
| - for (var eventName in configuration.eventHandlers) {
|
| - param = new Object();
|
| - param.name = eventName;
|
| - param.value = configuration.eventHandlers[eventName];
|
| - params.push(param);
|
| - embedAttributes[eventName] = configuration.eventHandlers[eventName];
|
| - }
|
| -
|
| - html = "<object" + stringifyAttributes(objectAttributes) + ">\r\n";
|
| - for (var i = 0; i < params.length; ++i) {
|
| - html += " <param" + stringifyAttributes(params[i]) + ">\r\n";
|
| - }
|
| - html += " <embed" + stringifyAttributes(embedAttributes) + "></embed>\r\n"
|
| -
|
| - html += "</object>";
|
| -
|
| - return html;
|
| -}
|
| -
|
| -// Write the text for the Chrome Frame ActiveX control into an element.
|
| -// This works around a "feature" of IE versions released between April, 2006
|
| -// and April, 2008 that required the user to click on an ActiveX control to
|
| -// "activate" it. See http://msdn.microsoft.com/en-us/library/ms537508.aspx.
|
| -//
|
| -// |elementId| identifies the element in the current document into which the
|
| -// control markup will be inserted. |configuration| is an Object used to
|
| -// configure the control as below. Values shown are defaults, which may be
|
| -// overridden by supplying null values.
|
| -// {
|
| -// "id": "ChromeFrame", // id of object tag, name of the embed tag, and
|
| -// // basis of id of the embed tag.
|
| -// "width": "500", // width of both object and embed tags.
|
| -// "height": "500", // height of both object and embed tags.
|
| -// "src": "url", // src of embed tag and of param to object tag.
|
| -// "eventHandlers": { // Applied to embed tag and params to object tag.
|
| -// "onclose": "...",
|
| -// "onload": "...",
|
| -// "onloaderror": "..."
|
| -// }
|
| -// "objectAttributes": { // Custom attributes for the object tag. Any
|
| -// "tabindex": "...", // properties explicitly set to null will override
|
| -// "border": "...", // defaults.
|
| -// "style": "..."
|
| -// },
|
| -// "embedAttributes": { // Custom attributes for the embed tag;
|
| -// "privileged_mode": "...", // similar to above.
|
| -// "style": "..."
|
| -// }
|
| -// }
|
| -function insertControl(elementId, configuration) {
|
| - var e = document.getElementById(elementId);
|
| - e.innerHTML = generateControlHtml(configuration);
|
| -}
|
|
|