text: var torque = require('../lib/torque');
  var providers = torque.providers;
  
  var json, url, _XMLHttpRequest;
  QUnit.module('provider.json');
  QUnit.moduleStart(function() {
    _XMLHttpRequest = window.XMLHttpRequest;
    window.XMLHttpRequest = function () {
      return {
        open: function () { },
        send: function () { },
        readyState: 4,
        responseText: {}
      }
    };
  });
  QUnit.moduleDone(function() {
    window.XMLHttpRequest = _XMLHttpRequest;
  });
  QUnit.testStart(function() {
      json = new providers.json({
        table: 'test',
        user: "rambo",
        resolution: 1,
        steps: 10,
        extra_params: {
          testing: 'abcd%'
        }
      });
  });
  
    test("url", function() {
      equal("http://rambo.cartodb.com/api/v2/sql", json.url());
    });
  
    test("extra_params", function() {
      var url = "http://rambo.cartodb.com/api/v2/sql?q=1&testing=abcd%25";
      json.sql('1');
      equal(torque.net.lastCall().url, url);
    });
  
    test("no_cdn", function() {
      var url = "http://rambo.cartodb.com/api/v2/sql?q=1&testing=abcd%25";
      json.options.cdn_url = { http: 'test.com' };
      json.sql('1', null, { no_cdn: true });
      equal(torque.net.lastCall().url, url);
    });
  
    test("getSQL", function() {
      var s;
      equal(json.getSQL(), "select * from test");
      json.setSQL(s='select * from test limit 10');
      equal(json.getSQL(), s);
      json.setSQL(null);
      equal(json.getSQL(), "select * from test");
    });
  
    test("cdn_url", function() {
      json.options.cdn_url = { http: 'test.com' };
      equal(json.url('a'), 'http://a.test.com/rambo/api/v2/sql');
    });
  
  
  
  