{"version":3,"sources":["dummy/app.js","dummy/initializers/export-application-global.js","dummy/router.js","dummy/templates/application.js","dummy/tests/app.jshint.js","dummy/tests/dummy/tests/helpers/betamax-recorder.jshint.js","dummy/tests/dummy/tests/helpers/cassette.jshint.js","dummy/tests/dummy/tests/helpers/fake-server.jshint.js","dummy/tests/dummy/tests/helpers/insert-cassette.jshint.js","dummy/tests/dummy/tests/helpers/resolver.jshint.js","dummy/tests/dummy/tests/helpers/start-app.jshint.js","dummy/tests/dummy/tests/test-helper.jshint.js","dummy/tests/helpers/betamax-recorder.js","dummy/tests/helpers/cassette.js","dummy/tests/helpers/fake-server.js","dummy/tests/helpers/insert-cassette.js","dummy/tests/helpers/resolver.js","dummy/tests/helpers/start-app.js","dummy/tests/router.jshint.js","dummy/tests/test-helper.js","vendor/ember-cli/app-suffix.js"],"sourcesContent":["define('dummy/app', ['exports', 'ember', 'ember/resolver', 'ember/load-initializers', './config/environment'], function (exports, Ember, Resolver, loadInitializers, config) {\n\n  'use strict';\n\n  Ember['default'].MODEL_FACTORY_INJECTIONS = true;\n\n  var App = Ember['default'].Application.extend({\n    modulePrefix: config['default'].modulePrefix,\n    podModulePrefix: config['default'].podModulePrefix,\n    Resolver: Resolver['default']\n  });\n\n  loadInitializers['default'](App, config['default'].modulePrefix);\n\n  exports['default'] = App;\n\n});","define('dummy/initializers/export-application-global', ['exports', 'ember', '../config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  exports.initialize = initialize;\n\n  function initialize(container, application) {\n    var classifiedName = Ember['default'].String.classify(config['default'].modulePrefix);\n\n    if (config['default'].exportApplicationGlobal) {\n      window[classifiedName] = application;\n    }\n  };\n\n  exports['default'] = {\n    name: 'export-application-global',\n\n    initialize: initialize\n  };\n\n});","define('dummy/router', ['exports', 'ember', './config/environment'], function (exports, Ember, config) {\n\n  'use strict';\n\n  var Router = Ember['default'].Router.extend({\n    location: config['default'].locationType\n  });\n\n  Router.map(function() {\n  });\n\n  exports['default'] = Router;\n\n});","define('dummy/templates/application', ['exports', 'ember'], function (exports, Ember) {\n\n  'use strict';\n\n  exports['default'] = Ember['default'].Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data\n  /**/) {\n  this.compilerInfo = [4,'>= 1.0.0'];\n  helpers = this.merge(helpers, Ember['default'].Handlebars.helpers); data = data || {};\n    var buffer = '', stack1;\n\n\n    data.buffer.push(\"<h2 id=\\\"title\\\">Welcome to Ember.js</h2>\\n\\n\");\n    stack1 = helpers._triageMustache.call(depth0, \"outlet\", {hash:{},hashTypes:{},hashContexts:{},contexts:[depth0],types:[\"ID\"],data:data});\n    if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n    data.buffer.push(\"\\n\");\n    return buffer;\n    \n  });\n\n});","define('dummy/tests/app.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - .');\n  test('app.js should pass jshint', function() { \n    ok(true, 'app.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/betamax-recorder.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/betamax-recorder.js should pass jshint', function() { \n    ok(true, 'dummy/tests/helpers/betamax-recorder.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/cassette.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/cassette.js should pass jshint', function() { \n    ok(true, 'dummy/tests/helpers/cassette.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/fake-server.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/fake-server.js should pass jshint', function() { \n    ok(false, 'dummy/tests/helpers/fake-server.js should pass jshint.\\ndummy/tests/helpers/fake-server.js: line 8, col 12, \\'sinon\\' is not defined.\\n\\n1 error'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/insert-cassette.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/insert-cassette.js should pass jshint', function() { \n    ok(true, 'dummy/tests/helpers/insert-cassette.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/resolver.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/resolver.js should pass jshint', function() { \n    ok(true, 'dummy/tests/helpers/resolver.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/helpers/start-app.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests/helpers');\n  test('dummy/tests/helpers/start-app.js should pass jshint', function() { \n    ok(true, 'dummy/tests/helpers/start-app.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/dummy/tests/test-helper.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - dummy/tests');\n  test('dummy/tests/test-helper.js should pass jshint', function() { \n    ok(true, 'dummy/tests/test-helper.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/helpers/betamax-recorder', ['exports', './fake-server'], function (exports, fake_server) {\n\n  'use strict';\n\n  var responses = [], strings = [];\n\n  //turning headers into js is a real pain\n  function parseResponseHeaders(headerStr) {\n    var headers = {};\n    if (!headerStr) {\n      return headers;\n    }\n    var headerPairs = headerStr.split('\\u000d\\u000a');\n    for (var i = 0; i < headerPairs.length; i++) {\n      var headerPair = headerPairs[i];\n      var index = headerPair.indexOf('\\u003a\\u0020');\n      if (index > 0) {\n        var key = headerPair.substring(0, index);\n        var val = headerPair.substring(index + 2);\n        headers[key] = val;\n      }\n    }\n    return headers;\n  }\n\n  exports['default'] = {\n    setup: function() {\n      var server = fake_server.getServer();\n\n      //listen to incoming xhr requests\n      $( document ).ajaxSuccess(function( event, xhr, settings ) {\n        var url = settings.url;\n        var newResponse =  {\n          url: url,\n          data: xhr.responseText,\n          type: settings.type,\n          status: xhr.status,\n          headers: parseResponseHeaders(xhr.getAllResponseHeaders())\n        };\n        //if response isn't in old or new cassettes, add it to new one\n        if(!responses.mapBy('url').concat(server.responses.mapBy('url')).uniq().contains(url)){\n          responses.push(newResponse);\n\n          //ensure that if a request is added to new cassette, it \n          //doesn't hit the server again\n          server.respondWith(\n            settings.type, newResponse.url,\n            [\n              newResponse.status,\n              newResponse.headers,\n              JSON.stringify(JSON.parse(newResponse.data))\n            ]\n          );\n        }\n      });\n    },\n\n    download: function() {\n\n      //convert responses into string expected by sinon\n      strings.push(\"export default function(server) {\\n\\n\");\n      if (responses.length > 0){\n        responses.forEach(function(response) {\n          strings.push(\"server.respondWith( '\"+ response.type + \"', \\n\");\n          strings.push(\"'\" + response.url +  \"',\\n\");\n          strings.push(\"  [\\n \" + response.status + \",\\n\");\n          strings.push(JSON.stringify(response.headers) + \",\\n\");\n          strings.push(JSON.stringify(JSON.stringify(JSON.parse(response.data))) + \"\\n\");\n          strings.push(\"]);\\n\\n\");\n        });\n\n        strings.push(\"}\");\n\n        //html 5 for downloading recordings\n        var blob = new window.Blob(strings);\n        var encodedUri = window.URL.createObjectURL(blob);\n        var link = document.createElement(\"a\");\n        link.setAttribute(\"href\", encodedUri);\n        link.setAttribute(\"download\", \"cassette.js\");\n        link.click();\n\n        //ensure that users knows about the new cassette\n        window.alert(\"Missing recorded data. New cassette recorded\");\n      }\n      this.reset();\n    },\n\n    reset: function(){\n      responses = [];\n      strings = [];\n    }\n  };\n\n});","define('dummy/tests/helpers/cassette', ['exports'], function (exports) {\n\n\t'use strict';\n\n\texports['default'] = function(server) {\n\tserver.respondWith( 'GET',\n\t'/api/foo', [ 200, {}, \"{}\" ]);\n\t}\n\n});","define('dummy/tests/helpers/fake-server', ['exports'], function (exports) {\n\n  'use strict';\n\n  exports.startServer = startServer;\n  exports.stopServer = stopServer;\n  exports.setupServer = setupServer;\n  exports.getServer = getServer;\n\n  var server;\n\n  function startServer(){\n    if (server) {\n      console.warn('startServer called while server is already running, ignoring.');\n      return;\n    }\n    server = sinon.fakeServer.create();\n    server.autoRespond = true;\n    server.autoRespondAfter = 1;\n    server.xhr.useFilters = true;\n\n    //fake response to make sure the response hash is generated\n    server.respondWith('GET', '/foo/bar', [200,{},\"\"]);\n    server.xhr.addFilter(function(method, url) {\n      //whenever the this returns true the request will not be faked\n      var fake = true;\n      server.responses.forEach(function(response){\n        if(response.url === url){\n          fake = false;\n          return;\n        }\n      });\n      if (fake) {\n        console.error(\"request for url not faked:\" + url);\n      }\n      return fake;\n    });\n  }\n\n  function stopServer() {\n    if(server) {\n      server.restore();\n      server = null;\n    }\n  }\n\n  function setupServer(setup) {\n    setup(server);\n  }\n\n  function getServer(){\n    if (!server) {\n      console.log('STARTING server from getServer');\n      startServer();\n    }\n    return server;\n  }\n\n});","define('dummy/tests/helpers/insert-cassette', ['exports', './fake-server', './betamax-recorder'], function (exports, fake_server, betamaxRecorder) {\n\n  'use strict';\n\n  exports['default'] = function(cassette){\n\n    QUnit.config.urlConfig.push({\n      id: 'record',\n      value: 'true',\n      label: 'record API Queries',\n      tooltip: 'Allow for live API querying and save the results'\n    });\n\n    QUnit.begin(function(){\n      fake_server.startServer();\n      //if record is not selected, use recordings\n      if(!(QUnit.urlParams && QUnit.urlParams.record)){\n        fake_server.setupServer(cassette);\n      }\n      betamaxRecorder['default'].setup();\n    });\n\n    QUnit.done(function(){\n      fake_server.stopServer();\n      //if we are not in testem, download new casettes.\n      if(QUnit.urlParams && QUnit.urlParams.record){\n        betamaxRecorder['default'].download();\n      }\n    });\n  }\n\n});","define('dummy/tests/helpers/resolver', ['exports', 'ember/resolver', '../../config/environment'], function (exports, Resolver, config) {\n\n  'use strict';\n\n  var resolver = Resolver['default'].create();\n\n  resolver.namespace = {\n    modulePrefix: config['default'].modulePrefix,\n    podModulePrefix: config['default'].podModulePrefix\n  };\n\n  exports['default'] = resolver;\n\n});","define('dummy/tests/helpers/start-app', ['exports', 'ember', '../../app', '../../router', '../../config/environment'], function (exports, Ember, Application, Router, config) {\n\n  'use strict';\n\n  function startApp(attrs) {\n    var application;\n\n    var attributes = Ember['default'].merge({}, config['default'].APP);\n    attributes = Ember['default'].merge(attributes, attrs); // use defaults, but you can override;\n\n    Ember['default'].run(function() {\n      application = Application['default'].create(attributes);\n      application.setupForTesting();\n      application.injectTestHelpers();\n    });\n\n    return application;\n  }\n  exports['default'] = startApp;\n\n});","define('dummy/tests/router.jshint', function () {\n\n  'use strict';\n\n  module('JSHint - .');\n  test('router.js should pass jshint', function() { \n    ok(true, 'router.js should pass jshint.'); \n  });\n\n});","define('dummy/tests/test-helper', ['./helpers/resolver', './helpers/insert-cassette', './helpers/cassette', 'ember-qunit'], function (resolver, insertCassette, cassette, ember_qunit) {\n\n  'use strict';\n\n  ember_qunit.setResolver(resolver['default']);\n  insertCassette['default'](cassette['default']);\n\n  document.write('<div id=\"ember-testing-container\"><div id=\"ember-testing\"></div></div>');\n\n  QUnit.config.urlConfig.push({ id: 'nocontainer', label: 'Hide container' });\n  var containerVisibility = QUnit.urlParams.nocontainer ? 'hidden' : 'visible';\n  document.getElementById('ember-testing-container').style.visibility = containerVisibility;\n\n});","/* jshint ignore:start */\n\ndefine('dummy/config/environment', ['ember'], function(Ember) {\n  var prefix = 'dummy';\n/* jshint ignore:start */\n\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = Ember['default'].$('meta[name=\"' + metaName + '\"]').attr('content');\n  var config = JSON.parse(unescape(rawConfig));\n\n  return { 'default': config };\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n/* jshint ignore:end */\n\n});\n\nif (runningTests) {\n  require(\"dummy/tests/test-helper\");\n} else {\n  require(\"dummy/app\")[\"default\"].create({});\n}\n\n/* jshint ignore:end */\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;","file":"dummy.js"}