Вход Регистрация
Файл: framework/thirdparty/jasmine-dom/lib/jasmine-dom-fixtures.js
Строк: 186
<?php
/*jsl:declare jasmine*/
function readFixtures()
{
  return 
jasmine.getFixtures()._proxyCallTo('read'arguments);
}

function 
loadFixtures()
{
  
jasmine.getFixtures()._proxyCallTo('load'arguments);
}

function 
setFixtures(html)
{
  
jasmine.getFixtures().set(html);
}

function 
sandbox(attributes)
{
  return 
jasmine.getFixtures().sandbox(attributes);
}


jasmine.getFixtures = function()
{
  return 
jasmine._currentFixtures jasmine._currentFixtures || new jasmine.Fixtures();
}

jasmine.Fixtures = function()
{
  
this.containerId 'jasmine-fixtures';
  
this._fixturesCache = {};
}

jasmine.Fixtures.XHRwindow.XMLHttpRequest || (function(){
  var 
progIdCandidates= ['Msxml2.XMLHTTP.4.0''Microsoft.XMLHTTP''Msxml2.XMLHTTP'];
  var 
lenprogIdCandidates.length;

  var 
progId;
  var 
xhr;
  
  function 
ConstructXhr()
  {
    return new 
window.ActiveXObject(ConstructXhr.progId);
  }
  
  while (
len--)
  {
    try
    {
      
progIdprogIdCandidates[len];
      
xhr= new window.ActiveXObject(progId);
      
//  ActiveXObject constructor throws an exception
      //  if the component isn't available.
      
xhrnull;
      
ConstructXhr.progIdprogId;
      return 
ConstructXhr;
    }
    catch (
e)
    {
      
//  Ignore the error
    
}
  }
  throw new 
Error('No XMLHttpRequest implementation found');
})();

jasmine.Fixtures.prototype= {

  
set: function(html)
  {
    
this.cleanUp();
    
this._createContainer(html);
  },

  
load: function()
  {
    
this.cleanUp();
    
this._createContainer(this.read.apply(thisarguments));
  },

  
read: function()
  {
    var 
htmlChunks = [];

    var 
fixtureUrls arguments;
    for (var 
urlCount fixtureUrls.lengthurlIndex 0urlIndex urlCounturlIndex++)
      
htmlChunks.push(this._getFixtureHtml(fixtureUrls[urlIndex]));

    return 
htmlChunks.join('');
  },

  
clearCache: function()
  {
    
this._fixturesCache = {};
  },

  
cleanUp: function()
  {
    var 
containerdocument.getElementById(this.containerId);
    if (
container)
      
container.parentNode.removeChild(container);
  },

  
sandbox: function(attributes)
  {
    var 
attributesToSet attributes || {};
    var 
sandboxdocument.createElement('div');
    
sandbox.id'sandbox';

    if (
"string"===typeof(attributes))
    {
      
sandbox.innerHTMLattributes;
      if (
1===sandbox.childNodes.length && 1===sandbox.firstChild.nodeType)
      {
        
sandboxsandbox.firstChild;
        if (!
sandbox.id)
          
sandbox.id'sandbox';
      }
      return 
sandbox;
    }
    
    for (var 
attr in attributesToSet)
      
sandbox.setAttribute(attrattributesToSet[attr]);

    return 
sandbox;
  },

  
_createContainer: function(html)
  {
    var 
container document.createElement('div');
    
container.idthis.containerId;
    
    if (
html && html.nodeType===1)
      
container.appendChild(html);
    else
      
container.innerHTMLhtml;
  
    
document.body.appendChild(container);
  },

  
_getFixtureHtml: function(url)
  { 
    if (
void(0)===this._fixturesCache[url])
      
this._loadFixtureIntoCache(url);
    return 
this._fixturesCache[url];
  },

  
_loadFixtureIntoCache: function(url)
  {
    var 
selfthis;
    var 
xhr= new jasmine.Fixtures.XHR();
    
xhr.open('GET'urlfalse);
    
xhr.send(null);
    var 
statusxhr.status;
    var 
succeeded0===status || (status>=200 && status<300) || 304==status;
    
    if (!
succeeded)
      throw new 
Error('Failed to load resource: status=' status ' url=' url);
    
this._fixturesCache[url]= xhr.responseText;
  },

  
_proxyCallTo: function(methodNamepassedArguments)
  {
    return 
this[methodName].apply(thispassedArguments);
  }
  
};
?>
Онлайн: 0
Реклама