aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/status.py
blob: 30df5cef3f0a4a6420ef6231f3b2ebe5cd76df4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
"""Tests for the status module"""
from django.test import TestCase
from rest_framework import status


class TestStatus(TestCase):
    """Simple sanity test to check the status module"""

    def test_status(self):
        """Ensure the status module is present and correct."""
        self.assertEquals(200, status.HTTP_200_OK)
        self.assertEquals(404, status.HTTP_404_NOT_FOUND)
id='n91' href='#n91'>91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
'use strict';

/**
 * @license AngularJS
 * (c) 2010-2011 AngularJS http://angularjs.org
 * License: MIT
 */
(function(window) {

  var filename = /^(.*\/)angular-bootstrap.js(#.*)?$/,
      scripts = document.getElementsByTagName("SCRIPT"),
      serverPath,
      match,
      globalVars = {};

  for(var j = 0; j < scripts.length; j++) {
    match = (scripts[j].src || "").match(filename);
    if (match) {
      serverPath = match[1];
    }
  }

  function key(prop) {
    return "ng-clobber_" + prop;
  }

  window.angularClobberTest = function(file) {
    var varKey, prop,
        clobbered = [];

    for (prop in window) {
      varKey = key(prop);

      if (prop === 'event') { //skip special variables which keep on changing
        continue;
      }
      else if (!globalVars.hasOwnProperty(varKey)) {
        //console.log('new global variable found: ', prop);
        try {
          globalVars[varKey] = window[prop];
        } catch(e) {} //ignore properties that throw exception when accessed (common in FF)
      } else if (globalVars[varKey] !== window[prop] && !isActuallyNaN(window[prop]) && prop != 'jqLite') {
        clobbered.push(prop);
        console.error("Global variable clobbered by script " + file + "! Variable name: " + prop);
        globalVars[varKey] = window[prop];
      }
    }
    for (varKey in globalVars) {
      prop = varKey.substr(11);
      if (clobbered.indexOf(prop) == -1 &&
          prop != 'event' &&
          prop != 'jqLite' &&
          !isActuallyNaN(globalVars[varKey]) &&
          globalVars[varKey] !== window[prop]) {

        delete globalVars[varKey];
        console.warn("Global variable unexpectedly deleted in script " + file + "! " +
                     "Variable name: " + prop);
      }
    }

    function isActuallyNaN(val) {
      return isNaN(val) && (typeof val === 'number');
    }
  };

  function addScripts(){
    var prop, i;

    // initialize the window property cache
    for (prop in window) {
      try {
        globalVars[key(prop)] = window[prop];
      } catch(e) {} //ignore properties that throw exception when accessed (common in FF)
    }

    // load the js scripts
    for (i in Array.prototype.slice.call(arguments, 0)) {
      file = arguments[i];
      document.write('<script type="text/javascript" src="' + serverPath + file + '" ' +
                             'onload="angularClobberTest(\'' + file + '\')"></script>');
    }
  }

  function addCss(file) {
    document.write('<link rel="stylesheet" type="text/css" href="' +
                      serverPath + '../css/' + file  + '"/>');
  }

  addCss('angular.css');

  addScripts('Angular.js',
             'JSON.js',
             'Compiler.js',
             'Scope.js',
             'Injector.js',
             'jqLite.js',
             'parser.js',
             'Resource.js',
             'Browser.js',
             'sanitizer.js',
             'AngularPublic.js',

             // Extension points

             'service/cookieStore.js',
             'service/cookies.js',
             'service/defer.js',
             'service/document.js',
             'service/exceptionHandler.js',
             'service/hover.js',
             'service/invalidWidgets.js',
             'service/location.js',
             'service/log.js',
             'service/resource.js',
             'service/route.js',
             'service/updateView.js',
             'service/window.js',
             'service/xhr.bulk.js',
             'service/xhr.cache.js',
             'service/xhr.error.js',
             'service/xhr.js',

             'apis.js',
             'filters.js',
             'formatters.js',
             'validators.js',
             'directives.js',
             'markups.js',
             'widgets.js');


  function onLoadListener(){
    // empty the cache to prevent mem leaks
    globalVars = {};

    var config = angularJsConfig(document);

    // angular-ie-compat.js needs to be pregenerated for development with IE<8
    config.ie_compat = serverPath + '../build/angular-ie-compat.js';

    angularInit(config, document);
  }

  if (window.addEventListener){
    window.addEventListener('load', onLoadListener, false);
  } else if (window.attachEvent){
    window.attachEvent('onload', onLoadListener);
  }

})(window);