Explorar o código

Remove Jasmine Test Framework

@soyjavi %!s(int64=14) %!d(string=hai) anos
pai
achega
b06f7c5f1a
Modificáronse 100 ficheiros con 0 adicións e 16009 borrados
  1. 0 20
      vendor/jasmine-1.1.0/MIT.LICENSE
  2. 0 190
      vendor/jasmine-1.1.0/jasmine-html.js
  3. 0 166
      vendor/jasmine-1.1.0/jasmine.css
  4. 0 2476
      vendor/jasmine-1.1.0/jasmine.js
  5. BIN=BIN
      vendor/jasmine-1.1.0/jasmine_favicon.png
  6. 0 131
      vendor/node-jasmine-dom/README.md
  7. 0 186
      vendor/node-jasmine-dom/bin/jasmine-dom
  8. 0 7
      vendor/node-jasmine-dom/examples/config.yaml
  9. 0 36
      vendor/node-jasmine-dom/examples/runner.html
  10. 0 28
      vendor/node-jasmine-dom/examples/runner2.html
  11. 0 7
      vendor/node-jasmine-dom/examples/src/example-dom.js
  12. 0 5
      vendor/node-jasmine-dom/examples/src/example-functions-2.js
  13. 0 5
      vendor/node-jasmine-dom/examples/src/example-functions.js
  14. 0 18
      vendor/node-jasmine-dom/examples/tests/helper/jquery.js
  15. 0 183
      vendor/node-jasmine-dom/examples/tests/lib/jasmine-html.js
  16. 0 167
      vendor/node-jasmine-dom/examples/tests/lib/jasmine.css
  17. 0 2421
      vendor/node-jasmine-dom/examples/tests/lib/jasmine.js
  18. 0 9
      vendor/node-jasmine-dom/examples/tests/spec/example-dom_spec.js
  19. 0 12
      vendor/node-jasmine-dom/examples/tests/spec/example-functions-2_spec.js
  20. 0 12
      vendor/node-jasmine-dom/examples/tests/spec/example-functions_spec.js
  21. 0 174
      vendor/node-jasmine-dom/lib/jasmine-dom/index.js
  22. 0 110
      vendor/node-jasmine-dom/lib/jasmine-dom/reporter-agregator.js
  23. 0 45
      vendor/node-jasmine-dom/lib/jasmine-dom/reporter-html.js
  24. 0 72
      vendor/node-jasmine-dom/lib/jasmine-dom/reporter-junit.js
  25. 0 91
      vendor/node-jasmine-dom/lib/jasmine-dom/reporter-simple.js
  26. 0 183
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine-html.js
  27. 0 167
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine.css
  28. 0 2421
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine.js
  29. 0 18
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/jquery.js
  30. 0 102
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/simple.html
  31. 0 12
      vendor/node-jasmine-dom/lib/jasmine-dom/resources/skeleton.html
  32. 0 99
      vendor/node-jasmine-dom/lib/jasmine-dom/runner-from-html.js
  33. 0 73
      vendor/node-jasmine-dom/lib/jasmine-dom/server.js
  34. 0 9
      vendor/node-jasmine-dom/node_modules/cssom/.idea/CSSOM.iml
  35. 0 3
      vendor/node-jasmine-dom/node_modules/cssom/.idea/dictionaries/nv.xml
  36. 0 5
      vendor/node-jasmine-dom/node_modules/cssom/.idea/encodings.xml
  37. 0 17
      vendor/node-jasmine-dom/node_modules/cssom/.idea/misc.xml
  38. 0 9
      vendor/node-jasmine-dom/node_modules/cssom/.idea/modules.xml
  39. 0 82
      vendor/node-jasmine-dom/node_modules/cssom/.idea/projectCodeStyle.xml
  40. 0 8
      vendor/node-jasmine-dom/node_modules/cssom/.idea/vcs.xml
  41. 0 467
      vendor/node-jasmine-dom/node_modules/cssom/.idea/workspace.xml
  42. 0 19
      vendor/node-jasmine-dom/node_modules/cssom/.livereload
  43. 0 37
      vendor/node-jasmine-dom/node_modules/cssom/Jakefile
  44. 0 33
      vendor/node-jasmine-dom/node_modules/cssom/README.mdown
  45. 0 23
      vendor/node-jasmine-dom/node_modules/cssom/Rakefile
  46. 0 19
      vendor/node-jasmine-dom/node_modules/cssom/docs/.livereload
  47. 0 3
      vendor/node-jasmine-dom/node_modules/cssom/docs/bar.css
  48. 0 0
      vendor/node-jasmine-dom/node_modules/cssom/docs/demo.css
  49. 0 4
      vendor/node-jasmine-dom/node_modules/cssom/docs/foo.css
  50. 0 170
      vendor/node-jasmine-dom/node_modules/cssom/docs/parse.html
  51. 0 431
      vendor/node-jasmine-dom/node_modules/cssom/docs/parse2.html
  52. 0 100
      vendor/node-jasmine-dom/node_modules/cssom/index.html
  53. 0 34
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSImportRule.js
  54. 0 38
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSMediaRule.js
  55. 0 3
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSOM.js
  56. 0 38
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSRule.js
  57. 0 130
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleDeclaration.js
  58. 0 187
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleRule.js
  59. 0 85
      vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleSheet.js
  60. 0 61
      vendor/node-jasmine-dom/node_modules/cssom/lib/MediaList.js
  61. 0 15
      vendor/node-jasmine-dom/node_modules/cssom/lib/StyleSheet.js
  62. 0 69
      vendor/node-jasmine-dom/node_modules/cssom/lib/clone.js
  63. 0 10
      vendor/node-jasmine-dom/node_modules/cssom/lib/index.js
  64. 0 195
      vendor/node-jasmine-dom/node_modules/cssom/lib/parse.js
  65. 0 17
      vendor/node-jasmine-dom/node_modules/cssom/media.html
  66. 0 30
      vendor/node-jasmine-dom/node_modules/cssom/package.json
  67. 0 32
      vendor/node-jasmine-dom/node_modules/cssom/plugins/toHTML.js
  68. 0 22
      vendor/node-jasmine-dom/node_modules/cssom/server/index.html
  69. 0 21
      vendor/node-jasmine-dom/node_modules/cssom/server/index.js
  70. 0 21
      vendor/node-jasmine-dom/node_modules/cssom/shorthands.html
  71. 0 35
      vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleDeclaration.test.js
  72. 0 12
      vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleRule.test.js
  73. 0 16
      vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleSheet.test.js
  74. 0 21
      vendor/node-jasmine-dom/node_modules/cssom/test/MediaList.test.js
  75. 0 38
      vendor/node-jasmine-dom/node_modules/cssom/test/clone.test.js
  76. 0 3
      vendor/node-jasmine-dom/node_modules/cssom/test/fixtures/dummy.css
  77. 0 97
      vendor/node-jasmine-dom/node_modules/cssom/test/helper.js
  78. 0 42
      vendor/node-jasmine-dom/node_modules/cssom/test/index.html
  79. 0 346
      vendor/node-jasmine-dom/node_modules/cssom/test/parse.test.js
  80. 0 189
      vendor/node-jasmine-dom/node_modules/cssom/test/vendor/qunit.css
  81. 0 1341
      vendor/node-jasmine-dom/node_modules/cssom/test/vendor/qunit.js
  82. 0 17
      vendor/node-jasmine-dom/node_modules/htmlparser/.project
  83. 0 17
      vendor/node-jasmine-dom/node_modules/htmlparser/.project.bak
  84. 0 6
      vendor/node-jasmine-dom/node_modules/htmlparser/.settings/.jsdtscope
  85. 0 1
      vendor/node-jasmine-dom/node_modules/htmlparser/.settings/org.eclipse.wst.jsdt.ui.superType.container
  86. 0 1
      vendor/node-jasmine-dom/node_modules/htmlparser/.settings/org.eclipse.wst.jsdt.ui.superType.name
  87. 0 33
      vendor/node-jasmine-dom/node_modules/htmlparser/CHANGELOG
  88. 0 18
      vendor/node-jasmine-dom/node_modules/htmlparser/LICENSE
  89. 0 186
      vendor/node-jasmine-dom/node_modules/htmlparser/README.md
  90. 0 35
      vendor/node-jasmine-dom/node_modules/htmlparser/a
  91. 0 35
      vendor/node-jasmine-dom/node_modules/htmlparser/b
  92. 0 35
      vendor/node-jasmine-dom/node_modules/htmlparser/c
  93. 0 482
      vendor/node-jasmine-dom/node_modules/htmlparser/json2.js
  94. 0 822
      vendor/node-jasmine-dom/node_modules/htmlparser/lib/htmlparser.js
  95. 0 22
      vendor/node-jasmine-dom/node_modules/htmlparser/lib/htmlparser.min.js
  96. 0 6
      vendor/node-jasmine-dom/node_modules/htmlparser/lib/node-htmlparser.js
  97. 0 6
      vendor/node-jasmine-dom/node_modules/htmlparser/lib/node-htmlparser.min.js
  98. BIN=BIN
      vendor/node-jasmine-dom/node_modules/htmlparser/libxmljs.node
  99. 0 54
      vendor/node-jasmine-dom/node_modules/htmlparser/newparser.js
  100. 0 0
      vendor/node-jasmine-dom/node_modules/htmlparser/node-htmlparser.old.js

+ 0 - 20
vendor/jasmine-1.1.0/MIT.LICENSE

@@ -1,20 +0,0 @@
-Copyright (c) 2008-2011 Pivotal Labs
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 190
vendor/jasmine-1.1.0/jasmine-html.js

@@ -1,190 +0,0 @@
-jasmine.TrivialReporter = function(doc) {
-  this.document = doc || document;
-  this.suiteDivs = {};
-  this.logRunningSpecs = false;
-};
-
-jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
-  var el = document.createElement(type);
-
-  for (var i = 2; i < arguments.length; i++) {
-    var child = arguments[i];
-
-    if (typeof child === 'string') {
-      el.appendChild(document.createTextNode(child));
-    } else {
-      if (child) { el.appendChild(child); }
-    }
-  }
-
-  for (var attr in attrs) {
-    if (attr == "className") {
-      el[attr] = attrs[attr];
-    } else {
-      el.setAttribute(attr, attrs[attr]);
-    }
-  }
-
-  return el;
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
-  var showPassed, showSkipped;
-
-  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
-      this.createDom('div', { className: 'banner' },
-        this.createDom('div', { className: 'logo' },
-            this.createDom('span', { className: 'title' }, "Jasmine"),
-            this.createDom('span', { className: 'version' }, runner.env.versionString())),
-        this.createDom('div', { className: 'options' },
-            "Show ",
-            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
-            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
-            )
-          ),
-
-      this.runnerDiv = this.createDom('div', { className: 'runner running' },
-          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
-          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
-          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
-      );
-
-  this.document.body.appendChild(this.outerDiv);
-
-  var suites = runner.suites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    var suiteDiv = this.createDom('div', { className: 'suite' },
-        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
-        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
-    this.suiteDivs[suite.id] = suiteDiv;
-    var parentDiv = this.outerDiv;
-    if (suite.parentSuite) {
-      parentDiv = this.suiteDivs[suite.parentSuite.id];
-    }
-    parentDiv.appendChild(suiteDiv);
-  }
-
-  this.startedAt = new Date();
-
-  var self = this;
-  showPassed.onclick = function(evt) {
-    if (showPassed.checked) {
-      self.outerDiv.className += ' show-passed';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
-    }
-  };
-
-  showSkipped.onclick = function(evt) {
-    if (showSkipped.checked) {
-      self.outerDiv.className += ' show-skipped';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
-    }
-  };
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
-  var results = runner.results();
-  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
-  this.runnerDiv.setAttribute("class", className);
-  //do it twice for IE
-  this.runnerDiv.setAttribute("className", className);
-  var specs = runner.specs();
-  var specCount = 0;
-  for (var i = 0; i < specs.length; i++) {
-    if (this.specFilter(specs[i])) {
-      specCount++;
-    }
-  }
-  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
-  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
-  this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
-
-  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
-};
-
-jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
-  var results = suite.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.totalCount === 0) { // todo: change this to check results.skipped
-    status = 'skipped';
-  }
-  this.suiteDivs[suite.id].className += " " + status;
-};
-
-jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
-  if (this.logRunningSpecs) {
-    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
-  }
-};
-
-jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
-  var results = spec.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.skipped) {
-    status = 'skipped';
-  }
-  var specDiv = this.createDom('div', { className: 'spec '  + status },
-      this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
-      this.createDom('a', {
-        className: 'description',
-        href: '?spec=' + encodeURIComponent(spec.getFullName()),
-        title: spec.getFullName()
-      }, spec.description));
-
-
-  var resultItems = results.getItems();
-  var messagesDiv = this.createDom('div', { className: 'messages' });
-  for (var i = 0; i < resultItems.length; i++) {
-    var result = resultItems[i];
-
-    if (result.type == 'log') {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
-    } else if (result.type == 'expect' && result.passed && !result.passed()) {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
-
-      if (result.trace.stack) {
-        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
-      }
-    }
-  }
-
-  if (messagesDiv.childNodes.length > 0) {
-    specDiv.appendChild(messagesDiv);
-  }
-
-  this.suiteDivs[spec.suite.id].appendChild(specDiv);
-};
-
-jasmine.TrivialReporter.prototype.log = function() {
-  var console = jasmine.getGlobal().console;
-  if (console && console.log) {
-    if (console.log.apply) {
-      console.log.apply(console, arguments);
-    } else {
-      console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
-    }
-  }
-};
-
-jasmine.TrivialReporter.prototype.getLocation = function() {
-  return this.document.location;
-};
-
-jasmine.TrivialReporter.prototype.specFilter = function(spec) {
-  var paramMap = {};
-  var params = this.getLocation().search.substring(1).split('&');
-  for (var i = 0; i < params.length; i++) {
-    var p = params[i].split('=');
-    paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
-  }
-
-  if (!paramMap.spec) {
-    return true;
-  }
-  return spec.getFullName().indexOf(paramMap.spec) === 0;
-};

+ 0 - 166
vendor/jasmine-1.1.0/jasmine.css

@@ -1,166 +0,0 @@
-body {
-  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
-}
-
-
-.jasmine_reporter a:visited, .jasmine_reporter a {
-  color: #303; 
-}
-
-.jasmine_reporter a:hover, .jasmine_reporter a:active {
-  color: blue; 
-}
-
-.run_spec {
-  float:right;
-  padding-right: 5px;
-  font-size: .8em;
-  text-decoration: none;
-}
-
-.jasmine_reporter {
-  margin: 0 5px;
-}
-
-.banner {
-  color: #303;
-  background-color: #fef;
-  padding: 5px;
-}
-
-.logo {
-  float: left;
-  font-size: 1.1em;
-  padding-left: 5px;
-}
-
-.logo .version {
-  font-size: .6em;
-  padding-left: 1em;
-}
-
-.runner.running {
-  background-color: yellow;
-}
-
-
-.options {
-  text-align: right;
-  font-size: .8em;
-}
-
-
-
-
-.suite {
-  border: 1px outset gray;
-  margin: 5px 0;
-  padding-left: 1em;
-}
-
-.suite .suite {
-  margin: 5px; 
-}
-
-.suite.passed {
-  background-color: #dfd;
-}
-
-.suite.failed {
-  background-color: #fdd;
-}
-
-.spec {
-  margin: 5px;
-  padding-left: 1em;
-  clear: both;
-}
-
-.spec.failed, .spec.passed, .spec.skipped {
-  padding-bottom: 5px;
-  border: 1px solid gray;
-}
-
-.spec.failed {
-  background-color: #fbb;
-  border-color: red;
-}
-
-.spec.passed {
-  background-color: #bfb;
-  border-color: green;
-}
-
-.spec.skipped {
-  background-color: #bbb;
-}
-
-.messages {
-  border-left: 1px dashed gray;
-  padding-left: 1em;
-  padding-right: 1em;
-}
-
-.passed {
-  background-color: #cfc;
-  display: none;
-}
-
-.failed {
-  background-color: #fbb;
-}
-
-.skipped {
-  color: #777;
-  background-color: #eee;
-  display: none;
-}
-
-
-/*.resultMessage {*/
-  /*white-space: pre;*/
-/*}*/
-
-.resultMessage span.result {
-  display: block;
-  line-height: 2em;
-  color: black;
-}
-
-.resultMessage .mismatch {
-  color: black;
-}
-
-.stackTrace {
-  white-space: pre;
-  font-size: .8em;
-  margin-left: 10px;
-  max-height: 5em;
-  overflow: auto;
-  border: 1px inset red;
-  padding: 1em;
-  background: #eef;
-}
-
-.finished-at {
-  padding-left: 1em;
-  font-size: .6em;
-}
-
-.show-passed .passed,
-.show-skipped .skipped {
-  display: block;
-}
-
-
-#jasmine_content {
-  position:fixed;
-  right: 100%;
-}
-
-.runner {
-  border: 1px solid gray;
-  display: block;
-  margin: 5px 0;
-  padding: 2px 0 2px 10px;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 2476
vendor/jasmine-1.1.0/jasmine.js


BIN=BIN
vendor/jasmine-1.1.0/jasmine_favicon.png


+ 0 - 131
vendor/node-jasmine-dom/README.md

@@ -1,131 +0,0 @@
-node-jasmine-dom
-================
-
-Run your browser-based [jasmine][1] specs headless with [node.js][2]. Then 
-output in one of many formats such as JSON or JUnit XML (perfect
-for integration with CI servers like [Jenkins][3]).
-
-installation
-------------
-1. you've got [npm][4], right?
-2. Groovy. <code>npm install jasmine-dom</code>, and you're away laughing.
-
-usage
------
-Construct your SpecRunner.html as shown in the jasmine examples,
-then run:
-
-    jasmine-dom --runner path/to/SpecRunner.html
-
-or
-
-    jasmine-dom --config path/to/config.yaml
-
-You can optionally provide the following arguments:
-
- * <code>--help</code>, provides usage information
- * <code>--format simple|nice|json|html|junit</code>, displays the result in the specified format
- * <code>--output path</code>, writes the output to the specified file
- * <code>--server [port]</code>, serves a simple (but effective) page showing the current state
-                                 of the tests. You can also specify an optional <code>--refresh
-                                 intervalInMS</code> argument to specify the wait between running
-                                 the tests (because the server is constantly running 'em).
-
-server
-------
-
-    jasmine-dom --runner examples/runner.html --server 8090 --refresh 3000
-
-will run a server on http://localhost:8090/. Here a simple green or red page will reflect the current state
-of your tests. The tests will run every 3000ms, and the page ajaximatically updates with the result.
-
-If you'd like to see the default jasmine html, visit http://localhost:8090/jasmine. Note, the result is still
-obtained via the nodejs runner (i.e. it wasn't run in your browser).
-
-specifying runners
-------------------
-A single runner file can be provided via the <code>--runner <path_to_runner></code> command. To specify more than one
-runner, use the <code>--config <path_to_config></code> argument and a yaml config file in the format:
-
-```yaml
----
-  test_one:
-    name: This is the name of the first set of tests
-    runner: path/to/runner_1.html
-  test_two:
-    name: This is the name of the second set of tests
-    runner: path/to/another/runner.html
-```
-
-The config file allows you to provide names for your runners. These names will be used when identifying failing tests.
-
-example 1
----------
-    jasmine-dom --runner examples/runner.html
-
-will output:
-
-    Failed.
-
-example 2
----------
-
-    jasmine-dom --runner examples/runner.html --format junit --output javascript_results.xml
-
-will write to javascript_results.xml:
-
-    <testsuite>
-        <testcase classname="/Users/andrew/development/node-jasmine-dom/examples/runner.html.Example_functions_that_update_the_DOM.Should_add_two_numbers" name="expect toEqual 7" time="undefined"/>
-        <testcase classname="/Users/andrew/development/node-jasmine-dom/examples/runner.html.Example_functions.Should_multiply_two_numbers" name="expect toEqual 40" time="undefined"/>
-        <testcase classname="/Users/andrew/development/node-jasmine-dom/examples/runner.html.Example_functions.Should_fail!!" name="expect toEqual 8">
-            <failure>
-                <![CDATA[
-                    FAILURE in spec "Should fail!!": Expected 3 to equal 8.
-                    Error: Expected 3 to equal 8.
-                        at new <anonymous> (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:94:50)
-                        at [object Object].toEqual (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:1138:29)
-                        at [object Object].<anonymous> (/Users/andrew/development/node-jasmine-dom/examples/tests/spec/example-functions_spec.js:10:13)
-                        at [object Object].execute (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:968:15)
-                        at [object Object].next_ (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:1739:31)
-                        at [object Object].start (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:1692:8)
-                        at [object Object].execute (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:2018:14)
-                        at [object Object].next_ (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:1739:31)
-                        at [object Object].start (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:1692:8)
-                        at [object Object].execute (/Users/andrew/development/node-jasmine-dom/examples/tests/lib/jasmine.js:2163:14)
-                ]]>
-            </failure>
-        </testcase>
-    </testsuite>
-
-example 3
----------
-
-    jasmine-dom --config ./examples/config.yaml --format nice
-
-with ./examples/config.yaml:
-
-    ---
-      test_one:
-        name: Example test one
-        runner: ./runner.html
-      test_two:
-        name: Example test two
-        runner: ./runner2.html
-
-will output:
-
-    Failed: 
-     - In Example test two >> Example functions (some more) >> Should fail!! :: Expected false to be truthy.
-     - In Example test one >> Example functions >> Should fail!! :: Expected 3 to equal 8.
-
-have you seen **[jasmine-node][5]**?
-------------------------------------
-It's provided a lot of inspiration for this project, and may be just what
-you're looking for. If you're not reliant on a DOM, then it's worth checking
-out.
-
-[1]: http://pivotal.github.com/jasmine/
-[2]: http://nodejs.org/
-[3]: http://jenkins-ci.org/
-[4]: http://npmjs.org/
-[5]: https://github.com/mhevery/jasmine-node

+ 0 - 186
vendor/node-jasmine-dom/bin/jasmine-dom

@@ -1,186 +0,0 @@
-#!/usr/bin/env node
-
-function getArguments(args){
-	var unprocessed = args,
-		processed = {}, 
-		key = "", 
-		value = "";
-
-	for(var i = 0; i < unprocessed.length; i++){
-		var arg = unprocessed[i];
-		if(arg.substr(0,2) == "--"){
-			if(key){
-				processed[key] = value;
-				key = "";
-				value = "";
-			}
-			key = arg.substr(2);
-		} else {
-			if(key) value += (value?" ":"") + arg;
-		}
-	};
-
-	if(key){
-		processed[key] = value;
-		key = "";
-		value = "";
-	};
-
-	return processed;
-};
-
-var arguments = getArguments(process.argv);
-var options = {
-	format: arguments.format || "default",
-	output: arguments.output || null,
-	debug: "debug" in arguments,
-	runner: arguments.runner,
-	server: "server" in arguments,
-	port: arguments.server,
-	help: "help" in arguments,
-	refreshInterval: arguments.refresh,
-	config: arguments.config
-};
-
-function _getAbsolutePath(file, base){
-	var path;
-	var base = base || process.cwd();
-	if (file.substring(0,1) == "/"){
-		path = file;
-	} else {
-		path = base + '/' + file;
-	}
-	return require('path').normalize(path);
-};
-
-function _getUsage(){
-	return "Usage: node run.js --runner <path> | --config <path> [--format simple|nice|json|html|junit] [--output <path>] [--server [port] [--refresh <ms interval>]] [--help]\n\n" +
-	       "For more information, visit https://github.com/andrewpmckenzie/node-jasmine-dom";
-};
-
-function _formatNice(obj){
-	if(obj.failed == 0){
-		return "Passed";
-	} else {
-		var message = "Failed: \n";
-		for( var k in obj.failureDetails ){
-			var details = obj.failureDetails[k];
-			message += " - In " + details.group + " >> " + details.suite + " >> " + details.spec + " :: " + details.message + "\n";
-		}
-		return message;
-	}
-};
-
-function _format(report){
-	var result = '';
-
-	switch(options.format){
-		case 'simple':
-		case 'default':
-			result = report.simple.status;
-			break;
-		case 'json':
-			result = JSON.stringify(report.simple);
-			break;
-		case 'nice':
-			result = _formatNice(report.simple);
-			break;
-		case 'html':
-			result = report.html;
-			break;
-		case 'junit':
-			result = report.junit;
-			break;
-		default:
-			console.error("Unknown format:" + options.format);
-			process.exit(0);
-			break;
-	};
-
-	return result;
-};
-
-function _output(text){
-	if(options.output){
-		var file = _getAbsolutePath(options.output);
-		require('fs').writeFile(file,text,function(err){
-			if(err) console.log("Something went wrong writing the report to disk: ",err);
-		});
-	} else if(options.server) {
-	    return;
-	} else {
-		console.log(text);
-	}
-};
-
-function _processReport(report){
-	var text = _format(report);
-	_output(text);
-};
-
-function _parseConfig(config){
-	var fs = require('fs'),
-		path = require('path');
-
-	var configPath = _getAbsolutePath(config);
-	var configBase = path.normalize(path.dirname(configPath));
-
-	var file = fs.readFileSync(config,'utf8');
-
-	var runnerConfig = [];
-	try {
-		var yaml = require('yaml').eval(file);
-
-		for(var k in yaml){
-			var runner = yaml[k];
-			if("runner" in runner){
-				runnerConfig.push({
-					name: runner.name,
-					runner: _getAbsolutePath(runner.runner, configBase)
-				});
-			}
-		};
-
-		if(runnerConfig.length == 0) throw "No runners specified in config. See examples/config.yaml for format.";
-
-	} catch (e) {
-		console.log("Invalid config file.\n\n");
-		console.error(e);
-		process.exit(1);
-	}
-
-	return runnerConfig;
-};
-
-function validate(options){
-	if (options.help){
-		console.log(_getUsage());
-		process.exit(0);
-	}
-	if (! options.runner && ! options.config) {
-		console.error("You need to specify a html --runner file.\n");
-		console.log(_getUsage());
-		process.exit(0);
-	}
-};
-
-function getRunners(runner, config){
-	if(config){
-		return _parseConfig(config);
-	} else {
-		return [ _getAbsolutePath(runner) ];
-	}
-};
-
-validate(options);
-
-require('../lib/jasmine-dom').run({
-	runners: getRunners(options.runner, options.config),
-	serve: options.server,
-	port: options.port,
-	refreshInterval: options.refreshInterval,
-	debug: options.debug,
-	onDone: function(report){
-		_processReport(report);
-	}
-});

+ 0 - 7
vendor/node-jasmine-dom/examples/config.yaml

@@ -1,7 +0,0 @@
----
-  test_one:
-    name: Example test one
-    runner: ./runner.html
-  test_two:
-    name: Example test two
-    runner: ./runner2.html

+ 0 - 36
vendor/node-jasmine-dom/examples/runner.html

@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-  "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-	<title>Jasmine Test Runner</title>
-	<link rel="stylesheet" type="text/css" href="tests/lib/jasmine.css">
-	<script src="tests/lib/jasmine.js"></script>
-	<script src="tests/lib/jasmine-html.js"></script>
-
-	<!-- include helper files here... -->
-	<script src="tests/helper/jquery.js"></script>
-
-	<!-- include source files here... -->
-	<script src="src/example-dom.js"></script>
-	<script src="src/example-functions.js"></script>
-
-	<!-- include spec files here... -->
-	<script src="tests/spec/example-dom_spec.js"></script>
-	<script src="tests/spec/example-functions_spec.js"></script>
-
-</head>
-<body>
-
-	<div id="add_test_one">
-		<span id="add_test_one_x">5</span>
-		<span id="add_test_one_y">2</span>
-		<span id="add_test_one_result">X</span>
-	</div>
-
-<script type="text/javascript">
-  jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
-  jasmine.getEnv().execute();
-</script>
-
-</body>
-</html>

+ 0 - 28
vendor/node-jasmine-dom/examples/runner2.html

@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-  "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-	<title>Jasmine Test Runner</title>
-	<link rel="stylesheet" type="text/css" href="tests/lib/jasmine.css">
-	<script src="tests/lib/jasmine.js"></script>
-	<script src="tests/lib/jasmine-html.js"></script>
-
-	<!-- include helper files here... -->
-	<script src="tests/helper/jquery.js"></script>
-
-	<!-- include source files here... -->
-	<script src="src/example-functions-2.js"></script>
-
-	<!-- include spec files here... -->
-	<script src="tests/spec/example-functions-2_spec.js"></script>
-
-</head>
-<body>
-
-<script type="text/javascript">
-  jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
-  jasmine.getEnv().execute();
-</script>
-
-</body>
-</html>

+ 0 - 7
vendor/node-jasmine-dom/examples/src/example-dom.js

@@ -1,7 +0,0 @@
-if(! window.EXAMPLES) window.EXAMPLES = {};
-
-EXAMPLES.domAdd = function(xId,yId,resultId){
-	var x = document.getElementById('add_test_one_x').innerHTML;
-	var y = document.getElementById('add_test_one_y').innerHTML;
-	document.getElementById('add_test_one_result').innerHTML = (+x) + (+y);
-};

+ 0 - 5
vendor/node-jasmine-dom/examples/src/example-functions-2.js

@@ -1,5 +0,0 @@
-if(! window.EXAMPLES) window.EXAMPLES = {};
-
-EXAMPLES.divide = function(x,y){
-	return x/y;
-}

+ 0 - 5
vendor/node-jasmine-dom/examples/src/example-functions.js

@@ -1,5 +0,0 @@
-if(! window.EXAMPLES) window.EXAMPLES = {};
-
-EXAMPLES.multiply = function(x,y){
-	return x*y;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 18
vendor/node-jasmine-dom/examples/tests/helper/jquery.js


+ 0 - 183
vendor/node-jasmine-dom/examples/tests/lib/jasmine-html.js

@@ -1,183 +0,0 @@
-// NOTE: contains modifications for jasmine-dom
-
-jasmine.TrivialReporter = function(doc) {
-  this.document = doc || document;
-  this.suiteDivs = {};
-  this.logRunningSpecs = false;
-};
-
-jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
-  var el = document.createElement(type);
-
-  for (var i = 2; i < arguments.length; i++) {
-    var child = arguments[i];
-
-    if (typeof child === 'string') {
-      el.appendChild(document.createTextNode(child));
-    } else {
-      if (child) { el.appendChild(child); }
-    }
-  }
-
-  for (var attr in attrs) {
-    if (attr == "className") {
-      el[attr] = attrs[attr];
-    } else {
-      el.setAttribute(attr, attrs[attr]);
-    }
-  }
-
-  return el;
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
-  var showPassed, showSkipped;
-
-  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
-      this.createDom('div', { className: 'banner' },
-        this.createDom('div', { className: 'logo' },
-            this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
-            this.createDom('span', { className: 'version' }, runner.env.versionString())),
-        this.createDom('div', { className: 'options' },
-            "Show ",
-            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
-            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
-            )
-          ),
-
-      this.runnerDiv = this.createDom('div', { className: 'runner running' },
-          this.createDom('span', { className: 'run_spec', href: '?' }, "run all"),
-          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
-          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
-      );
-
-  this.document.body.appendChild(this.outerDiv);
-
-  var suites = runner.suites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    var suiteDiv = this.createDom('div', { className: 'suite' },
-        this.createDom('span', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
-        this.createDom('span', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
-    this.suiteDivs[suite.id] = suiteDiv;
-    var parentDiv = this.outerDiv;
-    if (suite.parentSuite) {
-      parentDiv = this.suiteDivs[suite.parentSuite.id];
-    }
-    parentDiv.appendChild(suiteDiv);
-  }
-
-  this.startedAt = new Date();
-
-  var self = this;
-  showPassed.onclick = function(evt) {
-    if (showPassed.checked) {
-      self.outerDiv.className += ' show-passed';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
-    }
-  };
-
-  showSkipped.onclick = function(evt) {
-    if (showSkipped.checked) {
-      self.outerDiv.className += ' show-skipped';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
-    }
-  };
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
-  var results = runner.results();
-  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
-  this.runnerDiv.setAttribute("class", className);
-  //do it twice for IE
-  this.runnerDiv.setAttribute("className", className);
-  var specs = runner.specs();
-  var specCount = 0;
-  for (var i = 0; i < specs.length; i++) {
-    if (this.specFilter(specs[i])) {
-      specCount++;
-    }
-  }
-  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
-  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
-  this.runnerMessageSpan.replaceChild(this.createDom('span', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
-
-  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
-};
-
-jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
-  var results = suite.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.totalCount == 0) { // todo: change this to check results.skipped
-    status = 'skipped';
-  }
-  this.suiteDivs[suite.id].className += " " + status;
-};
-
-jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
-  if (this.logRunningSpecs) {
-    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
-  }
-};
-
-jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
-  var results = spec.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.skipped) {
-    status = 'skipped';
-  }
-  var specDiv = this.createDom('div', { className: 'spec '  + status },
-      this.createDom('span', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
-      this.createDom('span', {
-        className: 'description',
-        href: '?spec=' + encodeURIComponent(spec.getFullName()),
-        title: spec.getFullName()
-      }, spec.description));
-
-
-  var resultItems = results.getItems();
-  var messagesDiv = this.createDom('div', { className: 'messages' });
-  for (var i = 0; i < resultItems.length; i++) {
-    var result = resultItems[i];
-
-    if (result.type == 'log') {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
-    } else if (result.type == 'expect' && result.passed && !result.passed()) {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
-
-      if (result.trace.stack) {
-        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
-      }
-    }
-  }
-
-  if (messagesDiv.childNodes.length > 0) {
-    specDiv.appendChild(messagesDiv);
-  }
-
-  this.suiteDivs[spec.suite.id].appendChild(specDiv);
-};
-
-jasmine.TrivialReporter.prototype.log = function() {
-  var console = jasmine.getGlobal().console;
-  if (console && console.log) {
-    if (console.log.apply) {
-      console.log.apply(console, arguments);
-    } else {
-      console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
-    }
-  }
-};
-
-jasmine.TrivialReporter.prototype.getLocation = function() {
-  return this.document.location;
-};
-
-jasmine.TrivialReporter.prototype.specFilter = function(spec) {
-
-  return true;
-};

+ 0 - 167
vendor/node-jasmine-dom/examples/tests/lib/jasmine.css

@@ -1,167 +0,0 @@
-body {
-  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
-}
-
-
-.jasmine_reporter a:visited, .jasmine_reporter a {
-  color: #303; 
-}
-
-.jasmine_reporter a:hover, .jasmine_reporter a:active {
-  color: blue; 
-}
-
-.run_spec {
-  float:right;
-  padding-right: 5px;
-  font-size: .8em;
-  text-decoration: none;
-}
-
-.jasmine_reporter {
-  margin: 0 5px;
-}
-
-.banner {
-  color: #303;
-  background-color: #fef;
-  padding: 5px;
-}
-
-.logo {
-  float: left;
-  font-size: 1.1em;
-  padding-left: 5px;
-}
-
-.logo .version {
-  font-size: .6em;
-  padding-left: 1em;
-}
-
-.runner.running {
-  background-color: yellow;
-}
-
-
-.options {
-  visibility:hidden;
-  text-align: right;
-  font-size: .8em;
-}
-
-
-
-
-.suite {
-  border: 1px outset gray;
-  margin: 5px 0;
-  padding-left: 1em;
-}
-
-.suite .suite {
-  margin: 5px; 
-}
-
-.suite.passed {
-  background-color: #dfd;
-}
-
-.suite.failed {
-  background-color: #fdd;
-}
-
-.spec {
-  margin: 5px;
-  padding-left: 1em;
-  clear: both;
-}
-
-.spec.failed, .spec.passed, .spec.skipped {
-  padding-bottom: 5px;
-  border: 1px solid gray;
-}
-
-.spec.failed {
-  background-color: #fbb;
-  border-color: red;
-}
-
-.spec.passed {
-  background-color: #bfb;
-  border-color: green;
-}
-
-.spec.skipped {
-  background-color: #bbb;
-}
-
-.messages {
-  border-left: 1px dashed gray;
-  padding-left: 1em;
-  padding-right: 1em;
-}
-
-.passed {
-  background-color: #cfc;
-  display: none;
-}
-
-.failed {
-  background-color: #fbb;
-}
-
-.skipped {
-  color: #777;
-  background-color: #eee;
-  display: none;
-}
-
-
-/*.resultMessage {*/
-  /*white-space: pre;*/
-/*}*/
-
-.resultMessage span.result {
-  display: block;
-  line-height: 2em;
-  color: black;
-}
-
-.resultMessage .mismatch {
-  color: black;
-}
-
-.stackTrace {
-  white-space: pre;
-  font-size: .8em;
-  margin-left: 10px;
-  max-height: 5em;
-  overflow: auto;
-  border: 1px inset red;
-  padding: 1em;
-  background: #eef;
-}
-
-.finished-at {
-  padding-left: 1em;
-  font-size: .6em;
-}
-
-.show-passed .passed,
-.show-skipped .skipped {
-  display: block;
-}
-
-
-#jasmine_content {
-  position:fixed;
-  right: 100%;
-}
-
-.runner {
-  border: 1px solid gray;
-  display: block;
-  margin: 5px 0;
-  padding: 2px 0 2px 10px;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 2421
vendor/node-jasmine-dom/examples/tests/lib/jasmine.js


+ 0 - 9
vendor/node-jasmine-dom/examples/tests/spec/example-dom_spec.js

@@ -1,9 +0,0 @@
-describe("Example functions that update the DOM", function(){
-	it("Should add two numbers", function(){
-
-		EXAMPLES.domAdd('add_test_one_x', 'add_test_one_y', 'add_test_one_result');
-		var result = jQuery('#add_test_one_result').html();
-
-		expect(result).toEqual('7');
-	});
-});

+ 0 - 12
vendor/node-jasmine-dom/examples/tests/spec/example-functions-2_spec.js

@@ -1,12 +0,0 @@
-describe("Example functions (some more)", function(){
-	it("Should divide two numbers", function(){
-		var result = EXAMPLES.divide(8,2);
-
-		expect(result).toEqual(4);
-
-	});
-
-	it("Should fail!!", function(){
-		expect(false).toBeTruthy();
-	});
-});

+ 0 - 12
vendor/node-jasmine-dom/examples/tests/spec/example-functions_spec.js

@@ -1,12 +0,0 @@
-describe("Example functions", function(){
-	it("Should multiply two numbers", function(){
-		var result = EXAMPLES.multiply(5,8);
-
-		expect(result).toEqual(40);
-
-	});
-
-	it("Should fail!!", function(){
-		expect(3).toEqual(8);
-	});
-});

+ 0 - 174
vendor/node-jasmine-dom/lib/jasmine-dom/index.js

@@ -1,174 +0,0 @@
-var fs = require('fs'), 
-	path = require('path');
-
-function JasmineRunner(options, callback){
-
-	var doServer = options.serve,
-		port = options.port || 8081,
-		refreshInterval = options.refreshInterval || 2000,
-		runners = options.runners || null,
-		that = this;
-
-	this.isRunningTests = false;
-	this.isTestRunQueued = false;
-
-	this.reporter = this._setupReporter(function(){
-
-		callback();
-
-	}); // async
-
-	if(doServer){
-		this.server = that._setupServer({
-						port: port, 
-						reporter: this.reporter,
-						refreshInterval: refreshInterval
-					});
-
-	};
-
-	if(runners){
-		this.tests = this._setupRunners({
-						runners: runners, 
-						jasmineReporter: this.reporter.getJasmineReporter(),
-					});
-	} else {
-		console.error("I don't have any tests to run!");
-		process.exit(1);
-	}
-};
-
-JasmineRunner.prototype._setupReporter = function(callback){
-	console.debug("Setting up reporter");
-
-	var reporter = require('./reporter-agregator.js').create({
-			onDone: function(){ 
-					console.debug("Reporter created.");
-					callback();
-			}
-	});
-
-	return reporter;
-
-};
-
-JasmineRunner.prototype._setupServer = function(options){
-	console.debug("Setting up server");
-	var that = this,
-		server = require('./server.js');
-
-	server.start(options.port, function(){
-		callback(server);
-	});
-
-	options.reporter.onUpdate(function(report){
-		server.updateHtml(report.html);
-		server.updateJson(report.simple);
-
-		console.debug("Tests will run again in " + (options.refreshInterval/1000) + " seconds.");
-		setTimeout(function(){
-			that.runTests();
-		}, options.refreshInterval);
-	});
-
-	return server;
-};
-
-JasmineRunner.prototype._setupRunners = function(options,callback){
-	console.debug("Setting up tests.");
-
-	var tests = [];
-	var runners = options.runners || [],
-		jasmineReporter = options.jasmineReporter;
-
-	for(var k in runners){
-		var runner = runners[k];
-		console.debug('Creating test based on ' + runner);
-
-		var test = require('./runner-from-html.js').create({
-			runner: runner,
-			jasmineReporter: jasmineReporter
-		});
-		tests.push(test);
-	}
-
-	console.debug("Finished creating tests ( based on " +tests.length + " runner/s).");
-
-	return tests;
-};
-
-JasmineRunner.prototype.runTests = function(callback){
-
-	var that = this;
-
-	// We have to maintain synchronisity, otherwise things
-	// get hectic.
-	if(this.isRunningTests) {
-		// DANGER: if more than one call to runTests is made when
-		// tests are running, only the last callback will ever be
-		// triggered.
-		this.isTestRunQueued = true;
-		this.queuedCallback = callback;
-		console.debug("Cannot run tests concurrently. Queued another run.");
-		return;
-	};
-	var whenAllTestsHaveRun = function(){
-		console.debug("Finished running tests.");
-
-		if(callback) callback(that.reporter.getReport());
-		that.reporter.reset();
-
-		that.isRunningTests = false;
-		if(that.isTestRunQueued){
-			that.isTestRunQueued = false;
-			that.runTests(that.queuedCallback);
-			that.queuedCallback = false;
-		}
-	};
-
-	console.debug("Running tests.");
-	this.isRunningTests = true;
-
-	var queue = [],
-		tests = this.tests;
-	for(var i = 0; i < tests.length; i++) queue.push(tests[i]);
-
-	// !! Is recursive
-	var runNextTest = function(){
-		if(queue.length == 0){
-			whenAllTestsHaveRun();
-			return;
-		} 
-
-		var test = queue.pop();
-		console.debug("Running " + test.name);
-		test.run(function(){
-			console.debug("Finished running " + test.name);
-			runNextTest();
-		});
-	};
-
-	runNextTest();
-};
-
-exports.run = function(options, callback){
-	var onDone = options.onDone || function(){},
-		debug = options.debug;
-
-	console.debug = debug ? function(msg){ console.log(msg); } : function(msg){};
-
-	process.on('uncaughtException', function(err){
-		if(debug){
-			console.debug("An uncaught error occured!");
-			console.error(err.message + "\n",err.stack);
-		} else {
-			console.error("An error occurred while running the tests. Use the --debug switch to find out more.")
-			exit(1);
-		}
-	});
-
-	var runner = new JasmineRunner(options, function(){
-		runner.runTests(onDone);
-		callback( runner );
-	});
-};

+ 0 - 110
vendor/node-jasmine-dom/lib/jasmine-dom/reporter-agregator.js

@@ -1,110 +0,0 @@
-var path = require('path');
-var cp = function(o){ if(typeof o != 'object') return o; var n = {}; for(var k in o) n[k] = o[k]; return n; };
-
-function Reporter(options){
-
-	var onDone = options.onDone || function(){};
-
-	/**
-	 * A reporter should implement the jasmine reporter interface
-	 * as well as the following properties:
-	 * - {string} format         e.g. 'html'
-	 * - {function} getReport()
-	 * - {function} updateReport()
-	 * - {function} reset()
-	 */
-	this._updateListeners = [];
-
-	this.report = {};
-	this._jasmineReporters = {};
-	this._jasmineReporters['simpleReporter'] = require('./reporter-simple').create();
-	this._jasmineReporters['junitReporter'] = require('./reporter-junit').create();
-	this._jasmineReporters['htmlReporter'] = require('./reporter-html').create({
-		jasminePath: path.normalize(__dirname+'/resources/jasmine.js'),
-		jasmineHtmlPath: path.normalize(__dirname+'/resources/jasmine-html.js'),
-		skeletonPath: path.normalize(__dirname+'/resources/skeleton.html')
-	}, onDone);
-}
-
-Reporter.prototype._updateReport = function(){
-	// tell reporters to update themselves
-	for(var k in this._jasmineReporters){
-		var reporter = this._jasmineReporters[k];
-		reporter.updateReport();
-		this.report[reporter.format] = reporter.getReport();
-	}
-
-	for(var i = 0; i < this._updateListeners.length; i++){
-		this._updateListeners[i]( cp(this.report) );
-	}
-};
-
-Reporter.prototype.getJasmineReporter = function(){
-	var that = this;
-	return {
-		log : function(str){
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.log) reporter.log(str);
-			}
-		},
-		reportSpecStarting : function(runner) {
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportSpecStarting) reporter.reportSpecStarting(runner);
-			}
-		},
-		reportRunnerStarting : function(runner) { 
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportRunnerStarting) reporter.reportRunnerStarting(runner);
-			}
-		},
-		reportSuiteResults : function(suite) { 
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportSuiteResults) reporter.reportSuiteResults(suite);
-			}
-		},
-		reportSpecResults : function(spec) { 
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportSpecResults) reporter.reportSpecResults(spec);
-			}
-		},
-		reportRunnerResults : function(runner) {
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportRunnerResults) reporter.reportRunnerResults(runner);
-			}
-			that._updateReport();
-		},
-		reportStartingGroup : function(name){
-			for(var k in that._jasmineReporters){
-				var reporter = that._jasmineReporters[k];
-				if(reporter.reportStartingGroup) reporter.reportStartingGroup(name);
-			}
-		}
-	};
-};
-
-Reporter.prototype.onUpdate = function(callback){
-	this._updateListeners.push(callback);
-};
-
-Reporter.prototype.getReport = function(){
-	return this.report;
-};
-
-Reporter.prototype.reset = function(){
-	
-	for(var k in this._jasmineReporters){
-		var reporter = this._jasmineReporters[k];
-		reporter.reset();
-	}
-}
-
-exports.create = function(options){ 
-	var reporter = new Reporter(options);
-	return reporter;
-};

+ 0 - 45
vendor/node-jasmine-dom/lib/jasmine-dom/reporter-html.js

@@ -1,45 +0,0 @@
-function HtmlReporter(options, callback){
-	console.debug('Creating HtmlReporter');
-
-	this.format = 'html';
-	this._report = '';
-	this._window = {};
-
-	var jasmine = options.jasminePath,
-		jasmineHtml = options.jasmineHtmlPath,
-		skeleton = options.skeletonPath,
-		that = this;
-
-	console.debug('Constructing HtmlReporter DOM');
-	require('jsdom').env({
-		html: skeleton,
-		scripts: [ jasmine, jasmineHtml ],
-		done: function(errors,window){
-			if(errors) console.error('Error construction DOM for html reporter: ',errors);
-
-			console.debug('Creating TrivialReporter instance.');
-			var trivialReporter = new window.jasmine.TrivialReporter();
-
-			console.debug('Transferring TrivialReporter methods to HtmlReporter object');
-			for(var k in trivialReporter) that[k] = trivialReporter[k];
-
-			that._window = window;
-
-			console.debug('Done creating HtmlReporter');
-			callback(that);
-		}
-	});
-};
-HtmlReporter.prototype.updateReport = function(){
-	this._report = this._window.document.outerHTML;
-};
-HtmlReporter.prototype.getReport = function(){
-	return this._report;
-};
-HtmlReporter.prototype.reset = function(){
-	this._window.document.body.innerHTML = ''; // clear for next report
-};
-
-exports.create = function(options,callback){
-	return new HtmlReporter(options,callback);
-};

+ 0 - 72
vendor/node-jasmine-dom/lib/jasmine-dom/reporter-junit.js

@@ -1,72 +0,0 @@
-function JunitXmlReporter(opt){
-	console.debug('Creating JunitXmlReporter');
-
-	var that = this;
-
-	this.format = 'junit';
-	this.report = '';
-
-	this.xml = '';
-	this.currentSetData = '';
-	this.currentGroupName = '';
-
-};
-
-JunitXmlReporter.prototype.getReport = function(){
-	return this.report;
-};
-
-JunitXmlReporter.prototype.reportSpecResults = function(spec){
-	var s = function(s){
-		return s.replace(/\s/gi, '_');
-	};
-	var e = function(s){
-	    return s.replace(/\</gi, '&lt;').replace(/\>/gi, '&gt;').replace(/"/gi, "'");
-	}
-	
-	var specName = s(this.currentGroupName) + "." + s(spec.suite.description) + "." + s(spec.description);
-	
-	var results = spec.results().getItems();
-	for(var k in results){
-		var result = results[k];
-		var name = result.type + " " + result.matcherName + " " + (result.expected ? result.expected : "");
-		name = e(name);
-		specName = e(specName);
-		if(result.passed()){
-			this.xml += '<testcase classname="'+specName+'" name="'+name+'" time="'+result.time+'"/>';
-		} else {
-			this.xml += '<testcase classname="'+specName+'" name="'+name+'">';
-			this.xml += 	'<failure><![CDATA[';
-			this.xml += 		'FAILURE in spec "' + spec.description + '": ';
-			this.xml += 		result.message + "\n\n\n\n" + result.trace.stack;
-			this.xml += 	']]></failure>';
-			this.xml += '</testcase>';
-		}
-	}
-};
-
-JunitXmlReporter.prototype.reportSuiteResults = function(suite){
-	
-};
-
-JunitXmlReporter.prototype.reportRunnerResults = function(runner){
-	
-};
-
-JunitXmlReporter.prototype.reportStartingGroup = function(name){
-	this.currentGroupName = name;
-};
-
-JunitXmlReporter.prototype.updateReport = function(){
-	this.report = "<testsuite>"+this.xml+"</testsuite>";
-};
-
-JunitXmlReporter.prototype.reset = function(){
-	this.results = [];
-};
-
-
-
-exports.create = function(opt){
-	return new JunitXmlReporter(opt);
-}

+ 0 - 91
vendor/node-jasmine-dom/lib/jasmine-dom/reporter-simple.js

@@ -1,91 +0,0 @@
-var cp = function(o){ if(typeof o != 'object') return o; var n = {}; for(var k in o) n[k] = o[k]; return n; };
-
-function SimpleReporter(opt){
-	console.debug('Creating SimpleReporter');
-
-	var that = this;
-
-	this.format = 'simple';
-	this._report = {};
-
-	this.results = [];
-	this.currentSet = 0;
-
-};
-
-SimpleReporter.prototype.getReport = function(){
-	return cp(this._report);
-};
-
-SimpleReporter.prototype.reportStartingGroup = function(name){
-	this.results[this.currentSet] = this.results[this.currentSet] || {};
-	this.results[this.currentSet].name = name;
-}
-
-SimpleReporter.prototype.reportSpecResults = function(spec){
-
-	var items = spec.results().getItems();
-	for (var i = 0; i < items.length; i++){
-		if( ! items[i].passed_){
-			this.results[this.currentSet] = this.results[this.currentSet] || {};
-			this.results[this.currentSet].failures = this.results[this.currentSet].failures || [];
-
-			var failureReport = items[i];
-			failureReport.suite = spec.suite.description;
-			failureReport.spec = spec.description;
-			failureReport.group = this.results[this.currentSet].name;
-			this.results[this.currentSet].failures.push(failureReport);
-		}
-	}
-}
-
-SimpleReporter.prototype.reportRunnerResults = function(runner){
-	var results = runner.results();
-
-	this.results[this.currentSet] = this.results[this.currentSet] || {};
-	this.results[this.currentSet].passed = results.passedCount;
-	this.results[this.currentSet].failed = results.failedCount;
-	this.results[this.currentSet].total = results.totalCount;
-	this.currentSet++;
-}
-
-SimpleReporter.prototype.updateReport = function(){
-	var totalPassed = 0,
-		totalFailed = 0,
-		totalTests = 0,
-		totalSuites = 0,
-		failureDetails = [];
-
-	for(var k in this.results){
-		var result = this.results[k];
-		totalPassed += result.passed;
-		totalFailed += result.failed;
-		totalTests += result.total;
-		totalSuites++;
-		if(result.failures){
-			for(var j = 0; j < result.failures.length; j++){
-				failureDetails.push(result.failures[j]);
-			}
-		}
-	}
-
-	this._report = {
-		details: cp(this.results),
-		passed: totalPassed,
-		failed: totalFailed,
-		total: totalTests,
-		suites: totalSuites,
-		failureDetails: cp(failureDetails),
-		status: (totalFailed == 0) ? "Passed" : "Failed"
-	};
-};
-
-SimpleReporter.prototype.reset = function(){
-	this.results = [];
-};
-
-
-
-exports.create = function(opt){
-	return new SimpleReporter(opt);
-}

+ 0 - 183
vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine-html.js

@@ -1,183 +0,0 @@
-// NOTE: contains modifications for jasmine-dom
-
-jasmine.TrivialReporter = function(doc) {
-  this.document = doc || document;
-  this.suiteDivs = {};
-  this.logRunningSpecs = false;
-};
-
-jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
-  var el = document.createElement(type);
-
-  for (var i = 2; i < arguments.length; i++) {
-    var child = arguments[i];
-
-    if (typeof child === 'string') {
-      el.appendChild(document.createTextNode(child));
-    } else {
-      if (child) { el.appendChild(child); }
-    }
-  }
-
-  for (var attr in attrs) {
-    if (attr == "className") {
-      el[attr] = attrs[attr];
-    } else {
-      el.setAttribute(attr, attrs[attr]);
-    }
-  }
-
-  return el;
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
-  var showPassed, showSkipped;
-
-  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
-      this.createDom('div', { className: 'banner' },
-        this.createDom('div', { className: 'logo' },
-            this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
-            this.createDom('span', { className: 'version' }, runner.env.versionString())),
-        this.createDom('div', { className: 'options' },
-            "Show ",
-            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
-            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
-            )
-          ),
-
-      this.runnerDiv = this.createDom('div', { className: 'runner running' },
-          this.createDom('span', { className: 'run_spec', href: '?' }, "run all"),
-          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
-          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
-      );
-
-  this.document.body.appendChild(this.outerDiv);
-
-  var suites = runner.suites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    var suiteDiv = this.createDom('div', { className: 'suite' },
-        this.createDom('span', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
-        this.createDom('span', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
-    this.suiteDivs[suite.id] = suiteDiv;
-    var parentDiv = this.outerDiv;
-    if (suite.parentSuite) {
-      parentDiv = this.suiteDivs[suite.parentSuite.id];
-    }
-    parentDiv.appendChild(suiteDiv);
-  }
-
-  this.startedAt = new Date();
-
-  var self = this;
-  showPassed.onclick = function(evt) {
-    if (showPassed.checked) {
-      self.outerDiv.className += ' show-passed';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
-    }
-  };
-
-  showSkipped.onclick = function(evt) {
-    if (showSkipped.checked) {
-      self.outerDiv.className += ' show-skipped';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
-    }
-  };
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
-  var results = runner.results();
-  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
-  this.runnerDiv.setAttribute("class", className);
-  //do it twice for IE
-  this.runnerDiv.setAttribute("className", className);
-  var specs = runner.specs();
-  var specCount = 0;
-  for (var i = 0; i < specs.length; i++) {
-    if (this.specFilter(specs[i])) {
-      specCount++;
-    }
-  }
-  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
-  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
-  this.runnerMessageSpan.replaceChild(this.createDom('span', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
-
-  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
-};
-
-jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
-  var results = suite.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.totalCount == 0) { // todo: change this to check results.skipped
-    status = 'skipped';
-  }
-  this.suiteDivs[suite.id].className += " " + status;
-};
-
-jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
-  if (this.logRunningSpecs) {
-    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
-  }
-};
-
-jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
-  var results = spec.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.skipped) {
-    status = 'skipped';
-  }
-  var specDiv = this.createDom('div', { className: 'spec '  + status },
-      this.createDom('span', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
-      this.createDom('span', {
-        className: 'description',
-        href: '?spec=' + encodeURIComponent(spec.getFullName()),
-        title: spec.getFullName()
-      }, spec.description));
-
-
-  var resultItems = results.getItems();
-  var messagesDiv = this.createDom('div', { className: 'messages' });
-  for (var i = 0; i < resultItems.length; i++) {
-    var result = resultItems[i];
-
-    if (result.type == 'log') {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
-    } else if (result.type == 'expect' && result.passed && !result.passed()) {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
-
-      if (result.trace.stack) {
-        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
-      }
-    }
-  }
-
-  if (messagesDiv.childNodes.length > 0) {
-    specDiv.appendChild(messagesDiv);
-  }
-
-  this.suiteDivs[spec.suite.id].appendChild(specDiv);
-};
-
-jasmine.TrivialReporter.prototype.log = function() {
-  var console = jasmine.getGlobal().console;
-  if (console && console.log) {
-    if (console.log.apply) {
-      console.log.apply(console, arguments);
-    } else {
-      console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
-    }
-  }
-};
-
-jasmine.TrivialReporter.prototype.getLocation = function() {
-  return this.document.location;
-};
-
-jasmine.TrivialReporter.prototype.specFilter = function(spec) {
-
-  return true;
-};

+ 0 - 167
vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine.css

@@ -1,167 +0,0 @@
-body {
-  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
-}
-
-
-.jasmine_reporter a:visited, .jasmine_reporter a {
-  color: #303; 
-}
-
-.jasmine_reporter a:hover, .jasmine_reporter a:active {
-  color: blue; 
-}
-
-.run_spec {
-  float:right;
-  padding-right: 5px;
-  font-size: .8em;
-  text-decoration: none;
-}
-
-.jasmine_reporter {
-  margin: 0 5px;
-}
-
-.banner {
-  color: #303;
-  background-color: #fef;
-  padding: 5px;
-}
-
-.logo {
-  float: left;
-  font-size: 1.1em;
-  padding-left: 5px;
-}
-
-.logo .version {
-  font-size: .6em;
-  padding-left: 1em;
-}
-
-.runner.running {
-  background-color: yellow;
-}
-
-
-.options {
-  visibility:hidden;
-  text-align: right;
-  font-size: .8em;
-}
-
-
-
-
-.suite {
-  border: 1px outset gray;
-  margin: 5px 0;
-  padding-left: 1em;
-}
-
-.suite .suite {
-  margin: 5px; 
-}
-
-.suite.passed {
-  background-color: #dfd;
-}
-
-.suite.failed {
-  background-color: #fdd;
-}
-
-.spec {
-  margin: 5px;
-  padding-left: 1em;
-  clear: both;
-}
-
-.spec.failed, .spec.passed, .spec.skipped {
-  padding-bottom: 5px;
-  border: 1px solid gray;
-}
-
-.spec.failed {
-  background-color: #fbb;
-  border-color: red;
-}
-
-.spec.passed {
-  background-color: #bfb;
-  border-color: green;
-}
-
-.spec.skipped {
-  background-color: #bbb;
-}
-
-.messages {
-  border-left: 1px dashed gray;
-  padding-left: 1em;
-  padding-right: 1em;
-}
-
-.passed {
-  background-color: #cfc;
-  display: none;
-}
-
-.failed {
-  background-color: #fbb;
-}
-
-.skipped {
-  color: #777;
-  background-color: #eee;
-  display: none;
-}
-
-
-/*.resultMessage {*/
-  /*white-space: pre;*/
-/*}*/
-
-.resultMessage span.result {
-  display: block;
-  line-height: 2em;
-  color: black;
-}
-
-.resultMessage .mismatch {
-  color: black;
-}
-
-.stackTrace {
-  white-space: pre;
-  font-size: .8em;
-  margin-left: 10px;
-  max-height: 5em;
-  overflow: auto;
-  border: 1px inset red;
-  padding: 1em;
-  background: #eef;
-}
-
-.finished-at {
-  padding-left: 1em;
-  font-size: .6em;
-}
-
-.show-passed .passed,
-.show-skipped .skipped {
-  display: block;
-}
-
-
-#jasmine_content {
-  position:fixed;
-  right: 100%;
-}
-
-.runner {
-  border: 1px solid gray;
-  display: block;
-  margin: 5px 0;
-  padding: 2px 0 2px 10px;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 2421
vendor/node-jasmine-dom/lib/jasmine-dom/resources/jasmine.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 18
vendor/node-jasmine-dom/lib/jasmine-dom/resources/jquery.js


+ 0 - 102
vendor/node-jasmine-dom/lib/jasmine-dom/resources/simple.html

@@ -1,102 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-	<script src="jquery.js"></script>
-	<title>Loading...</title>
-	<style>
-		body {
-			position:absolute;
-			height:100%;
-			width:100%;
-		}
-		.pass {
-			background-color:green;
-		}
-		.fail {
-			background-color:red;
-		}
-		.connection-error {
-			background-color:gray;
-		}
-		.pass #scaffold {
-			height:100%;
-			width:1px;
-			display:inline-block;
-			vertical-align:middle;
-		}
-		.pass #message {
-			font-size: 100px;
-			width:95%;
-			text-align: center;
-			display:inline-block;
-			vertical-align:middle;
-		}
-		#message {
-			opacity: 0.3;
-		}
-		#message:hover {
-		    opacity: 0.7;
-		}
-		.error-report {
-			margin-bottom:100px;
-		}
-		.error-location {
-			font-size:20px;
-		}
-		.error-detail {
-			font-size:30px;
-			margin-top:20px;
-			margin-bottom:30px;
-		}
-		code {
-			font-size:10px;
-		}
-	</style>
-</head>
-<body>
-	<div id="scaffold"></div>
-	<div id="message">
-		
-	</div>
-	
-	<script>
-		var $ = jQuery;
-
-		var poll = function(period){
-			window.setTimeout(function(){
-				$.ajax({
-					url: "/json",
-					dataType: "json",
-					success: function(json){
-						var result = json.failed == 0 ? "pass" : "fail";
-						$('body').attr("class", result);
-						$('title').html(result.toUpperCase());
-						
-						
-						var message = $("#message");
-						message.html("");
-						if(json.failed == 0){
-							message.html(":-)");
-						}else{
-							for(var k in json.failureDetails){
-								var detail = json.failureDetails[k];
-								message.append("<div class='error-report'><span class='error-location'><b>" + detail.group + "</b> <i>" + detail.suite + "</i> " + detail.spec + "</span> <div class='error-detail'>"+detail.trace.message+"</div> <code>"+detail.trace.stack+"</code></div>");
-							}
-						}
-						poll(100);
-					},
-					error: function(){
-						$('body').attr("class","connection-error");
-						$("#message").html("Connection error");
-						$('title').html("CONNECTION ERROR");
-						poll(5000);
-					}
-				});
-			},period);
-		};
-
-		poll(100);
-
-	</script>
-</body>
-</html>

+ 0 - 12
vendor/node-jasmine-dom/lib/jasmine-dom/resources/skeleton.html

@@ -1,12 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-  "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-  <title>Jasmine Test Runner</title>
-  <link rel="stylesheet" type="text/css" href="jasmine.css"/>
-  <meta http-equiv="refresh" content="5"/>
-</head>
-<body>
-
-</body>
-</html>

+ 0 - 99
vendor/node-jasmine-dom/lib/jasmine-dom/runner-from-html.js

@@ -1,99 +0,0 @@
-function Runner( options ){
-	console.debug("Constructing runner for "+options.runner+".");
-
-	var name, path,
-		runner = options.runner;
-	if(typeof runner == 'object'){
-		name = runner.name;
-		path = runner.runner;
-	} else {
-		name = runner;
-		path = runner;
-	}
-
-	this._options = {
-		reporter: options.jasmineReporter || {},
-		path: require('path').normalize(path),
-		name: name
-	};
-};
-
-Runner.prototype._getScriptPaths = function(pathToHtml, callback){
-	var path = require('path');
-	require('jsdom').env({
-		html: pathToHtml,
-		scripts: [],
-		done: function(errors,window){
-			if(errors){
-				console.error('Error when constructing DOM to get script paths for runner.');
-				console.debug(errors);
-				exit(1);
-			}
-
-			var basePath = path.dirname(pathToHtml);
-			var scripts = window.document.getElementsByTagName('script');
-			var scriptPaths = []
-
-			for(var i = 0; i < scripts.length; i++){
-				var script = scripts[i];
-				var src = script.getAttribute('src');
-				if(src) {
-					var scriptPath = path.normalize(basePath + "/" + src);
-					scriptPaths.push(scriptPath);
-				}
-			}
-			callback(scriptPaths);
-		}
-	});
-};
-
-Runner.prototype._executeRunner = function(pathToHtml, scripts, reporter, callback){
-	console.debug("Constructing runner with following scripts: ");
-	for(var i = 0; i < scripts.length; i++) console.debug(" - " + scripts[i]);
-
-	require('jsdom').env({
-		html: pathToHtml,
-		scripts: scripts,
-		done: function(errors,window){
-			if(errors){
-				console.error('Error when constructing DOM for runner.');
-				console.debug(errors);
-				exit(1);
-			}
-
-			// Executed when the DOM has finished construction
-			if(errors) console.error('Error construction DOM for tests: ',errors);
-			window.jasmine.getEnv().addReporter(reporter);
-			window.jasmine.getEnv().addReporter({
-				reportRunnerResults : function(){
-					if(callback) callback();
-				}
-			});
-
-			console.debug("Running runner in Jasmine.");
-			window.jasmine.getEnv().execute();
-
-		}
-	});
-};
-
-Runner.prototype.run = function(callback){
-	var path = this._options.path,
-		name = this._options.name,
-		reporter = this._options.reporter,
-		that=this;
-
-	console.debug("Running runner " + name);
-	if(reporter.reportStartingGroup) reporter.reportStartingGroup(name);
-
-	this._getScriptPaths(path, function(scripts){
-		that._executeRunner(path,scripts,reporter,function(){
-			callback();
-		});
-	});
-
-};
-
-exports.create = function(options){
-	return new Runner(options);
-}

+ 0 - 73
vendor/node-jasmine-dom/lib/jasmine-dom/server.js

@@ -1,73 +0,0 @@
-var http = require('http');
-var staticServe = require('node-static');
-var fs = require('fs');
-
-function Server(port){
-	this._html = '<html><body>Nothing has happened yet. But stay tuned!</body></html>';
-	this._simpleHtml = fs.readFileSync(__dirname+'/resources/simple.html');
-	this._json = {};
-	this.port = port;
-
-	var staticServer = new staticServe.Server(__dirname+'/resources');
-
-	var that = this;
-	this._httpServer = http.createServer(function (request, response) {
-		that.processRequest(request.url,request.headers['content-type'],response);
-
-		// static file fallback
-		request.addListener('end', function(){
-			staticServer.serve(request,response);
-		});
-	});
-};
-
-Server.prototype.updateJson = function(json){
-	this._json = json;
-}
-
-Server.prototype.updateHtml = function(html){
-	this._jasmineHtml = html;
-}
-
-Server.prototype.processRequest = function(url,mime,response){
-
-	switch(url){
-		case '/':
-			response.writeHead(200, {'Content-Type': 'text/html'});
-			response.end(this._simpleHtml);
-			break;
-		case '/jasmine':
-			response.writeHead(200, {'Content-Type': 'text/html'});
-			response.end(this._jasmineHtml);
-			break;
-		case '/json':
-			response.writeHead(200, {'Content-Type': 'application/json'});
-			response.end( JSON.stringify(this._json) );
-			break;
-		default:
-			break;
-	}
-};
-
-Server.prototype.start = function(){
-	this._httpServer.listen(this.port, "127.0.0.1");
-
-	console.log("Started http server on port ", this.port);
-};
-
-var server;
-exports.start = function(port, callback){
-	server = new Server(port);
-	server.start(function(){
-		callback();
-	});
-};
-exports.stop = function(callback){
-	if(server) server.stop();
-};
-exports.updateJson = function(json){
-	if(server) server.updateJson(json);
-};
-exports.updateHtml = function(html){
-	if(server) server.updateHtml(html);
-};

+ 0 - 9
vendor/node-jasmine-dom/node_modules/cssom/.idea/CSSOM.iml

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="RUBY_MODULE" version="4">
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
-

+ 0 - 3
vendor/node-jasmine-dom/node_modules/cssom/.idea/dictionaries/nv.xml

@@ -1,3 +0,0 @@
-<component name="ProjectDictionaryState">
-  <dictionary name="nv" />
-</component>

+ 0 - 5
vendor/node-jasmine-dom/node_modules/cssom/.idea/encodings.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" defaultCharsetForPropertiesFiles="UTF-8" />
-</project>
-

+ 0 - 17
vendor/node-jasmine-dom/node_modules/cssom/.idea/misc.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="DependencyValidationManager">
-    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
-  </component>
-  <component name="ProjectDetails">
-    <option name="projectName" value="CSSOM" />
-  </component>
-  <component name="ProjectResources">
-    <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
-  </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Ruby SDK 1.8.7 (/usr/bin/ruby)" project-jdk-type="RUBY_SDK" />
-  <component name="SvnBranchConfigurationManager">
-    <option name="mySupportsUserInfoFilter" value="true" />
-  </component>
-</project>
-

+ 0 - 9
vendor/node-jasmine-dom/node_modules/cssom/.idea/modules.xml

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/CSSOM.iml" filepath="$PROJECT_DIR$/.idea/CSSOM.iml" />
-    </modules>
-  </component>
-</project>
-

+ 0 - 82
vendor/node-jasmine-dom/node_modules/cssom/.idea/projectCodeStyle.xml

@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CodeStyleSettingsManager">
-    <option name="PER_PROJECT_SETTINGS">
-      <value>
-        <option name="USE_SAME_INDENTS" value="true" />
-        <option name="OTHER_INDENT_OPTIONS">
-          <value>
-            <option name="INDENT_SIZE" value="4" />
-            <option name="CONTINUATION_INDENT_SIZE" value="0" />
-            <option name="TAB_SIZE" value="4" />
-            <option name="USE_TAB_CHARACTER" value="true" />
-            <option name="SMART_TABS" value="false" />
-            <option name="LABEL_INDENT_SIZE" value="0" />
-            <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-            <option name="USE_RELATIVE_INDENTS" value="false" />
-          </value>
-        </option>
-        <option name="LINE_SEPARATOR" value="&#10;" />
-        <option name="XML_ATTRIBUTE_WRAP" value="0" />
-        <option name="XML_TEXT_WRAP" value="0" />
-        <option name="XML_ALIGN_ATTRIBUTES" value="false" />
-        <option name="HTML_ATTRIBUTE_WRAP" value="0" />
-        <option name="HTML_TEXT_WRAP" value="0" />
-        <option name="HTML_ALIGN_ATTRIBUTES" value="false" />
-        <option name="HTML_DO_NOT_INDENT_CHILDREN_OF" value="html,body,thead,tbody,tfoot,style,script" />
-        <ADDITIONAL_INDENT_OPTIONS fileType="js">
-          <option name="INDENT_SIZE" value="4" />
-          <option name="CONTINUATION_INDENT_SIZE" value="8" />
-          <option name="TAB_SIZE" value="4" />
-          <option name="USE_TAB_CHARACTER" value="false" />
-          <option name="SMART_TABS" value="false" />
-          <option name="LABEL_INDENT_SIZE" value="0" />
-          <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-          <option name="USE_RELATIVE_INDENTS" value="false" />
-        </ADDITIONAL_INDENT_OPTIONS>
-        <ADDITIONAL_INDENT_OPTIONS fileType="jsp">
-          <option name="INDENT_SIZE" value="4" />
-          <option name="CONTINUATION_INDENT_SIZE" value="8" />
-          <option name="TAB_SIZE" value="4" />
-          <option name="USE_TAB_CHARACTER" value="false" />
-          <option name="SMART_TABS" value="false" />
-          <option name="LABEL_INDENT_SIZE" value="0" />
-          <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-          <option name="USE_RELATIVE_INDENTS" value="false" />
-        </ADDITIONAL_INDENT_OPTIONS>
-        <ADDITIONAL_INDENT_OPTIONS fileType="sass">
-          <option name="INDENT_SIZE" value="2" />
-          <option name="CONTINUATION_INDENT_SIZE" value="8" />
-          <option name="TAB_SIZE" value="4" />
-          <option name="USE_TAB_CHARACTER" value="false" />
-          <option name="SMART_TABS" value="false" />
-          <option name="LABEL_INDENT_SIZE" value="0" />
-          <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-          <option name="USE_RELATIVE_INDENTS" value="false" />
-        </ADDITIONAL_INDENT_OPTIONS>
-        <ADDITIONAL_INDENT_OPTIONS fileType="xml">
-          <option name="INDENT_SIZE" value="4" />
-          <option name="CONTINUATION_INDENT_SIZE" value="8" />
-          <option name="TAB_SIZE" value="4" />
-          <option name="USE_TAB_CHARACTER" value="false" />
-          <option name="SMART_TABS" value="false" />
-          <option name="LABEL_INDENT_SIZE" value="0" />
-          <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-          <option name="USE_RELATIVE_INDENTS" value="false" />
-        </ADDITIONAL_INDENT_OPTIONS>
-        <ADDITIONAL_INDENT_OPTIONS fileType="yml">
-          <option name="INDENT_SIZE" value="2" />
-          <option name="CONTINUATION_INDENT_SIZE" value="8" />
-          <option name="TAB_SIZE" value="4" />
-          <option name="USE_TAB_CHARACTER" value="false" />
-          <option name="SMART_TABS" value="false" />
-          <option name="LABEL_INDENT_SIZE" value="0" />
-          <option name="LABEL_INDENT_ABSOLUTE" value="false" />
-          <option name="USE_RELATIVE_INDENTS" value="false" />
-        </ADDITIONAL_INDENT_OPTIONS>
-      </value>
-    </option>
-    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
-  </component>
-</project>
-

+ 0 - 8
vendor/node-jasmine-dom/node_modules/cssom/.idea/vcs.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="" />
-    <mapping directory="$PROJECT_DIR$" vcs="Git" />
-  </component>
-</project>
-

+ 0 - 467
vendor/node-jasmine-dom/node_modules/cssom/.idea/workspace.xml

@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="30285013-672e-4686-875b-58c4268c29f5" name="Default" comment="">
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/docs/build.html" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/CSSImportRule.js" afterPath="$PROJECT_DIR$/lib/CSSImportRule.js" />
-    </list>
-    <ignored path=".idea/workspace.xml" />
-    <ignored path="CSSOM.iws" />
-    <option name="TRACKING_ENABLED" value="true" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
-  <component name="CreatePatchCommitExecutor">
-    <option name="PATCH_PATH" value="" />
-    <option name="REVERSE_PATCH" value="false" />
-  </component>
-  <component name="DaemonCodeAnalyzer">
-    <disable_hints />
-  </component>
-  <component name="FavoritesManager">
-    <favorites_list name="CSSOM" />
-  </component>
-  <component name="FileEditorManager">
-    <leaf>
-      <file leaf-file-name="parse.html" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/docs/parse.html">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="26" column="16" selection-start="713" selection-end="713" vertical-scroll-proportion="-16.0">
-              <folding>
-                <marker date="1292697557000" expanded="true" signature="681:774" placeholder="{...}" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="parse2.html" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/docs/parse2.html">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="197" column="25" selection-start="3686" selection-end="3686" vertical-scroll-proportion="-0.6666667">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="build.html" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/docs/build.html">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="50" column="28" selection-start="1126" selection-end="1126" vertical-scroll-proportion="0.6090535">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="parse.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/parse.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="44" column="11" selection-start="880" selection-end="880" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="CSSOM.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/build/CSSOM.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="11" column="11" selection-start="226" selection-end="226" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="helper.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/helper.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="32" column="0" selection-start="771" selection-end="771" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="qunit.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/vendor/qunit.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="42" column="59" selection-start="1027" selection-end="1027" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="CSSStyleDeclaration.test.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/CSSStyleDeclaration.test.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="12" column="19" selection-start="279" selection-end="279" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="CSSStyleDeclaration.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/lib/CSSStyleDeclaration.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="105" column="22" selection-start="2425" selection-end="2443" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="clone.test.js" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/clone.test.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="36" column="14" selection-start="805" selection-end="805" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="FindManager">
-    <FindUsagesManager>
-      <setting name="OPEN_NEW_TAB" value="false" />
-    </FindUsagesManager>
-  </component>
-  <component name="Git.Branch.Configurations">
-    <option name="CURRENT" value="parser" />
-    <option name="CONFIGURATIONS">
-      <array>
-        <BranchConfiguration>
-          <option name="IS_AUTO_DETECTED" value="true" />
-          <option name="NAME" value="master" />
-          <option name="BRANCHES">
-            <array>
-              <BranchInfo>
-                <option name="ROOT" value="$PROJECT_DIR$" />
-                <option name="REFERENCE" value="master" />
-              </BranchInfo>
-            </array>
-          </option>
-        </BranchConfiguration>
-        <BranchConfiguration>
-          <option name="IS_AUTO_DETECTED" value="true" />
-          <option name="NAME" value="parser" />
-          <option name="BRANCHES">
-            <array>
-              <BranchInfo>
-                <option name="ROOT" value="$PROJECT_DIR$" />
-                <option name="REFERENCE" value="parser" />
-              </BranchInfo>
-            </array>
-          </option>
-        </BranchConfiguration>
-      </array>
-    </option>
-  </component>
-  <component name="Git.Settings">
-    <option name="CHECKOUT_INCLUDE_TAGS" value="false" />
-    <option name="UPDATE_CHANGES_POLICY" value="STASH" />
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="changedFiles">
-      <list>
-        <option value="$PROJECT_DIR$/test/parse.test.js" />
-        <option value="$PROJECT_DIR$/lib/CSSImportRule.js" />
-        <option value="$PROJECT_DIR$/server/index.html" />
-        <option value="$PROJECT_DIR$/server/index.js" />
-        <option value="$PROJECT_DIR$/lib/parse.js" />
-        <option value="$PROJECT_DIR$/lib/index.js" />
-        <option value="$PROJECT_DIR$/test/index.html" />
-        <option value="$PROJECT_DIR$/test/clone.test.js" />
-        <option value="$PROJECT_DIR$/lib/clone.js" />
-        <option value="$PROJECT_DIR$/test/helper.js" />
-        <option value="$PROJECT_DIR$/test/vendor/qunit.js" />
-        <option value="$PROJECT_DIR$/lib/CSSStyleDeclaration.js" />
-        <option value="$PROJECT_DIR$/test/CSSStyleDeclaration.test.js" />
-        <option value="$PROJECT_DIR$/docs/parse2.html" />
-        <option value="$PROJECT_DIR$/docs/parse.html" />
-        <option value="$PROJECT_DIR$/docs/build.html" />
-      </list>
-    </option>
-  </component>
-  <component name="PerforceDirect.Settings">
-    <option name="ENABLED" value="false" />
-  </component>
-  <component name="ProjectLevelVcsManager">
-    <OptionsSetting value="true" id="Add" />
-    <OptionsSetting value="true" id="Remove" />
-    <OptionsSetting value="true" id="Checkout" />
-    <OptionsSetting value="true" id="Update" />
-    <OptionsSetting value="true" id="Status" />
-    <OptionsSetting value="true" id="Edit" />
-    <ConfirmationsSetting value="2" id="Add" />
-    <ConfirmationsSetting value="0" id="Remove" />
-  </component>
-  <component name="ProjectReloadState">
-    <option name="STATE" value="0" />
-  </component>
-  <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
-      <flattenPackages />
-      <showMembers />
-      <showModules />
-      <showLibraryContents ProjectPane="false" />
-      <hideEmptyPackages />
-      <abbreviatePackageNames />
-      <autoscrollToSource />
-      <autoscrollFromSource />
-      <sortByType />
-    </navigator>
-    <panes>
-      <pane id="Favorites" />
-      <pane id="Scope" />
-      <pane id="ProjectPane">
-        <subPane>
-          <PATH>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="CSSOM" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-            </PATH_ELEMENT>
-            <PATH_ELEMENT>
-              <option name="myItemId" value="CSSOM" />
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-            </PATH_ELEMENT>
-          </PATH>
-        </subPane>
-      </pane>
-    </panes>
-  </component>
-  <component name="PropertiesComponent">
-    <property name="options.splitter.main.proportions" value="0.3" />
-    <property name="WebServerToolWindowFactoryState" value="true" />
-    <property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
-    <property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
-    <property name="options.lastSelected" value="preferences.sourceCode.HTML" />
-    <property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
-    <property name="WebServerToolWindowPanel.toolwindow.highlight.symlinks" value="true" />
-    <property name="DefaultHtmlFileTemplate" value="Html5" />
-    <property name="WebServerToolWindowPanel.toolwindow.highlight.mappings" value="true" />
-    <property name="options.searchVisible" value="true" />
-    <property name="options.splitter.details.proportions" value="0.2" />
-    <property name="GoToClass.includeJavaFiles" value="false" />
-  </component>
-  <component name="PublishConfig" exclude=".svn;.cvs;.idea;.DS_Store;.git;.hg" autoUpload="true">
-    <servers>
-      <server id="03e3dd9a-a049-4a09-8d26-9d8ee4abc8ea">
-        <serverdata>
-          <mappings>
-            <mapping local="$PROJECT_DIR$" />
-          </mappings>
-        </serverdata>
-      </server>
-    </servers>
-  </component>
-  <component name="RunManager">
-    <configuration default="true" type="JavascriptDebugSession" factoryName="Remote">
-      <JSRemoteDebuggerConfigurationSettings>
-        <option name="engineId" value="embedded" />
-        <option name="fileUrl" />
-      </JSRemoteDebuggerConfigurationSettings>
-      <method />
-    </configuration>
-    <list size="0" />
-  </component>
-  <component name="ShelveChangesManager" show_recycled="false" />
-  <component name="SvnConfiguration" maxAnnotateRevisions="500">
-    <option name="USER" value="" />
-    <option name="PASSWORD" value="" />
-    <option name="LAST_MERGED_REVISION" />
-    <option name="UPDATE_RUN_STATUS" value="false" />
-    <option name="MERGE_DRY_RUN" value="false" />
-    <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
-    <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
-    <option name="IGNORE_SPACES_IN_MERGE" value="false" />
-    <option name="DETECT_NESTED_COPIES" value="false" />
-    <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
-    <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
-    <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
-    <configuration useDefault="true">$USER_HOME$/.subversion_IDEA</configuration>
-    <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
-    <supportedVersion>125</supportedVersion>
-  </component>
-  <component name="TaskManager">
-    <task active="true" id="Default" summary="Default task">
-      <changelist id="30285013-672e-4686-875b-58c4268c29f5" name="Default" comment="" />
-      <created>1285386214790</created>
-      <updated>1285386214790</updated>
-    </task>
-    <servers />
-  </component>
-  <component name="TodoView" selected-index="0">
-    <todo-panel id="selected-file">
-      <are-packages-shown value="false" />
-      <are-modules-shown value="false" />
-      <flatten-packages value="false" />
-      <is-autoscroll-to-source value="false" />
-    </todo-panel>
-    <todo-panel id="all">
-      <are-packages-shown value="false" />
-      <are-modules-shown value="false" />
-      <flatten-packages value="false" />
-      <is-autoscroll-to-source value="false" />
-    </todo-panel>
-    <todo-panel id="default-changelist">
-      <are-packages-shown value="false" />
-      <are-modules-shown value="false" />
-      <flatten-packages value="false" />
-      <is-autoscroll-to-source value="false" />
-    </todo-panel>
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="851" y="22" width="907" height="1087" extended-state="0" />
-    <editor active="true" />
-    <layout>
-      <window_info id="Changes" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
-      <window_info id="TODO" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2691867" sideWeight="0.3254902" order="1" side_tool="true" content_ui="tabs" />
-      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24948454" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
-      <window_info id="Remote Host" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3866775" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-      <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3565976" sideWeight="0.9709977" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
-      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.327451" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-    </layout>
-  </component>
-  <component name="VcsManagerConfiguration">
-    <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
-    <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
-    <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
-    <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
-    <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
-    <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
-    <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
-    <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
-    <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="true" />
-    <option name="ENABLE_BACKGROUND_PROCESSES" value="true" />
-    <option name="CHANGED_ON_SERVER_INTERVAL" value="5" />
-    <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
-    <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" />
-    <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
-    <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
-    <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
-    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
-    <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
-    <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
-    <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
-    <option name="ACTIVE_VCS_NAME" />
-    <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
-    <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
-    <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
-    <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
-  </component>
-  <component name="XDebuggerManager">
-    <breakpoint-manager />
-  </component>
-  <component name="XSLT-Support.FileAssociations.UIState">
-    <PATH>
-      <PATH_ELEMENT>
-        <option name="myItemId" value="CSSOM" />
-        <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-      </PATH_ELEMENT>
-    </PATH>
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/server/index.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="11" column="39" selection-start="306" selection-end="306" vertical-scroll-proportion="0.30877194" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/server/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="15" column="40" selection-start="432" selection-end="432" vertical-scroll-proportion="0.4040404" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/index.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="15" column="34" selection-start="423" selection-end="423" vertical-scroll-proportion="-10.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CSSStyleRule.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="4" column="2" selection-start="143" selection-end="143" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CSSStyleSheet.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="6" selection-start="250" selection-end="250" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/clone.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="55" column="9" selection-start="1506" selection-end="1506" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/parse.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="44" column="11" selection-start="880" selection-end="880" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/build/CSSOM.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="11" column="11" selection-start="226" selection-end="226" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/helper.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="32" column="0" selection-start="771" selection-end="771" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/vendor/qunit.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="42" column="59" selection-start="1027" selection-end="1027" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/CSSStyleDeclaration.test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="19" selection-start="279" selection-end="279" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/lib/CSSStyleDeclaration.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="105" column="22" selection-start="2425" selection-end="2443" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/clone.test.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="36" column="14" selection-start="805" selection-end="805" vertical-scroll-proportion="0.0" />
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/docs/parse.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="26" column="16" selection-start="713" selection-end="713" vertical-scroll-proportion="-16.0">
-          <folding>
-            <marker date="1292697557000" expanded="true" signature="681:774" placeholder="{...}" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/docs/parse2.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="197" column="25" selection-start="3686" selection-end="3686" vertical-scroll-proportion="-0.6666667">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/docs/build.html">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="50" column="28" selection-start="1126" selection-end="1126" vertical-scroll-proportion="0.6090535">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-  </component>
-</project>
-

+ 0 - 19
vendor/node-jasmine-dom/node_modules/cssom/.livereload

@@ -1,19 +0,0 @@
-# Lines starting with pound sign (#) are ignored.
-
-# additional extensions to monitor
-#config.exts << 'haml'
-
-# exclude files with NAMES matching this mask
-#config.exclusions << '~*'
-# exclude files with PATHS matching this mask (if the mask contains a slash)
-#config.exclusions << '/excluded_dir/*'
-# exclude files with PATHS matching this REGEXP
-#config.exclusions << /somedir.*(ab){2,4}.(css|js)$/
-
-# reload the whole page when .js changes
-#config.apply_js_live = false
-# reload the whole page when .css changes
-#config.apply_css_live = false
-
-# wait 100ms for more changes before reloading a page
-#config.grace_period = 0.1

+ 0 - 37
vendor/node-jasmine-dom/node_modules/cssom/Jakefile

@@ -1,37 +0,0 @@
-var PATH = require("path");
-var FS = require("fs");
-
-function readFile(path) {
-	var abs_path = PATH.join(__dirname, "lib", path);
-	return FS.readFileSync(abs_path, "utf8");
-}
-
-function stripCommonJS(text) {
-	return text.replace(/\/\/\.CommonJS(?:.|\n)*?\/\/\/CommonJS/g, "");
-}
-
-desc("Packages lib files into the one huge");
-task("default", [], function(){
-	var files = [readFile("CSSOM.js")];
-	var index_file = readFile("index.js");
-
-	(function(){
-		var exports = {};
-		function require(path) {
-			var text = readFile(path + ".js");
-			files.push(stripCommonJS(text).trimLeft());
-			return {};
-		}
-		eval(index_file);
-	})();
-
-	var build_dir = PATH.join(__dirname, "build");
-	try {
-		FS.statSync(build_dir);
-	} catch(e) {
-		FS.mkdirSync(build_dir, 0755);
-	}
-	var build_path = PATH.join(build_dir, "CSSOM.js");
-	FS.writeFileSync(build_path, files.join(""));
-	process.stdout.write("build/CSSOM.js is done\n");
-});

+ 0 - 33
vendor/node-jasmine-dom/node_modules/cssom/README.mdown

@@ -1,33 +0,0 @@
-# CSSOM
-
-CSSOM.js is a CSS parser written in pure JavaScript. It also a partial implementation of [CSS Object Model](http://dev.w3.org/csswg/cssom/). 
-
-    CSSOM.parse("body {color: black}")
-    -> {
-      cssRules: [
-        {
-          selectorText: "body",
-          style: {
-            0: "color",
-            color: "black",
-            length: 1
-          }
-        }
-      ]
-    }
-
-
-## [Parser demo](http://nv.github.com/CSSOM/docs/parse.html)
-
-
-## [Tests](http://nv.github.com/CSSOM/test/)
-
-Works well in Google Chrome 6+, Safari 5+, Firefox 3.6+, Opera 10.63+.
-Doesn't work in IE < 9 because of unsupported getters/setters.
-
-## Build
-
-Build one-file version of CSSOM.js with [Jake](http://github.com/mde/node-jake):
-
-    ➤ jake
-    build/CSSOM.js is done

+ 0 - 23
vendor/node-jasmine-dom/node_modules/cssom/Rakefile

@@ -1,23 +0,0 @@
-def version
-  git_describe_tags = `git describe --tags`
-  tag = git_describe_tags.split('-').first || git_describe_tags
-  tag.strip!
-  commit = `git rev-list --full-history #{tag}.. -- src/ | wc -l`.strip
-  tag.slice! 0
-  "#{tag}.#{commit}"
-end
-
-task :upload do
-  require 'net/github-upload'
-  gh = Net::GitHub::Upload.new(
-    :login => `git config github.user`.chomp,
-    :token => `git config github.token`.chomp
-  )
-  puts gh.upload(
-    :repos => 'CSSOM',
-    :file  => 'build/CSSOM.js',
-    :name => "CSSOM.v#{version}.js",
-    :content_type => 'text/javascript',
-    :description => "CSS Object Model implemented in pure JavaScript"
-  )
-end

+ 0 - 19
vendor/node-jasmine-dom/node_modules/cssom/docs/.livereload

@@ -1,19 +0,0 @@
-# Lines starting with pound sign (#) are ignored.
-
-# additional extensions to monitor
-#config.exts << 'haml'
-
-# exclude files with NAMES matching this mask
-#config.exclusions << '~*'
-# exclude files with PATHS matching this mask (if the mask contains a slash)
-#config.exclusions << '/excluded_dir/*'
-# exclude files with PATHS matching this REGEXP
-#config.exclusions << /somedir.*(ab){2,4}.(css|js)$/
-
-# reload the whole page when .js changes
-#config.apply_js_live = false
-# reload the whole page when .css changes
-#config.apply_css_live = false
-
-# wait 100ms for more changes before reloading a page
-#config.grace_period = 0.1

+ 0 - 3
vendor/node-jasmine-dom/node_modules/cssom/docs/bar.css

@@ -1,3 +0,0 @@
-body * {
-	color: red !important;
-}

+ 0 - 0
vendor/node-jasmine-dom/node_modules/cssom/docs/demo.css


+ 0 - 4
vendor/node-jasmine-dom/node_modules/cssom/docs/foo.css

@@ -1,4 +0,0 @@
-@import "bar.css" screen;
-body {
-	background: black !important;
-}

+ 0 - 170
vendor/node-jasmine-dom/node_modules/cssom/docs/parse.html

@@ -1,170 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>CSSOM.js parse method</title>
-	<script>
-	var exports = {};
-	function require(){
-		return exports;
-	}
-	</script>
-	<script src="../lib/CSSStyleDeclaration.js"></script>
-	<script src="../lib/CSSRule.js"></script>
-	<script src="../lib/CSSStyleRule.js"></script>
-	<script src="../lib/CSSImportRule.js"></script>
-	<script src="../lib/MediaList.js"></script>
-	<script src="../lib/CSSMediaRule.js"></script>
-	<script src="../lib/StyleSheet.js"></script>
-	<script src="../lib/CSSStyleSheet.js"></script>
-	<script src="../lib/parse.js"></script>
-	<script>
-	window.CSSOM = exports;
-	</script>
-	<style type="text/css">
-	html, body {
-		background: #333;
-		color: #EEE;
-		font: 12px sans-serif;
-		margin: 0;
-		height: 100%;
-	}
-	body {
-		padding-bottom: 1.7em;
-		-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-		box-sizing: border-box;
-	}
-	table {
-		width: 100%;
-		table-layout: fixed;
-		margin: 0 auto;
-	}
-	td {
-		vertical-align: top;
-	}
-	h1 {
-		font: normal 1em sans-serif;
-		display: inline;
-	}
-	#labels {
-		color: #FFE992;
-		width: 66%;
-	}
-	#labels td {
-		width: 50%;
-		text-align: center;
-	}
-	#labels td::before {
-		content: '↱ ';
-		color: #998e62;
-		position: relative;
-		top: .4em;
-	}
-	#labels td::after {
-		content: ' ↴';
-		color: #998e62;
-		position: relative;
-		top: .4em;
-	}
-	#content {
-		width: 100%;
-		height: 100%;
-	}
-	#content td {
-		width: 33%;
-	}
-	#content td + td {
-		padding-left: 1%;
-	}
-	.style-cell textarea {
-		width: 99%;
-		height: 100%;
-		font: 12px monospace;
-		white-space: pre-wrap;
-	}
-	.serialized-cell {
-		border-left: 1px solid #363636;
-	}
-	#message {
-		visibility: hidden;
-	}
-	.error #message {
-		visibility: visible;
-		position: absolute;
-		top: 0;
-		left: 34%;
-		padding: 1em;
-		background: black;
-		color: #e34343;
-		font-size: 24px;
-	}
-	</style>
-</head>
-<body>
-<table id="labels">
-	<tr><td><h1>CSSOM.parse</h1></td><td>.toString</td></tr>
-</table>
-<table id="content">
-	<tr>
-		<td class="style-cell">
-<textarea id="style" spellcheck="false" rows="40">img {
-  border: none
-}</textarea></td>
-		<td class="output-cell"><pre id="output"></pre></td>
-		<td class="serialized-cell"><pre id="serialized"></pre></td>
-	</tr>
-</table>
-<div id="message"></div>
-<script defer>
-var errors = [];
-if (!("__defineGetter__" in {})) {
-	errors.push("Object.prototype.__defineGetter__ isn’t supported");
-}
-if (errors.length) {
-	document.getElementById("message").innerHTML = errors.join("<br>");
-	document.body.className = "error";
-	throw errors.join("\n\n");
-}
-
-var style = document.getElementById("style");
-var output = document.getElementById("output");
-var serialized = document.getElementById("serialized");
-
-function outputUpdated(){
-	var value = style.value;
-	if (value != style.prevValue) {
-		var css = CSSOM.parse(value);
-		output.innerHTML = JSON.stringify(css, null, 2);
-		serialized.innerHTML = css.toString();
-		style.prevValue = value;
-	}
-}
-
-function hashChanged(){
-	var hash = location.hash;
-	var splitted = hash.split("=");
-	if (splitted.length < 2) {
-		return;
-	}
-	var name = splitted[0];
-	var value = splitted[1];
-	if (name == "#css") {
-		style.value = decodeURIComponent(value);
-		outputUpdated();
-	}
-}
-
-hashChanged();
-outputUpdated();
-
-window.onhashchange = hashChanged;
-style.onkeyup = style.onpaste = function changed(){
-	outputUpdated();
-};
-style.onchange = function updateLocation(){
-	location.hash = "css=" + encodeURIComponent(style.value);
-};
-</script>
-</body>
-</html>

+ 0 - 431
vendor/node-jasmine-dom/node_modules/cssom/docs/parse2.html

@@ -1,431 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>CSSOM.js parse method</title>
-	<script>
-	var exports = {};
-	function require(){
-		return exports;
-	}
-	</script>
-	<script src="../lib/CSSStyleDeclaration.js"></script>
-	<script src="../lib/CSSRule.js"></script>
-	<script src="../lib/CSSStyleRule.js"></script>
-	<script src="../lib/CSSImportRule.js"></script>
-	<script src="../lib/MediaList.js"></script>
-	<script src="../lib/CSSMediaRule.js"></script>
-	<script src="../lib/StyleSheet.js"></script>
-	<script src="../lib/CSSStyleSheet.js"></script>
-	<script src="../lib/parse.js"></script>
-	<script>
-	window.CSSOM = exports;
-	</script>
-	<style>
-	html {
-		padding: 0;
-	}
-	</style>
-	<style type="text/css">
-	html, body {
-		background: #333;
-		color: #EEE;
-		font: 12px sans-serif;
-		margin: 0;
-		height: 100%;
-	}
-	body {
-		padding-bottom: 1.7em;
-		-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-		box-sizing: border-box;
-	}
-	table {
-		width: 100%;
-		table-layout: fixed;
-		margin: 0 auto;
-	}
-	td {
-		vertical-align: top;
-	}
-	h1 {
-		font: normal 1em sans-serif;
-		display: inline;
-	}
-	#labels {
-		color: #FFE992;
-		width: 66%;
-	}
-	#labels td {
-		width: 50%;
-		text-align: center;
-	}
-	#labels td::before {
-		content: '↱ ';
-		color: #998e62;
-		position: relative;
-		top: .4em;
-	}
-	#labels td::after {
-		content: ' ↴';
-		color: #998e62;
-		position: relative;
-		top: .4em;
-	}
-	#content {
-		width: 100%;
-		height: 100%;
-	}
-	#content td {
-		width: 33%;
-	}
-	#content td + td {
-		padding-left: 1%;
-	}
-	.style-cell textarea {
-		width: 99%;
-		height: 100%;
-		font: 12px monospace;
-		white-space: pre-wrap;
-	}
-	.serialized-cell {
-		border-left: 1px solid #363636;
-	}
-	#message {
-		visibility: hidden;
-	}
-	.error #message {
-		visibility: visible;
-		position: absolute;
-		top: 0;
-		left: 34%;
-		padding: 1em;
-		background: black;
-		color: #e34343;
-		font-size: 24px;
-	}
-	</style>
-</head>
-<body>
-<table id="labels">
-	<tr><td><h1>CSSOM.parse</h1></td><td>.toString</td></tr>
-</table>
-<table id="content">
-	<tr>
-		<td class="style-cell">
-<textarea id="style" spellcheck="false" rows="40">img {
-  border: none
-}</textarea></td>
-		<td class="output-cell"><pre id="output"></pre></td>
-		<td class="serialized-cell"><pre id="serialized"></pre></td>
-	</tr>
-</table>
-<div id="message"></div>
-<script defer>
-console.dir(document.styleSheets[0].cssRules[0].style);
-//console.log(document.styleSheets[0].cssRules[0].style["table-layout"]);
-var CSS = {
-	background: [
-		"background-image",
-		"background-repeat",
-		"background-attachment",
-		"background-position",
-		"background-origin",
-		"background-clip",
-		"background-color"
-	],
-	"background-repeat": [
-		"background-repeat-x",
-		"background-repeat-y"
-	],
-	"background-position": [
-		"background-position-x",
-		"background-position-y"
-	],
-	border: [
-		"border-top",
-		"border-right",
-		"border-bottom",
-		"border-left",
-		"border-width",
-		"border-style",
-		"border-color"
-	],
-	"border-top": [
-		"border-top-width",
-		"border-top-style",
-		"border-top-color"
-	],
-	"border-right": [
-		"border-right-width",
-		"border-right-style",
-		"border-right-color"
-	],
-	"border-bottom": [
-		"border-bottom-width",
-		"border-bottom-style",
-		"border-bottom-color"
-	],
-	"border-left": [
-		"border-left-width",
-		"border-left-style",
-		"border-left-color"
-	],
-	font: [
-		"font-style",
-		"font-variant",
-		"font-weight",
-		"font-size",
-		"font-size-adjust",
-		"font-stretch",
-		"line-height",
-		"font-family"
-	],
-	"list-style": [
-		"list-style-type",
-		"list-style-position",
-		"list-style-image"
-	],
-	margin: [
-		"margin-top",
-		"margin-right",
-		"margin-bottom",
-		"margin-left"
-	],
-	padding: [
-		"padding-top",
-		"padding-right",
-		"padding-bottom",
-		"padding-left"
-	]
-};
-
-function camelize(string) {
-	return string.replace(/-+(.)?/g, function(match, chr) {
-		return chr ? chr.toUpperCase() : '';
-	});
-}
-
-CSS["background-repeat"].shorthand = function(style) {
-	if (style["background-repeat-x"] == style["background-repeat-y"]) {
-		return style["background-repeat-x"];
-	} else {
-		return style["background-repeat-x"] + " " + style["background-repeat-y"];
-	}
-};
-
-CSS["background-position"].shorthand = function(style) {
-	if (style["background-position-x"] == style["background-position-y"]) {
-		return style["background-position-x"];
-	} else {
-		return style["background-position-x"] + " " + style["background-position-y"];
-	}
-};
-
-CSS.background.shorthand = function(style) {
-	var values = [];
-
-	//FIXME
-	// Support CSS3 background shorthand
-	// http://www.w3.org/TR/css3-background/#the-background
-
-	var backgroundColor = style["background-color"];
-	if (backgroundColor != "initial" && backgroundColor != "transparent") {
-		values.push(backgroundColor);
-	}
-
-	var backgroundImage = style["background-image"];
-	if (backgroundImage != "initial" && backgroundImage != "none") {
-		values.push(backgroundImage);
-	}
-
-	var backgroundRepeat = style["background-repeat"];
-	if (backgroundRepeat != "initial" && backgroundRepeat != "repeat") {
-		values.push(backgroundRepeat);
-	}
-
-	var backgroundAttachment = style["background-attachment"];
-	if (backgroundAttachment != "initial" && backgroundAttachment != "scroll") {
-		values.push(backgroundAttachment);
-	}
-
-	var backgroundPosition = style["background-position"];
-	if (backgroundPosition != "initial" && parseInt(backgroundPosition) !== 0) {
-		values.push(backgroundPosition);
-	}
-
-	return values.join(" ") || "";
-};
-
-
-(function(){
-	for (var key in CSS) {
-		var longhand = CSS[key];
-		if (!longhand.length) {
-			continue;
-		}
-		for (var i=0, ii=longhand.length; i<ii; i++) {
-			var siblings = longhand.slice(0);
-			siblings.splice(i, 1);
-			if (CSS[longhand[i]]) {
-				//console.log("array", CSS[longhand[i]]);
-			} else {
-				CSS[longhand[i]] = {}
-			}
-			CSS[longhand[i]].parent = key;
-			CSS[longhand[i]].siblings = siblings;
-		}
-	}
-})();
-
-
-function cloneMinimized(stylesheet) {
-	var cloned = new CSSOM.CSSStyleSheet;
-
-	var rules = stylesheet.cssRules;
-	if (!rules) {
-		return cloned;
-	}
-
-	var RULE_TYPES = {
-		1: CSSOM.CSSStyleRule,
-		4: CSSOM.CSSMediaRule
-		//FIXME
-		//3: CSSOM.CSSImportRule,
-		//5: CSSOM.CSSFontFaceRule,
-		//6: CSSOM.CSSPageRule,
-	};
-
-	for (var i=0, rulesLength=rules.length; i < rulesLength; i++) {
-		var rule = rules[i];
-		var ruleClone = cloned.cssRules[i] = new RULE_TYPES[rule.type];
-
-		var style = rule.style;
-		if (style) {
-			var styleClone = ruleClone.style = minimizeStyle(style);
-		}
-
-		if ("selectorText" in rule) {
-			ruleClone.selectorText = rule.selectorText;
-		}
-
-		if ("mediaText" in rule) {
-			ruleClone.mediaText = rule.mediaText;
-		}
-
-		if ("cssRules" in rule) {
-			rule.cssRules = clone(rule).cssRules;
-		}
-	}
-
-	return cloned;
-
-};
-
-function minimizeStyle(style) {
-	var result = new CSSOM.CSSStyleDeclaration;
-	for (var i=0; i<style.length; i++) {
-		var name = closestShorthand(style, style[i]);
-		if (!(name in result)) {
-			result[name] = style[camelize(name)];
-			result[result.length++] = name;
-		}
-	}
-	return result;
-}
-
-function closestShorthand(style, name) {
-	if (!(name in CSS)) {
-		return name;
-	}
-	var siblings = CSS[name].siblings;
-	if (!siblings || !siblings.length) {
-		return name;
-	}
-	var properties = {};
-	var allPresent = true;
-	for (var j=0; j<siblings.length; j++) {
-		var sibling = siblings[j];
-		var aSibling = camelize(sibling);
-		if (style[aSibling] === "") {
-			console.warn(sibling);
-			if (CSS[sibling].length) {
-				for (var i=0; i<CSS[sibling].length; i++) {
-					if (style[camelize(CSS[sibling][i])] === "") {
-						allPresent = false;
-						break;
-					}
-				}
-			} else {
-				allPresent = false;
-				break;
-			}
-		}
-	}
-	if (allPresent) {
-		return closestShorthand(style, CSS[name].parent);
-	} else {
-		return name;
-	}
-
-}
-
-console.log(cloneMinimized(document.styleSheets[0]).toString());
-//console.log(CSSOM.CSSStyleSheet.prototype.toString.call(minimize(document.styleSheets[0].cssRules[0].style)));
-//console.log(document.styleSheets[0].cssRules[0].style["background-image"]);
-
-//console.log(CSS);
-
-
-
-var errors = [];
-//if (!Object.defineProperty) {
-//	errors.push("Object.defineProperty isn’t supported");
-//}
-if (errors.length) {
-	document.getElementById("message").innerHTML = errors.join("<br>");
-	document.body.className = "error";
-	throw errors.join("\n\n");
-}
-
-var style = document.getElementById("style");
-var output = document.getElementById("output");
-var serialized = document.getElementById("serialized");
-
-function outputUpdated(){
-	var value = style.value;
-	if (value != style.prevValue) {
-		var css = CSSOM.parse(value);
-		output.innerHTML = JSON.stringify(css, null, 2);
-		serialized.innerHTML = css.toString();
-		style.prevValue = value;
-	}
-}
-
-function hashChanged(){
-	var hash = location.hash;
-	var splitted = hash.split("=");
-	if (splitted.length < 2) {
-		return;
-	}
-	var name = splitted[0];
-	var value = splitted[1];
-	if (name == "#css") {
-		style.value = decodeURIComponent(value);
-		outputUpdated();
-	}
-}
-
-hashChanged();
-outputUpdated();
-
-window.onhashchange = hashChanged;
-style.onkeyup = style.onpaste = function changed(){
-	outputUpdated();
-};
-style.onchange = function updateLocation(){
-	location.hash = "css=" + encodeURIComponent(style.value);
-};
-</script>
-</body>
-</html>

+ 0 - 100
vendor/node-jasmine-dom/node_modules/cssom/index.html

@@ -1,100 +0,0 @@
-<!DOCTYPE html>
-<style type="text/css">
-html, body {
-	background: #CCC;
-	font-size: 14px;
-	margin: 0;
-	height: 100%;
-}
-table {
-	width: 100%;
-	border-collapse: collapse;
-}
-td {
-	width: 50%;
-	padding: 0;
-	vertical-align: top;
-}
-#output, #style {
-	width: 49%;
-	min-height: 99%;
-	display: inline-block;
-	vertical-align: top;
-}
-#style {
-	position: absolute;
-	top: 0;
-	height: 100%;
-	left: 4px;
-	width: 49%;
-	background: #FFF;
-	border: 1px solid #999;
-	font: 14px monospace;
-	white-space: pre-wrap;
-}
-#output {
-	position: absolute;
-	top: 0;
-	min-height: 100%;
-	right: 0;
-	width: 50%;
-	margin: 0;
-	padding: 4px;
-	box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	background: #333;
-}
-
-.rule {
-	color: #8CB7D1;
-}
-.name {
-	color: #D7AA69;
-}
-.value {
-	color: #D7AA69;
-}
-.brace-open, .brace-close, .colon, .semicolon {
-	color: #625035;
-}
-/*@import url("test/fixtures/dummy.css") screen, handheld;*/
-@media screen, all {
-	body {
-		color: black;
-	}
-}
-</style>
-
-<textarea id="style">.rule {
-  display: block;
-}
-.properties {
-  display: block;
-}</textarea>
-<pre id="output"></pre>
-
-
-<script type="text/javascript" src="lib/StyleSheet.js"></script>
-<script type="text/javascript" src="lib/CSSStyleSheet.js"></script>
-<script type="text/javascript" src="lib/MediaList.js"></script>
-<script type="text/javascript" src="lib/CSSRule.js"></script>
-<script type="text/javascript" src="lib/CSSStyleRule.js"></script>
-<script type="text/javascript" src="lib/CSSMediaRule.js"></script>
-<script type="text/javascript" src="lib/CSSStyleDeclaration.js"></script>
-<script type="text/javascript" src="lib/parse.js"></script>
-<script type="text/javascript" src="lib/parse.js"></script>
-<script type="text/javascript" src="plugins/toHTML.js"></script>
-<script type="text/javascript">
-CSSStyleSheet.prototype.toHTML = toHTML;
-window.onload = function(){
-	var style = document.getElementById("style");
-	var output = document.getElementById("output")
-
-	function outputUpdated(){
-		output.innerHTML = parse(style.value).toHTML();
-	}
-
-	style.onkeyup = outputUpdated;
-	outputUpdated();
-}
-</script>

+ 0 - 34
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSImportRule.js

@@ -1,34 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	CSSRule: require("./CSSRule").CSSRule,
-	CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,
-	MediaList: require("./MediaList").MediaList
-};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#cssimportrule
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule
- */
-CSSOM.CSSImportRule = function CSSImportRule() {
-	this.href = "";
-	this.media = new CSSOM.MediaList;
-	this.styleSheet = new CSSOM.CSSStyleSheet;
-};
-
-CSSOM.CSSImportRule.prototype = new CSSOM.CSSRule;
-CSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;
-CSSOM.CSSImportRule.prototype.type = 3;
-CSSOM.CSSImportRule.prototype.__defineGetter__("cssText", function() {
-	return "@import url("+ this.href +") "+ this.media.mediaText +";"
-});
-CSSOM.CSSImportRule.prototype.__defineSetter__("cssText", function() {
-	return "@import url("+ this.href +") "+ this.media.mediaText +";"
-});
-
-
-//.CommonJS
-exports.CSSImportRule = CSSOM.CSSImportRule;
-///CommonJS

+ 0 - 38
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSMediaRule.js

@@ -1,38 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	CSSRule: require("./CSSRule").CSSRule,
-	MediaList: require("./MediaList").MediaList
-};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#cssmediarule
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule
- */
-CSSOM.CSSMediaRule = function CSSMediaRule() {
-	this.media = new CSSOM.MediaList;
-	this.cssRules = [];
-};
-
-CSSOM.CSSMediaRule.prototype = new CSSOM.CSSRule;
-CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule;
-CSSOM.CSSMediaRule.prototype.type = 4;
-//FIXME
-//CSSOM.CSSMediaRule.prototype.insertRule = CSSStyleSheet.prototype.insertRule;
-//CSSOM.CSSMediaRule.prototype.deleteRule = CSSStyleSheet.prototype.deleteRule;
-
-// http://opensource.apple.com/source/WebCore/WebCore-658.28/css/CSSMediaRule.cpp
-CSSOM.CSSMediaRule.prototype.__defineGetter__("cssText", function() {
-	var cssTexts = [];
-	for (var i=0, length=this.cssRules.length; i < length; i++) {
-		cssTexts.push(this.cssRules[i].cssText);
-	}
-	return "@media " + this.media.mediaText + " {" + cssTexts.join("") + "}"
-});
-
-
-//.CommonJS
-exports.CSSMediaRule = CSSOM.CSSMediaRule;
-///CommonJS

+ 0 - 3
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSOM.js

@@ -1,3 +0,0 @@
-var CSSOM = {};
-
-

+ 0 - 38
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSRule.js

@@ -1,38 +0,0 @@
-//.CommonJS
-var CSSOM = {};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#the-cssrule-interface
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule
- */
-CSSOM.CSSRule = function CSSRule() {
-	this.parentRule = null;
-};
-
-CSSOM.CSSRule.STYLE_RULE = 1;
-CSSOM.CSSRule.IMPORT_RULE = 3;
-CSSOM.CSSRule.MEDIA_RULE = 4;
-CSSOM.CSSRule.FONT_FACE_RULE = 5;
-CSSOM.CSSRule.PAGE_RULE = 6;
-CSSOM.CSSRule.WEBKIT_KEYFRAMES_RULE = 8;
-CSSOM.CSSRule.WEBKIT_KEYFRAME_RULE = 9;
-
-// Obsolete in CSSOM http://dev.w3.org/csswg/cssom/
-//CSSOM.CSSRule.UNKNOWN_RULE = 0;
-//CSSOM.CSSRule.CHARSET_RULE = 2;
-
-// Never implemented
-//CSSOM.CSSRule.VARIABLES_RULE = 7;
-
-CSSOM.CSSRule.prototype = {
-	constructor: CSSOM.CSSRule
-	//FIXME
-};
-
-
-//.CommonJS
-exports.CSSRule = CSSOM.CSSRule;
-///CommonJS

+ 0 - 130
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleDeclaration.js

@@ -1,130 +0,0 @@
-//.CommonJS
-var CSSOM = {};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration
- */
-CSSOM.CSSStyleDeclaration = function CSSStyleDeclaration(){
-	this.length = 0;
-
-	// NON-STANDARD
-	this._importants = {};
-};
-
-
-CSSOM.CSSStyleDeclaration.prototype = {
-
-	constructor: CSSOM.CSSStyleDeclaration,
-
-	/**
-	 *
-	 * @param {string} name
-	 * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
-	 * @return {string} the value of the property if it has been explicitly set for this declaration block. 
-	 * Returns the empty string if the property has not been set.
-	 */
-	getPropertyValue: function(name) {
-		return this[name] || ""
-	},
-
-	/**
-	 *
-	 * @param {string} name
-	 * @param {string} value
-	 * @param {string} [priority=null] "important" or null
-	 * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
-	 */
-	setProperty: function(name, value, priority) {
-		if (this[name]) {
-			// Property already exist. Overwrite it.
-			var index = Array.prototype.indexOf.call(this, name);
-			if (index < 0) {
-				this[this.length] = name;
-				this.length++;
-			}
-		} else {
-			// New property.
-			this[this.length] = name;
-			this.length++;
-		}
-		this[name] = value;
-		this._importants[name] = priority;
-	},
-
-	/**
-	 *
-	 * @param {string} name
-	 * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
-	 * @return {string} the value of the property if it has been explicitly set for this declaration block.
-	 * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
-	 */
-	removeProperty: function(name) {
-		if (!(name in this)) {
-			return ""
-		}
-		var index = Array.prototype.indexOf.call(this, name);
-		if (index < 0) {
-			return ""
-		}
-		var prevValue = this[name];
-		this[name] = "";
-
-		// That's what WebKit and Opera do
-		Array.prototype.splice.call(this, index, 1);
-
-		// That's what Firefox does
-		//this[index] = ""
-
-		return prevValue
-	},
-
-	getPropertyCSSValue: function() {
-		//FIXME
-	},
-
-	/**
-	 *
-	 * @param {String} name
-	 */
-	getPropertyPriority: function(name) {
-		return this._importants[name] || "";
-	},
-
-
-	/**
-	 *   element.style.overflow = "auto"
-	 *   element.style.getPropertyShorthand("overflow-x")
-	 *   -> "overflow"
-	 */
-	getPropertyShorthand: function() {
-		//FIXME
-	},
-
-	isPropertyImplicit: function() {
-		//FIXME
-	},
-
-	// Doesn't work in IE < 9
-	get cssText(){
-		var properties = [];
-		for (var i=0, length=this.length; i < length; ++i) {
-			var name = this[i];
-			var value = this.getPropertyValue(name);
-			var priority = this.getPropertyPriority(name);
-			if (priority) {
-				priority = " !" + priority;
-			}
-			properties[i] = name + ": " + value + priority + ";";
-		}
-		return properties.join(" ")
-	}
-
-};
-
-
-//.CommonJS
-exports.CSSStyleDeclaration = CSSOM.CSSStyleDeclaration;
-///CommonJS

+ 0 - 187
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleRule.js

@@ -1,187 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration,
-	CSSRule: require("./CSSRule").CSSRule
-};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#cssstylerule
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule
- */
-CSSOM.CSSStyleRule = function CSSStyleRule() {
-	this.selectorText = "";
-	this.style = new CSSOM.CSSStyleDeclaration;
-};
-
-CSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule;
-CSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;
-CSSOM.CSSStyleRule.prototype.type = 1;
-
-CSSOM.CSSStyleRule.prototype.__defineGetter__("cssText", function() {
-	var text;
-	if (this.selectorText) {
-		text = this.selectorText + " {" + this.style.cssText + "}";
-	} else {
-		text = "";
-	}
-	return text;
-});
-
-CSSOM.CSSStyleRule.prototype.__defineSetter__("cssText", function(cssText) {
-	var rule = CSSOM.CSSStyleRule.parse(cssText);
-	this.style = rule.style;
-	this.selectorText = rule.selectorText;
-});
-
-
-/**
- * NON-STANDARD
- * lightweight version of parse.js.
- * @param {string} ruleText
- * @return CSSStyleRule
- */
-CSSOM.CSSStyleRule.parse = function(ruleText) {
-	var i = 0;
-	var state = "selector";
-	var index;
-	var j = i;
-	var buffer = "";
-
-	var SIGNIFICANT_WHITESPACE = {
-		"selector": true,
-		"value": true
-	};
-
-	var styleRule = new CSSOM.CSSStyleRule;
-	var selector, name, value, priority="";
-
-	for (var character; character = ruleText.charAt(i); i++) {
-
-		switch (character) {
-
-		case " ":
-		case "\t":
-		case "\r":
-		case "\n":
-		case "\f":
-			if (SIGNIFICANT_WHITESPACE[state]) {
-				// Squash 2 or more white-spaces in the row into 1
-				switch (ruleText.charAt(i - 1)) {
-					case " ":
-					case "\t":
-					case "\r":
-					case "\n":
-					case "\f":
-						break;
-					default:
-						buffer += " ";
-						break;
-				}
-			}
-			break;
-
-		// String
-		case '"':
-			j = i + 1;
-			index = ruleText.indexOf('"', j) + 1;
-			if (!index) {
-				throw '" is missing';
-			}
-			buffer += ruleText.slice(i, index);
-			i = index - 1;
-			break;
-
-		case "'":
-			j = i + 1;
-			index = ruleText.indexOf("'", j) + 1;
-			if (!index) {
-				throw "' is missing";
-			}
-			buffer += ruleText.slice(i, index);
-			i = index - 1;
-			break;
-
-		// Comment
-		case "/":
-			if (ruleText.charAt(i + 1) == "*") {
-				i += 2;
-				index = ruleText.indexOf("*/", i);
-				if (index == -1) {
-					throw SyntaxError("Missing */");
-				} else {
-					i = index + 1;
-				}
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case "{":
-			if (state == "selector") {
-				styleRule.selectorText = buffer.trim();
-				buffer = "";
-				state = "name";
-			}
-			break;
-
-		case ":":
-			if (state == "name") {
-				name = buffer.trim();
-				buffer = "";
-				state = "value";
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case "!":
-			if (state == "value" && ruleText.indexOf("!important", i) === i) {
-				priority = "important";
-				i += "important".length;
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case ";":
-			if (state == "value") {
-				styleRule.style.setProperty(name, buffer.trim(), priority);
-				priority = "";
-				buffer = "";
-				state = "name";
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case "}":
-			if (state == "value") {
-				styleRule.style.setProperty(name, buffer.trim(), priority);
-				priority = "";
-				buffer = "";
-			} else if (state == "name") {
-				break;
-			} else {
-				buffer += character;
-			}
-			state = "selector";
-			break;
-
-		default:
-			buffer += character;
-			break;
-
-		}
-	}
-
-	return styleRule;
-
-};
-
-
-//.CommonJS
-exports.CSSStyleRule = CSSOM.CSSStyleRule;
-///CommonJS

+ 0 - 85
vendor/node-jasmine-dom/node_modules/cssom/lib/CSSStyleSheet.js

@@ -1,85 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	StyleSheet: require("./StyleSheet").StyleSheet,
-	CSSStyleRule: require("./CSSStyleRule").CSSStyleRule
-};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet
- */
-CSSOM.CSSStyleSheet = function CSSStyleSheet() {
-	this.cssRules = [];
-};
-
-
-CSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet;
-CSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;
-
-
-/**
- * Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.
- *
- *   sheet = new Sheet("body {margin: 0}")
- *   sheet.toString()
- *   -> "body{margin:0;}"
- *   sheet.insertRule("img {border: none}", 0)
- *   -> 0
- *   sheet.toString()
- *   -> "img{border:none;}body{margin:0;}"
- *
- * @param {string} rule
- * @param {number} index
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule
- * @return {number} The index within the style sheet's rule collection of the newly inserted rule.
- */
-CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {
-	if (index < 0 || index > this.cssRules.length) {
-		throw new RangeError("INDEX_SIZE_ERR")
-	}
-	this.cssRules.splice(index, 0, CSSOM.CSSStyleRule.parse(rule));
-	return index
-};
-
-
-/**
- * Used to delete a rule from the style sheet.
- *
- *   sheet = new Sheet("img{border:none} body{margin:0}")
- *   sheet.toString()
- *   -> "img{border:none;}body{margin:0;}"
- *   sheet.deleteRule(0)
- *   sheet.toString()
- *   -> "body{margin:0;}"
- *
- * @param {number} index
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule
- * @return {number} The index within the style sheet's rule list of the rule to remove.
- */
-CSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {
-	if (index < 0 || index >= this.cssRules.length) {
-		throw new RangeError("INDEX_SIZE_ERR");
-	}
-	this.cssRules.splice(index, 1);
-};
-
-
-/**
- * NON-STANDARD
- * @return {string} serialize stylesheet
- */
-CSSOM.CSSStyleSheet.prototype.toString = function() {
-	var result = "";
-	var rules = this.cssRules;
-	for (var i=0; i<rules.length; i++) {
-		result += rules[i].cssText + "\n";
-	}
-	return result;
-};
-
-
-//.CommonJS
-exports.CSSStyleSheet = CSSOM.CSSStyleSheet;
-///CommonJS

+ 0 - 61
vendor/node-jasmine-dom/node_modules/cssom/lib/MediaList.js

@@ -1,61 +0,0 @@
-//.CommonJS
-var CSSOM = {};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#the-medialist-interface
- */
-CSSOM.MediaList = function MediaList(){
-	this.length = 0;
-};
-
-CSSOM.MediaList.prototype = {
-
-	constructor: CSSOM.MediaList,
-
-	/**
-	 * @return {string}
-	 */
-	get mediaText() {
-		return Array.prototype.join.call(this, ", ");
-	},
-
-	/**
-	 * @param {string} value
-	 */
-	set mediaText(value) {
-		var values = value.split(",");
-		var length = this.length = values.length;
-		for (var i=0; i<length; i++) {
-			this[i] = values[i].trim();
-		}
-	},
-
-	/**
-	 * @param {string} medium
-	 */
-	appendMedium: function(medium) {
-		if (Array.prototype.indexOf.call(this, medium) == -1) {
-			this[this.length] = medium;
-			this.length++;
-		}
-	},
-
-	/**
-	 * @param {string} medium
-	 */
-	deleteMedium: function(medium) {
-		var index = Array.prototype.indexOf.call(this, medium);
-		if (index != -1) {
-			Array.prototype.splice.call(this, index, 1);
-		}
-	}
-	
-};
-
-
-//.CommonJS
-exports.MediaList = CSSOM.MediaList;
-///CommonJS

+ 0 - 15
vendor/node-jasmine-dom/node_modules/cssom/lib/StyleSheet.js

@@ -1,15 +0,0 @@
-//.CommonJS
-var CSSOM = {};
-///CommonJS
-
-
-/**
- * @constructor
- * @see http://dev.w3.org/csswg/cssom/#the-stylesheet-interface
- */
-CSSOM.StyleSheet = function StyleSheet(){};
-
-
-//.CommonJS
-exports.StyleSheet = CSSOM.StyleSheet;
-///CommonJS

+ 0 - 69
vendor/node-jasmine-dom/node_modules/cssom/lib/clone.js

@@ -1,69 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,
-	CSSStyleRule: require("./CSSStyleRule").CSSStyleRule,
-	CSSMediaRule: require("./CSSMediaRule").CSSMediaRule,
-	CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration
-};
-///CommonJS
-
-
-/**
- * Produces a deep copy of stylesheet — the instance variables of stylesheet are copied recursively.
- * @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet
- * @nosideeffects
- * @return {CSSOM.CSSStyleSheet}
- */
-CSSOM.clone = function clone(stylesheet) {
-
-	var cloned = new CSSOM.CSSStyleSheet;
-
-	var rules = stylesheet.cssRules;
-	if (!rules) {
-		return cloned;
-	}
-
-	var RULE_TYPES = {
-		1: CSSOM.CSSStyleRule,
-		4: CSSOM.CSSMediaRule
-		//FIXME
-		//3: CSSOM.CSSImportRule,
-		//5: CSSOM.CSSFontFaceRule,
-		//6: CSSOM.CSSPageRule,
-	};
-
-	for (var i=0, rulesLength=rules.length; i < rulesLength; i++) {
-		var rule = rules[i];
-		var ruleClone = cloned.cssRules[i] = new RULE_TYPES[rule.type];
-
-		var style = rule.style;
-		if (style) {
-			var styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration;
-			for (var j=0, styleLength=style.length; j < styleLength; j++) {
-				var name = styleClone[j] = style[j];
-				styleClone[name] = style[name];
-				styleClone._importants[name] = style.getPropertyPriority(name);
-			}
-			styleClone.length = style.length;
-		}
-
-		if ("selectorText" in rule) {
-			ruleClone.selectorText = rule.selectorText;
-		}
-
-		if ("mediaText" in rule) {
-			ruleClone.mediaText = rule.mediaText;
-		}
-
-		if ("cssRules" in rule) {
-			rule.cssRules = clone(rule).cssRules;
-		}
-	}
-
-	return cloned;
-
-};
-
-//.CommonJS
-exports.clone = CSSOM.clone;
-///CommonJS

+ 0 - 10
vendor/node-jasmine-dom/node_modules/cssom/lib/index.js

@@ -1,10 +0,0 @@
-exports.CSSStyleDeclaration = require("./CSSStyleDeclaration").CSSStyleDeclaration;
-exports.CSSRule = require("./CSSRule").CSSRule;
-exports.CSSStyleRule = require("./CSSStyleRule").CSSStyleRule;
-exports.CSSImportRule = require("./CSSImportRule").CSSImportRule;
-exports.MediaList = require("./MediaList").MediaList;
-exports.CSSMediaRule = require("./CSSMediaRule").CSSMediaRule;
-exports.StyleSheet = require("./StyleSheet").StyleSheet;
-exports.CSSStyleSheet = require("./CSSStyleSheet").CSSStyleSheet;
-exports.parse = require("./parse").parse;
-exports.clone = require("./clone").clone;

+ 0 - 195
vendor/node-jasmine-dom/node_modules/cssom/lib/parse.js

@@ -1,195 +0,0 @@
-//.CommonJS
-var CSSOM = {
-	CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,
-	CSSStyleRule: require("./CSSStyleRule").CSSStyleRule,
-	CSSMediaRule: require("./CSSMediaRule").CSSMediaRule
-};
-///CommonJS
-
-
-/**
- * @param {string} token
- * @param {Object} [options]
- */
-CSSOM.parse = function parse(token, options) {
-
-	options = options || {};
-	var i = options.startIndex || 0;
-	var state = options.state || "selector";
-
-	var index;
-	var j = i;
-	var buffer = "";
-
-	var SIGNIFICANT_WHITESPACE = {
-		"selector": true,
-		"value": true,
-		"atRule": true,
-		"atBlock": true
-	};
-
-	var styleSheet = new CSSOM.CSSStyleSheet;
-
-	// @type CSSStyleSheet|CSSMediaRule
-	var currentScope = styleSheet;
-	
-	var selector, name, value, priority="", styleRule, mediaRule;
-
-	for (var character; character = token.charAt(i); i++) {
-
-		switch (character) {
-
-		case " ":
-		case "\t":
-		case "\r":
-		case "\n":
-		case "\f":
-			if (SIGNIFICANT_WHITESPACE[state]) {
-				// Squash 2 or more white-spaces in the row into 1
-				switch (token.charAt(i - 1)) {
-					case " ":
-					case "\t":
-					case "\r":
-					case "\n":
-					case "\f":
-						break;
-					default:
-						buffer += " ";
-						break;
-				}
-			}
-			break;
-
-		// String
-		case '"':
-			j = i + 1;
-			index = token.indexOf('"', j) + 1;
-			if (!index) {
-				throw '" is missing';
-			}
-			buffer += token.slice(i, index);
-			i = index - 1;
-			break;
-
-		case "'":
-			j = i + 1;
-			index = token.indexOf("'", j) + 1;
-			if (!index) {
-				throw "' is missing";
-			}
-			buffer += token.slice(i, index);
-			i = index - 1;
-			break;
-
-		// Comment
-		case "/":
-			if (token.charAt(i + 1) == "*") {
-				i += 2;
-				index = token.indexOf("*/", i);
-				if (index == -1) {
-					throw SyntaxError("Missing */");
-				} else {
-					i = index + 1;
-				}
-			} else {
-				buffer += character;
-			}
-			break;
-
-		// At-rule
-		case "@":
-			if (token.indexOf("@media", i) == i) {
-				state = "atBlock";
-				i += "media".length;
-				buffer = "";
-				break;
-			} else if (state == "selector") {
-				state = "atRule";
-			}
-			buffer += character;
-			break;
-
-		case "{":
-			if (state == "selector" || state == "atRule") {
-				styleRule = new CSSOM.CSSStyleRule;
-				styleRule.selectorText = buffer.trim();
-				buffer = "";
-				state = "name";
-			} else if (state == "atBlock") {
-				mediaRule = new CSSOM.CSSMediaRule;
-				mediaRule.media.mediaText = buffer.trim();
-				currentScope = mediaRule;
-				buffer = "";
-				state = "selector";
-			}
-			break;
-
-		case ":":
-			if (state == "name") {
-				name = buffer.trim();
-				buffer = "";
-				state = "value";
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case "!":
-			if (state == "value" && token.indexOf("!important", i) === i) {
-				priority = "important";
-				i += "important".length;
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case ";":
-			if (state == "value") {
-				styleRule.style.setProperty(name, buffer.trim(), priority);
-				priority = "";
-				buffer = "";
-				state = "name";
-			} else if (state == "atRule") {
-				buffer = "";
-				state = "selector";
-			} else {
-				buffer += character;
-			}
-			break;
-
-		case "}":
-			if (state == "value") {
-				styleRule.style.setProperty(name, buffer.trim(), priority);
-				priority = "";
-				buffer = "";
-				currentScope.cssRules.push(styleRule);
-			} else if (state == "name") {
-				currentScope.cssRules.push(styleRule);
-				buffer = "";
-			} else if (state == "selector") {
-				// End of media rule.
-				// Nesting of media rules isn't supported
-				if (!mediaRule) {
-					throw "unexpected }";
-				}
-				styleSheet.cssRules.push(mediaRule);
-				currentScope = styleSheet;
-				buffer = "";
-			}
-			state = "selector";
-			break;
-
-		default:
-			buffer += character;
-			break;
-
-		}
-	}
-
-	return styleSheet;
-};
-
-
-//.CommonJS
-exports.parse = CSSOM.parse;
-///CommonJS

+ 0 - 17
vendor/node-jasmine-dom/node_modules/cssom/media.html

@@ -1,17 +0,0 @@
-<style>
-@media handheld, only screen and (max-device-width: 480px){
-	html {
-		color: black;
-	}
-}
-</style>
-
-<script>
-window.onload = function(){
-	if (document.styleSheets[0].cssRules[0].cssRules[0].parentRule === document.styleSheets[0].cssRules[0]) {
-		document.body.innerHTML = "PASS parentRule";
-	} else {
-		document.body.innerHTML = "FAIL parentRule";
-	}
-}
-</script>

+ 0 - 30
vendor/node-jasmine-dom/node_modules/cssom/package.json

@@ -1,30 +0,0 @@
-{
-	"name": "cssom",
-	"description": "CSS Object Model implementation and CSS parser",
-	"keywords": ["CSS", "CSSOM", "parser", "styleSheet"],
-	"version": "0.2.0",
-	"homepage": "https://github.com/NV/CSSOM",
-	"author": "Nikita Vasilyev <me@elv1s.ru>",
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/NV/CSSOM.git"
-	},
-	"bugs": {
-		"web": "https://github.com/NV/CSSOM/issues"
-	},
-	"directories": {
-		"doc": "./doc",
-		"lib": "./lib",
-		"test": "./test"
-	},
-	"main": "./lib/index.js",
-	"engines": {
-		"node": ">=0.2.0"
-	},
-	"licenses": [
-		{
-			"type": "MIT",
-			"url": "http://creativecommons.org/licenses/MIT/"
-		}
-	]
-}

+ 0 - 32
vendor/node-jasmine-dom/node_modules/cssom/plugins/toHTML.js

@@ -1,32 +0,0 @@
-/**
- * return {string}
- */
-function toHTML(){
-	var result = "";
-	var rules = this.cssRules;
-	var length = rules.length;
-	for (var i = 0; i < length; i++) {
-		var rule = rules[i];
-		if (rule) {
-			result += "<span class='rule'><b class='selector'>" + rule.selectorText + "</b> <span class='brace-open'>{</span>";
-			var style = rule.style;
-			if (!style) continue;
-			var jj = style.length;
-			if (jj) {
-				for (var j = 0; j < jj; j++) {
-					var name = style[j];
-					result += "\n<span class='name'>  " + name + "</span><span class='colon'>: </span><span class='value'>"
-								 + style[name] + "</span><span class='semicolon'>;</span>";
-				}
-			}
-			result += "<span class='brace-close'>\n}\n</span></span>";
-		}
-	}
-	return result;
-}
-
-
-
-if (typeof exports != "undefined") {
-	exports.toHTML = toHTML;
-}

+ 0 - 22
vendor/node-jasmine-dom/node_modules/cssom/server/index.html

@@ -1,22 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-	<title></title>
-	<script>
-		var xhr = new XMLHttpRequest();
-		xhr.open("POST", "http://localhost:8124/css_save", true);
-		xhr.setRequestHeader("x-path", "/tmp/test.txt");
-		xhr.onreadystatechange = function (aEvt) {
-			console.log(aEvt)
-		};
-		xhr.send("asdfsdf sdfkjs dkf");
-	</script>
-</head>
-<body>
-<form action="http://localhost:8124/css_save" method="POST">
-	<input name="path" value="file:///Users/nv/Code/CSSOM/server/index.html">
-	<textarea name="content">Fuu</textarea>
-	<button>Submit</button>
-</form>
-</body>
-</html>

+ 0 - 21
vendor/node-jasmine-dom/node_modules/cssom/server/index.js

@@ -1,21 +0,0 @@
-var http = require('http');
-var fs = require('fs');
-
-http.createServer(function(request, response) {
-//	console.dir(request);
-//	request.setEncoding("utf8");
-
-//	console.dir(request.headers);
-	var start = Date.now();
-	var path = request.headers["x-path"];
-
-
-	request.on("data", function(data){
-		console.log(fs.writeFileSync(path, data));
-		response.writeHead(200, {'Content-Type': 'text/plain'});
-		response.end(path + ' saved!\n');
-		var end = Date.now();
-		console.log(end - start + "ms");
-	});
-
-}).listen(8124);

+ 0 - 21
vendor/node-jasmine-dom/node_modules/cssom/shorthands.html

@@ -1,21 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-	<title></title>
-	<style type="text/css">
-	body {
-		font: 14px sans-serif;
-		border: none;
-		background-repeat: no-repeat;
-	}
-	</style>
-</head>
-<body>
-fuuu
-<script type="text/javascript">
-onload = function(){
-	console.dir(document.styleSheets[0].cssRules[0].style)
-}
-</script>
-</body>
-</html>

+ 0 - 35
vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleDeclaration.test.js

@@ -1,35 +0,0 @@
-test("CSSStyleDeclaration", function(){
-	var d = new CSSOM.CSSStyleDeclaration;
-	
-	d.setProperty("color", "purple");
-	equalOwnProperties(d, {
-		0: "color",
-		length: 1,
-		color: "purple"
-	});
-	
-	d.setProperty("width", "128px", "important");
-	equalOwnProperties(d, {
-		0: "color",
-		1: "width",
-		length: 2,
-		color: "purple",
-		width: "128px"
-	});
-	
-	equal(d.cssText, "color: purple; width: 128px !important;");
-	
-	equal(d.getPropertyValue("color"), "purple");
-	equal(d.getPropertyValue("width"), "128px");
-	equal(d.getPropertyValue("position"), "");
-	
-	strictEqual(d.getPropertyPriority("color"), "");
-	strictEqual(d.getPropertyPriority("width"), "important");
-	strictEqual(d.getPropertyPriority("position"), "");
-	
-	d.setProperty("color", "green");
-	d.removeProperty("width");
-	
-	equal(d.cssText, "color: green;");
-
-});

+ 0 - 12
vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleRule.test.js

@@ -1,12 +0,0 @@
-test("CSSStyleRule", function(){
-	var r = new CSSOM.CSSStyleRule;
-	r.cssText = "h1:first-of-type {\n\tfont-size: 3em\n}";
-
-	equal(r.cssText, "h1:first-of-type {font-size: 3em;}");
-	equal(r.selectorText, "h1:first-of-type");
-
-	r.selectorText = "h1.title";
-	equal(r.selectorText, "h1.title");
-	equal(r.cssText, "h1.title {font-size: 3em;}");
-
-});

+ 0 - 16
vendor/node-jasmine-dom/node_modules/cssom/test/CSSStyleSheet.test.js

@@ -1,16 +0,0 @@
-test("CSSStyleSheet", function(){
-	var s = new CSSOM.CSSStyleSheet;
-	deepEqual(s.cssRules, []);
-
-	s.insertRule("a {color: blue}", 0);
-	equal(s.cssRules.length, 1);
-
-	s.insertRule("a *:first-child, a img {border: none}", 1);
-	equal(s.cssRules.length, 2);
-
-	s.deleteRule(1);
-	equal(s.cssRules.length, 1);
-
-	s.deleteRule(0);
-	deepEqual(s.cssRules, []);
-});

+ 0 - 21
vendor/node-jasmine-dom/node_modules/cssom/test/MediaList.test.js

@@ -1,21 +0,0 @@
-test("MediaList", function(){
-	var m = new CSSOM.MediaList;
-	strictEqual(m.length, 0);
-
-	m.appendMedium("handheld");
-	m.appendMedium("screen");
-	m.appendMedium("only screen and (max-device-width: 480px)");
-
-	m.deleteMedium("screen");
-
-	strictEqual(m[2], undefined);
-
-	var expected = {
-		0: "handheld",
-		1: "only screen and (max-device-width: 480px)",
-		length: 2
-	};
-
-	equalOwnProperties(m, expected);
-	equal(m.mediaText, [].join.call(expected, ", "));
-});

+ 0 - 38
vendor/node-jasmine-dom/node_modules/cssom/test/clone.test.js

@@ -1,38 +0,0 @@
-test("clone", function(){
-	var css = {
-		cssRules: {
-			0: {
-				cssText: "* {background: #fff !important; color: #000 !important}",
-				parentRule: null,
-				selectorText: "body",
-				type: 1,
-				style: {
-					0: "background",
-					1: "color",
-					background: "#fff",
-					color: "#000",
-					cssText: "background: #fff !important; color: #000 !important",
-					length: 2,
-					getPropertyPriority: function(){
-						return "important";
-					}
-				}
-			},
-			length: 1
-		},
-		disabled: false,
-		href: "http://usercss.ru/black-on-white.css",
-		media: {
-			length: 0,
-			mediaText: ""
-		},
-		ownerRule: null,
-		parentStyleSheet: null,
-		title: null,
-		type: "text/css"
-	};
-	css.rule = css.cssRules;
-	css.cssRules[0].parentStyleSheet = css;
-	css.cssRules[0].style.parentRule = css.cssRules[0];
-	hasOwnProperties(css, CSSOM.clone(css), "Should be at least a subset of original object");
-});

+ 0 - 3
vendor/node-jasmine-dom/node_modules/cssom/test/fixtures/dummy.css

@@ -1,3 +0,0 @@
-body {
-	font-size: 12px;
-}

+ 0 - 97
vendor/node-jasmine-dom/node_modules/cssom/test/helper.js

@@ -1,97 +0,0 @@
-/**
- * @param {string} actual
- * @param {string} expected
- * @param {string} [message]
- * TODO: http://github.com/jquery/qunit/issues#issue/39
- */
-function equalOwnProperties(actual, expected, message) {
-	var actualDummy = cloneOwnProperties(actual);
-	var expectedDummy = cloneOwnProperties(expected);
-	deepEqual(actualDummy, expectedDummy, message);
-}
-
-
-/**
- * Make a deep copy of an object
- * @param {Object|Array} object
- * @return {Object|Array}
- */
-function cloneOwnProperties(object) {
-	var result = {};
-	for (var key in object) {
-		if (key.charAt(0) == "_" || !object.hasOwnProperty(key)) {
-			continue;
-		}
-		if (typeof object[key] == "object") {
-			result[key] = cloneOwnProperties(object[key]);
-		} else {
-			result[key] = object[key];
-		}
-	}
-	return result;
-}
-
-
-/**
- * @param {Object|Array} actual
- * @param {Object|Array} expected
- * @param {string} message
- */
-function hasOwnProperties(actual, expected, message){
-	var diff = subsetOfOwnProperties(actual, expected);
-	if (diff) {
-		QUnit.push(false, diff, {}, message);
-	} else {
-		// QUnit.jsDump is so dumb. It can't even parse circular references.
-		QUnit.push(true, "okay", "okay", message);
-	}
-}
-
-
-function subsetOfOwnProperties(base, another) {
-	if (base === another) {
-		return false;
-	}
-
-	if (typeof base != "object" || typeof another != "object") {
-		return another;
-	}
-
-	var diff = {};
-	var isDiff = false;
-	for (var key in another) {
-		if (key.charAt(0) == "_" || !another.hasOwnProperty(key)) {
-			continue;
-		}
-		if (key in base) {
-			if (base[key] === another[key]) {
-				// skip equal pairs
-			} else {
-				var sub = subsetOfOwnProperties(base[key], another[key]);
-				if (sub) {
-					isDiff = true;
-					diff[key] = sub;
-				}
-			}
-		} else {
-			isDiff = true;
-			diff[key] = another[key];
-		}
-	}
-
-	return isDiff ? diff : false;
-}
-
-
-/**
- * Compare two stylesheets
- * @param {string} css
- * @param {Object} expected
- * @param {string} [message]
- */
-function compare(css, expected, message) {
-	var actual = CSSOM.parse(css);
-	test(css, function(){
-		equalOwnProperties(actual, expected, message || "");
-	});
-}

+ 0 - 42
vendor/node-jasmine-dom/node_modules/cssom/test/index.html

@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-	<title>CSSOM tests</title>
-	<link rel="stylesheet" href="vendor/qunit.css" type="text/css">
-	<script src="vendor/qunit.js"></script>
-	<script>
-	var exports = {};
-	function require(){
-		return exports;
-	}
-	</script>
-	<script src="../lib/CSSStyleDeclaration.js"></script>
-	<script src="../lib/CSSRule.js"></script>
-	<script src="../lib/CSSStyleRule.js"></script>
-	<script src="../lib/CSSImportRule.js"></script>
-	<script src="../lib/MediaList.js"></script>
-	<script src="../lib/CSSMediaRule.js"></script>
-	<script src="../lib/StyleSheet.js"></script>
-	<script src="../lib/CSSStyleSheet.js"></script>
-	<script src="../lib/parse.js"></script>
-	<script src="../lib/clone.js"></script>
-	<script>
-	window.CSSOM = exports;
-	</script>
-	<script src="helper.js"></script>
-	<script src="CSSStyleSheet.test.js"></script>
-	<script src="CSSStyleDeclaration.test.js"></script>
-	<script src="CSSStyleRule.test.js"></script>
-	<script src="MediaList.test.js"></script>
-	<script src="parse.test.js"></script>
-	<script src="clone.test.js"></script>
-</head>
-<body id="qunit-wrapper">
-	<h1 id="qunit-header">CSSOM tests</h1>
-	<h2 id="qunit-banner"></h2>
-	<div id="qunit-testrunner-toolbar"></div>
-	<ol id="qunit-tests"></ol>
-	<h2 id="qunit-userAgent"></h2>
-	<div id="qunit-fixture">test markup</div>
-</body>
-</html>

+ 0 - 346
vendor/node-jasmine-dom/node_modules/cssom/test/parse.test.js

@@ -1,346 +0,0 @@
-var TESTS = [
-	{
-		input: "/* fuuuu */",
-		result: {
-			cssRules: []
-		}
-	},
-	{
-		input: "/**/",
-		result: {
-			cssRules: []
-		}
-	},
-	{
-		input: "/*a {content: '* {color:#000}'}*/",
-		result: {
-			cssRules: []
-		}
-	},
-	{
-		input: "a {color: red}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "a",
-					style: {
-						0: "color",
-						color: "red",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: ".left {float: left;}",
-		result: {
-			cssRules: [
-				{
-					selectorText: ".left",
-					style: {
-						0: "float",
-						float: "left",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "h1 {font-family: 'Times New Roman', Helvetica Neue, sans-serif }",
-		result: {
-			cssRules: [
-				{
-					selectorText: "h1",
-					style: {
-						0: "font-family",
-						"font-family": "'Times New Roman', Helvetica Neue, sans-serif",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "h2 {font: normal\n1.6em\r\nTimes New Roman,\tserif  ;}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "h2",
-					style: {
-						0: "font",
-						font: "normal 1.6em Times New Roman, serif",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: ".icon>*{background-image: url(../images/ramona_strong.gif);}",
-		result: {
-			cssRules: [
-				{
-					selectorText: ".icon>*",
-					style: {
-						0: "background-image",
-						"background-image": "url(../images/ramona_strong.gif)",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "*/**/{}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "*",
-					style: {
-						length: 0
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "/**/*{}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "*",
-					style: {
-						length: 0
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "* /**/*{}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "* *",
-					style: {
-						length: 0
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "*/*/*/ *{}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "* *",
-					style: {
-						length: 0
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "#a {b:c;}\n#d {e:f}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "#a",
-					style: {
-						0: "b",
-						b: "c",
-						length: 1
-					}
-				}, {
-					selectorText: "#d",
-					style: {
-						0: "e",
-						e: "f",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "* {	border:	none	} \n#foo {font-size: 12px; background:#fff;}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "*",
-					style: {
-						0: "border",
-						border: "none",
-						length: 1
-					}
-				},
-				{
-					selectorText: "#foo",
-					style: {
-						0: "font-size",
-						"font-size": "12px",
-						1: "background",
-						background: "#fff",
-						length: 2
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "span {display: inline-block !important; vertical-align: middle !important} .error{color:red!important;}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "span",
-					style: {
-						0: "display",
-						1: "vertical-align",
-						display: "inline-block",
-						"vertical-align": "middle",
-						length: 2
-					}
-				},
-				{
-					selectorText: ".error",
-					style: {
-						0: "color",
-						color: "red",
-						length: 1
-					}
-				}
-			]
-		}
-	},
-	{
-		input: "@media handheld, only screen and (max-device-width: 480px) {body{max-width:480px}}",
-		result: {
-			cssRules: [
-				{
-					media: {
-						0: "handheld",
-						1: "only screen and (max-device-width: 480px)",
-						length: 2
-					},
-					cssRules: [
-						{
-							selectorText: "body",
-							style: {
-								0: "max-width",
-								"max-width": "480px",
-								length: 1
-							}
-						}
-					]
-				}
-			]
-		}
-	},
-	{
-		input: "@media screen, screen, screen {/* Match Firefox and Opera behavior here rather than WebKit. \nSane person shouldn't write like this anyway. */}",
-		result: {
-			cssRules: [
-				{
-					media: {
-						0: "screen",
-						1: "screen",
-						2: "screen",
-						length: 3
-					},
-					cssRules: []
-				}
-			]
-		}
-	},
-	{
-		input: "@media/**/print {*{background:#fff}}",
-		result: {
-			cssRules: [
-				{
-					media: {
-						0: "print",
-						length: 1
-					},
-					cssRules: [
-						{
-							selectorText: "*",
-							style: {
-								0: "background",
-								background: "#fff",
-								length: 1
-							}
-						}
-					]
-				}
-			]
-		}
-	},
-	{
-		input: "a{}@media all{b{color:#000}}",
-		result: {
-			cssRules: [
-				{
-					selectorText: "a",
-					style: {
-						length: 0
-					}
-				},
-				{
-					media: {
-						0: "all",
-						length: 1
-					},
-					cssRules: [
-						{
-							selectorText: "b",
-							style: {
-								0: "color",
-								color: "#000",
-								length: 1
-							}
-						}
-					]
-				}
-			]
-		}
-	},
-	{
-		input: "@mediaall {}",
-		result: {
-			cssRules: []
-		}
-	},
-	{
-		input: "some invalid junk @media projection {body{background:black}}",
-		result: {
-			cssRules: [
-				{
-					media: {
-						0: "projection",
-						length: 1
-					},
-					cssRules: [
-						{
-							selectorText: "body",
-							style: {
-								0: "background",
-								background: "black",
-								length: 1
-							}
-						}
-					]
-				}
-			]
-		}
-	}
-];
-
-
-// Run tests.
-for (var i=0; i<TESTS.length; i++) {
-	compare(TESTS[i].input, TESTS[i].result, TESTS[i].name);
-}

+ 0 - 189
vendor/node-jasmine-dom/node_modules/cssom/test/vendor/qunit.css

@@ -1,189 +0,0 @@
-/** Font Family and Sizes */
-
-#qunit-wrapper {
-	font-family: "Helvetica Neue", Helvetica, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-wrapper, #qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Helvetica, sans-serif;
-	padding: 0.5em 0 0.5em 1.3em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-banner.qunit-pass {
-	height: 3px;
-}
-#qunit-banner.qunit-fail {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0 0 0.5em 2em;
-}
-
-#qunit-testrunner-toolbar label {
-	margin-right: 1em;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	font-weight: normal;
-	color: #666;
-}
-
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-type: none;
-	background-color: #D2E0E6;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-}
-
-#qunit-tests li strong {
-	font-weight: normal;
-	cursor: pointer;
-}
-
-#qunit-tests ol {
-	margin: 0.5em 0 1em;
-	background-color: #fff;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed {
-	color: #710909;
-}
-#qunit-tests li.fail .failed {
-	color: #E48989;
-}
-#qunit-tests li.fail .passed {
-	color: #E3C987;
-}
-
-#qunit-tests li li {
-	margin-left: 2.5em;
-	padding: 0.7em 0.5em 0.7em 0;
-	background-color: #fff;
-	border-bottom: none;
-}
-
-#qunit-tests b.counts {
-	font-weight: normal;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #5E740B;
-	background-color: #fff;
-}
-
-#qunit-tests .pass                          { color: #2f3424; background-color: #d9dec3; }
-#qunit-tests .pass .module-name             { color: #636b51; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-}
-
-#qunit-tests .fail                          { color: #fff; background-color: #962323; }
-#qunit-tests .fail .module-name,
-#qunit-tests .fail .counts                  { color: #DEC1C1; }
-
-#qunit-tests .fail .test-actual             { color: #B72F2F; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail, 
-#qunit-testrunner-toolbar                   { color: #dec1c1; background-color: #962323; }
-
-
-/** Footer */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-	color: #333;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1341
vendor/node-jasmine-dom/node_modules/cssom/test/vendor/qunit.js


+ 0 - 17
vendor/node-jasmine-dom/node_modules/htmlparser/.project

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>NodeHtmlParser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>

+ 0 - 17
vendor/node-jasmine-dom/node_modules/htmlparser/.project.bak

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>NodeHtmlParser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>

+ 0 - 6
vendor/node-jasmine-dom/node_modules/htmlparser/.settings/.jsdtscope

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path=""/>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
-</classpath>

+ 0 - 1
vendor/node-jasmine-dom/node_modules/htmlparser/.settings/org.eclipse.wst.jsdt.ui.superType.container

@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 0 - 1
vendor/node-jasmine-dom/node_modules/htmlparser/.settings/org.eclipse.wst.jsdt.ui.superType.name

@@ -1 +0,0 @@
-Window

+ 0 - 33
vendor/node-jasmine-dom/node_modules/htmlparser/CHANGELOG

@@ -1,33 +0,0 @@
-
-v1.7.2
-	* Document position feature fixed to work correctly with chunked parsing
-
-v1.7.1
-	* Document position feature disabled until it works correctly with chunked parsing
-
-v1.7.0
-	* Empty tag checking switch to being case insensitive [fgnass]
-	* Added feature to include document position (row, col) in element data [fgnass]
-	* Added parser option "includeLocation" to enable document position data
-
-v1.6.4
-	* Fixed 'prevElement' error [Swizec]
-
-v1.6.3
-	* Updated to support being an npm package
-	* Fixed DomUtils.testElement()
-
-v1.6.1
-	* Optimized DomUtils by up to 2-3x 
-
-v1.6.0
-	* Added support for RSS/Atom feeds
-
-v1.5.0
-	* Added DefaultHandler option "enforceEmptyTags" so that XML can be parsed correctly
-
-v1.4.2
-	* Added tests for parsing XML with namespaces
-
-v1.4.1
-	* Added minified version

+ 0 - 18
vendor/node-jasmine-dom/node_modules/htmlparser/LICENSE

@@ -1,18 +0,0 @@
-Copyright 2010, Chris Winberry <chris@winberry.net>. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.

+ 0 - 186
vendor/node-jasmine-dom/node_modules/htmlparser/README.md

@@ -1,186 +0,0 @@
-#NodeHtmlParser
-A forgiving HTML/XML/RSS parser written in JS for both the browser and NodeJS (yes, despite the name it works just fine in any modern browser). The parser can handle streams (chunked data) and supports custom handlers for writing custom DOMs/output.
-
-##Installing
-
-	npm install htmlparser
-
-##Running Tests
-
-###Run tests under node:
-	node runtests.js
-
-###Run tests in browser:
-View runtests.html in any browser
-
-##Usage In Node
-	var htmlparser = require("node-htmlparser");
-	var rawHtml = "Xyz <script language= javascript>var foo = '<<bar>>';< /  script><!--<!-- Waah! -- -->";
-	var handler = new htmlparser.DefaultHandler(function (error, dom) {
-		if (error)
-			[...do something for errors...]
-		else
-			[...parsing done, do something...]
-	});
-	var parser = new htmlparser.Parser(handler);
-	parser.parseComplete(rawHtml);
-	sys.puts(sys.inspect(handler.dom, false, null));
-
-##Usage In Browser
-	var handler = new Tautologistics.NodeHtmlParser.DefaultHandler(function (error, dom) {
-		if (error)
-			[...do something for errors...]
-		else
-			[...parsing done, do something...]
-	});
-	var parser = new Tautologistics.NodeHtmlParser.Parser(handler);
-	parser.parseComplete(document.body.innerHTML);
-	alert(JSON.stringify(handler.dom, null, 2));
-
-##Example output
-	[ { raw: 'Xyz ', data: 'Xyz ', type: 'text' }
-	, { raw: 'script language= javascript'
-	  , data: 'script language= javascript'
-	  , type: 'script'
-	  , name: 'script'
-	  , attribs: { language: 'javascript' }
-	  , children: 
-	     [ { raw: 'var foo = \'<bar>\';<'
-	       , data: 'var foo = \'<bar>\';<'
-	       , type: 'text'
-	       }
-	     ]
-	  }
-	, { raw: '<!-- Waah! -- '
-	  , data: '<!-- Waah! -- '
-	  , type: 'comment'
-	  }
-	]
-
-##Streaming To Parser
-	while (...) {
-		...
-		parser.parseChunk(chunk);
-	}
-	parser.done();	
-
-##Parsing RSS/Atom Feeds
-
-	new htmlparser.RssHandler(function (error, dom) {
-		...
-	});
-
-##DefaultHandler Options
-
-###Usage
-	var handler = new htmlparser.DefaultHandler(
-		  function (error) { ... }
-		, { verbose: false, ignoreWhitespace: true }
-		);
-	
-###Option: ignoreWhitespace
-Indicates whether the DOM should exclude text nodes that consists solely of whitespace. The default value is "false".
-
-####Example: true
-The following HTML:
-	<font>
-		<br>this is the text
-	<font>
-becomes:
-	[ { raw: 'font'
-	  , data: 'font'
-	  , type: 'tag'
-	  , name: 'font'
-	  , children: 
-	     [ { raw: 'br', data: 'br', type: 'tag', name: 'br' }
-	     , { raw: 'this is the text\n'
-	       , data: 'this is the text\n'
-	       , type: 'text'
-	       }
-	     , { raw: 'font', data: 'font', type: 'tag', name: 'font' }
-	     ]
-	  }
-	]
-
-####Example: false
-The following HTML:
-	<font>
-		<br>this is the text
-	<font>
-becomes:
-	[ { raw: 'font'
-	  , data: 'font'
-	  , type: 'tag'
-	  , name: 'font'
-	  , children: 
-	     [ { raw: '\n\t', data: '\n\t', type: 'text' }
-	     , { raw: 'br', data: 'br', type: 'tag', name: 'br' }
-	     , { raw: 'this is the text\n'
-	       , data: 'this is the text\n'
-	       , type: 'text'
-	       }
-	     , { raw: 'font', data: 'font', type: 'tag', name: 'font' }
-	     ]
-	  }
-	]
-
-###Option: verbose
-Indicates whether to include extra information on each node in the DOM. This information consists of the "raw" attribute (original, unparsed text found between "<" and ">") and the "data" attribute on "tag", "script", and "comment" nodes. The default value is "true". 
-
-####Example: true
-The following HTML:
-	<a href="test.html">xxx</a>
-becomes:
-	[ { raw: 'a href="test.html"'
-	  , data: 'a href="test.html"'
-	  , type: 'tag'
-	  , name: 'a'
-	  , attribs: { href: 'test.html' }
-	  , children: [ { raw: 'xxx', data: 'xxx', type: 'text' } ]
-	  }
-	]
-
-####Example: false
-The following HTML:
-	<a href="test.html">xxx</a>
-becomes:
-	[ { type: 'tag'
-	  , name: 'a'
-	  , attribs: { href: 'test.html' }
-	  , children: [ { data: 'xxx', type: 'text' } ]
-	  }
-	]
-
-###Option: enforceEmptyTags
-Indicates whether the DOM should prevent children on tags marked as empty in the HTML spec. Typically this should be set to "true" HTML parsing and "false" for XML parsing. The default value is "true".
-
-####Example: true
-The following HTML:
-	<link>text</link>
-becomes:
-	[ { raw: 'link', data: 'link', type: 'tag', name: 'link' }
-	, { raw: 'text', data: 'text', type: 'text' }
-	]
-
-####Example: false
-The following HTML:
-	<link>text</link>
-becomes:
-	[ { raw: 'link'
-	  , data: 'link'
-	  , type: 'tag'
-	  , name: 'link'
-	  , children: [ { raw: 'text', data: 'text', type: 'text' } ]
-	  }
-	]
-
-##DomUtils
-
-###TBD (see utils_example.js for now)
-
-##Related Projects
-
-Looking for CSS selectors to search the DOM? Try Node-SoupSelect, a port of SoupSelect to NodeJS: http://github.com/harryf/node-soupselect
-
-There's also a port of hpricot to NodeJS that uses node-HtmlParser for HTML parsing: http://github.com/silentrob/Apricot
-

+ 0 - 35
vendor/node-jasmine-dom/node_modules/htmlparser/a

@@ -1,35 +0,0 @@
-[ { raw: 'html',
-    data: 'html',
-    type: 'tag',
-    location: { line: 1, col: 1 },
-    name: 'html',
-    children: 
-     [ { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 1, col: 5 } },
-       { raw: 'title',
-         data: 'title',
-         type: 'tag',
-         location: { line: 3, col: 1 },
-         name: 'title',
-         children: 
-          [ { raw: 'The Title',
-              data: 'The Title',
-              type: 'text',
-              location: { line: 3, col: 6 } } ] },
-       { raw: 'body',
-         data: 'body',
-         type: 'tag',
-         location: { line: 3, col: 1 },
-         name: 'body',
-         children: 
-          [ { raw: '\nHello world\n\n',
-              data: '\nHello world\n\n',
-              type: 'text',
-              location: { line: 3, col: 5 } } ] },
-       { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 6, col: 6 } } ] } ]
-

+ 0 - 35
vendor/node-jasmine-dom/node_modules/htmlparser/b

@@ -1,35 +0,0 @@
-[ { raw: 'html',
-    data: 'html',
-    type: 'tag',
-    location: { line: 1, col: 0 },
-    name: 'html',
-    children: 
-     [ { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 1, col: 5 } },
-       { raw: 'title',
-         data: 'title',
-         type: 'tag',
-         location: { line: 1, col: 0 },
-         name: 'title',
-         children: 
-          [ { raw: 'The Title',
-              data: 'The Title',
-              type: 'text',
-              location: { line: 1, col: 0 } } ] },
-       { raw: 'body',
-         data: 'body',
-         type: 'tag',
-         location: { line: 1, col: 0 },
-         name: 'body',
-         children: 
-          [ { raw: '\nHello world\n\n',
-              data: '\nHello world\n\n',
-              type: 'text',
-              location: { line: 1, col: 0 } } ] },
-       { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 1, col: 0 } } ] } ]
-

+ 0 - 35
vendor/node-jasmine-dom/node_modules/htmlparser/c

@@ -1,35 +0,0 @@
-[ { raw: 'html',
-    data: 'html',
-    type: 'tag',
-    location: { line: 1, col: 0 },
-    name: 'html',
-    children: 
-     [ { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 1, col: 5 } },
-       { raw: 'title',
-         data: 'title',
-         type: 'tag',
-         location: { line: 1, col: 0 },
-         name: 'title',
-         children: 
-          [ { raw: 'The Title',
-              data: 'The Title',
-              type: 'text',
-              location: { line: 1, col: 0 } } ] },
-       { raw: 'body',
-         data: 'body',
-         type: 'tag',
-         location: { line: 1, col: 0 },
-         name: 'body',
-         children: 
-          [ { raw: '\nHello world\n\n',
-              data: '\nHello world\n\n',
-              type: 'text',
-              location: { line: 1, col: 0 } } ] },
-       { raw: '\n\n',
-         data: '\n\n',
-         type: 'text',
-         location: { line: 1, col: 0 } } ] } ]
-

+ 0 - 482
vendor/node-jasmine-dom/node_modules/htmlparser/json2.js

@@ -1,482 +0,0 @@
-/*
-    http://www.JSON.org/json2.js
-    2010-03-20
-
-    Public Domain.
-
-    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
-    See http://www.JSON.org/js.html
-
-
-    This code should be minified before deployment.
-    See http://javascript.crockford.com/jsmin.html
-
-    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
-    NOT CONTROL.
-
-
-    This file creates a global JSON object containing two methods: stringify
-    and parse.
-
-        JSON.stringify(value, replacer, space)
-            value       any JavaScript value, usually an object or array.
-
-            replacer    an optional parameter that determines how object
-                        values are stringified for objects. It can be a
-                        function or an array of strings.
-
-            space       an optional parameter that specifies the indentation
-                        of nested structures. If it is omitted, the text will
-                        be packed without extra whitespace. If it is a number,
-                        it will specify the number of spaces to indent at each
-                        level. If it is a string (such as '\t' or '&nbsp;'),
-                        it contains the characters used to indent at each level.
-
-            This method produces a JSON text from a JavaScript value.
-
-            When an object value is found, if the object contains a toJSON
-            method, its toJSON method will be called and the result will be
-            stringified. A toJSON method does not serialize: it returns the
-            value represented by the name/value pair that should be serialized,
-            or undefined if nothing should be serialized. The toJSON method
-            will be passed the key associated with the value, and this will be
-            bound to the value
-
-            For example, this would serialize Dates as ISO strings.
-
-                Date.prototype.toJSON = function (key) {
-                    function f(n) {
-                        // Format integers to have at least two digits.
-                        return n < 10 ? '0' + n : n;
-                    }
-
-                    return this.getUTCFullYear()   + '-' +
-                         f(this.getUTCMonth() + 1) + '-' +
-                         f(this.getUTCDate())      + 'T' +
-                         f(this.getUTCHours())     + ':' +
-                         f(this.getUTCMinutes())   + ':' +
-                         f(this.getUTCSeconds())   + 'Z';
-                };
-
-            You can provide an optional replacer method. It will be passed the
-            key and value of each member, with this bound to the containing
-            object. The value that is returned from your method will be
-            serialized. If your method returns undefined, then the member will
-            be excluded from the serialization.
-
-            If the replacer parameter is an array of strings, then it will be
-            used to select the members to be serialized. It filters the results
-            such that only members with keys listed in the replacer array are
-            stringified.
-
-            Values that do not have JSON representations, such as undefined or
-            functions, will not be serialized. Such values in objects will be
-            dropped; in arrays they will be replaced with null. You can use
-            a replacer function to replace those with JSON values.
-            JSON.stringify(undefined) returns undefined.
-
-            The optional space parameter produces a stringification of the
-            value that is filled with line breaks and indentation to make it
-            easier to read.
-
-            If the space parameter is a non-empty string, then that string will
-            be used for indentation. If the space parameter is a number, then
-            the indentation will be that many spaces.
-
-            Example:
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}]);
-            // text is '["e",{"pluribus":"unum"}]'
-
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
-            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
-
-            text = JSON.stringify([new Date()], function (key, value) {
-                return this[key] instanceof Date ?
-                    'Date(' + this[key] + ')' : value;
-            });
-            // text is '["Date(---current time---)"]'
-
-
-        JSON.parse(text, reviver)
-            This method parses a JSON text to produce an object or array.
-            It can throw a SyntaxError exception.
-
-            The optional reviver parameter is a function that can filter and
-            transform the results. It receives each of the keys and values,
-            and its return value is used instead of the original value.
-            If it returns what it received, then the structure is not modified.
-            If it returns undefined then the member is deleted.
-
-            Example:
-
-            // Parse the text. Values that look like ISO date strings will
-            // be converted to Date objects.
-
-            myData = JSON.parse(text, function (key, value) {
-                var a;
-                if (typeof value === 'string') {
-                    a =
-/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
-                    if (a) {
-                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
-                            +a[5], +a[6]));
-                    }
-                }
-                return value;
-            });
-
-            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
-                var d;
-                if (typeof value === 'string' &&
-                        value.slice(0, 5) === 'Date(' &&
-                        value.slice(-1) === ')') {
-                    d = new Date(value.slice(5, -1));
-                    if (d) {
-                        return d;
-                    }
-                }
-                return value;
-            });
-
-
-    This is a reference implementation. You are free to copy, modify, or
-    redistribute.
-*/
-
-/*jslint evil: true, strict: false */
-
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
-    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
-    lastIndex, length, parse, prototype, push, replace, slice, stringify,
-    test, toJSON, toString, valueOf
-*/
-
-
-// Create a JSON object only if one does not already exist. We create the
-// methods in a closure to avoid creating global variables.
-
-if (!this.JSON) {
-    this.JSON = {};
-}
-
-(function () {
-
-    function f(n) {
-        // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
-    }
-
-    if (typeof Date.prototype.toJSON !== 'function') {
-
-        Date.prototype.toJSON = function (key) {
-
-            return isFinite(this.valueOf()) ?
-                   this.getUTCFullYear()   + '-' +
-                 f(this.getUTCMonth() + 1) + '-' +
-                 f(this.getUTCDate())      + 'T' +
-                 f(this.getUTCHours())     + ':' +
-                 f(this.getUTCMinutes())   + ':' +
-                 f(this.getUTCSeconds())   + 'Z' : null;
-        };
-
-        String.prototype.toJSON =
-        Number.prototype.toJSON =
-        Boolean.prototype.toJSON = function (key) {
-            return this.valueOf();
-        };
-    }
-
-    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        gap,
-        indent,
-        meta = {    // table of character substitutions
-            '\b': '\\b',
-            '\t': '\\t',
-            '\n': '\\n',
-            '\f': '\\f',
-            '\r': '\\r',
-            '"' : '\\"',
-            '\\': '\\\\'
-        },
-        rep;
-
-
-    function quote(string) {
-
-// If the string contains no control characters, no quote characters, and no
-// backslash characters, then we can safely slap some quotes around it.
-// Otherwise we must also replace the offending characters with safe escape
-// sequences.
-
-        escapable.lastIndex = 0;
-        return escapable.test(string) ?
-            '"' + string.replace(escapable, function (a) {
-                var c = meta[a];
-                return typeof c === 'string' ? c :
-                    '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-            }) + '"' :
-            '"' + string + '"';
-    }
-
-
-    function str(key, holder) {
-
-// Produce a string from holder[key].
-
-        var i,          // The loop counter.
-            k,          // The member key.
-            v,          // The member value.
-            length,
-            mind = gap,
-            partial,
-            value = holder[key];
-
-// If the value has a toJSON method, call it to obtain a replacement value.
-
-        if (value && typeof value === 'object' &&
-                typeof value.toJSON === 'function') {
-            value = value.toJSON(key);
-        }
-
-// If we were called with a replacer function, then call the replacer to
-// obtain a replacement value.
-
-        if (typeof rep === 'function') {
-            value = rep.call(holder, key, value);
-        }
-
-// What happens next depends on the value's type.
-
-        switch (typeof value) {
-        case 'string':
-            return quote(value);
-
-        case 'number':
-
-// JSON numbers must be finite. Encode non-finite numbers as null.
-
-            return isFinite(value) ? String(value) : 'null';
-
-        case 'boolean':
-        case 'null':
-
-// If the value is a boolean or null, convert it to a string. Note:
-// typeof null does not produce 'null'. The case is included here in
-// the remote chance that this gets fixed someday.
-
-            return String(value);
-
-// If the type is 'object', we might be dealing with an object or an array or
-// null.
-
-        case 'object':
-
-// Due to a specification blunder in ECMAScript, typeof null is 'object',
-// so watch out for that case.
-
-            if (!value) {
-                return 'null';
-            }
-
-// Make an array to hold the partial results of stringifying this object value.
-
-            gap += indent;
-            partial = [];
-
-// Is the value an array?
-
-            if (Object.prototype.toString.apply(value) === '[object Array]') {
-
-// The value is an array. Stringify every element. Use null as a placeholder
-// for non-JSON values.
-
-                length = value.length;
-                for (i = 0; i < length; i += 1) {
-                    partial[i] = str(i, value) || 'null';
-                }
-
-// Join all of the elements together, separated with commas, and wrap them in
-// brackets.
-
-                v = partial.length === 0 ? '[]' :
-                    gap ? '[\n' + gap +
-                            partial.join(',\n' + gap) + '\n' +
-                                mind + ']' :
-                          '[' + partial.join(',') + ']';
-                gap = mind;
-                return v;
-            }
-
-// If the replacer is an array, use it to select the members to be stringified.
-
-            if (rep && typeof rep === 'object') {
-                length = rep.length;
-                for (i = 0; i < length; i += 1) {
-                    k = rep[i];
-                    if (typeof k === 'string') {
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            } else {
-
-// Otherwise, iterate through all of the keys in the object.
-
-                for (k in value) {
-                    if (Object.hasOwnProperty.call(value, k)) {
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            }
-
-// Join all of the member texts together, separated with commas,
-// and wrap them in braces.
-
-            v = partial.length === 0 ? '{}' :
-                gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
-                        mind + '}' : '{' + partial.join(',') + '}';
-            gap = mind;
-            return v;
-        }
-    }
-
-// If the JSON object does not yet have a stringify method, give it one.
-
-    if (typeof JSON.stringify !== 'function') {
-        JSON.stringify = function (value, replacer, space) {
-
-// The stringify method takes a value and an optional replacer, and an optional
-// space parameter, and returns a JSON text. The replacer can be a function
-// that can replace values, or an array of strings that will select the keys.
-// A default replacer method can be provided. Use of the space parameter can
-// produce text that is more easily readable.
-
-            var i;
-            gap = '';
-            indent = '';
-
-// If the space parameter is a number, make an indent string containing that
-// many spaces.
-
-            if (typeof space === 'number') {
-                for (i = 0; i < space; i += 1) {
-                    indent += ' ';
-                }
-
-// If the space parameter is a string, it will be used as the indent string.
-
-            } else if (typeof space === 'string') {
-                indent = space;
-            }
-
-// If there is a replacer, it must be a function or an array.
-// Otherwise, throw an error.
-
-            rep = replacer;
-            if (replacer && typeof replacer !== 'function' &&
-                    (typeof replacer !== 'object' ||
-                     typeof replacer.length !== 'number')) {
-                throw new Error('JSON.stringify');
-            }
-
-// Make a fake root object containing our value under the key of ''.
-// Return the result of stringifying the value.
-
-            return str('', {'': value});
-        };
-    }
-
-
-// If the JSON object does not yet have a parse method, give it one.
-
-    if (typeof JSON.parse !== 'function') {
-        JSON.parse = function (text, reviver) {
-
-// The parse method takes a text and an optional reviver function, and returns
-// a JavaScript value if the text is a valid JSON text.
-
-            var j;
-
-            function walk(holder, key) {
-
-// The walk method is used to recursively walk the resulting structure so
-// that modifications can be made.
-
-                var k, v, value = holder[key];
-                if (value && typeof value === 'object') {
-                    for (k in value) {
-                        if (Object.hasOwnProperty.call(value, k)) {
-                            v = walk(value, k);
-                            if (v !== undefined) {
-                                value[k] = v;
-                            } else {
-                                delete value[k];
-                            }
-                        }
-                    }
-                }
-                return reviver.call(holder, key, value);
-            }
-
-
-// Parsing happens in four stages. In the first stage, we replace certain
-// Unicode characters with escape sequences. JavaScript handles many characters
-// incorrectly, either silently deleting them, or treating them as line endings.
-
-            text = String(text);
-            cx.lastIndex = 0;
-            if (cx.test(text)) {
-                text = text.replace(cx, function (a) {
-                    return '\\u' +
-                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-                });
-            }
-
-// In the second stage, we run the text against regular expressions that look
-// for non-JSON patterns. We are especially concerned with '()' and 'new'
-// because they can cause invocation, and '=' because it can cause mutation.
-// But just to be safe, we want to reject all unexpected forms.
-
-// We split the second stage into 4 regexp operations in order to work around
-// crippling inefficiencies in IE's and Safari's regexp engines. First we
-// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
-// replace all simple value tokens with ']' characters. Third, we delete all
-// open brackets that follow a colon or comma or that begin the text. Finally,
-// we look to see that the remaining characters are only whitespace or ']' or
-// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
-            if (/^[\],:{}\s]*$/.
-test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
-replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
-replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-// In the third stage we use the eval function to compile the text into a
-// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-// in JavaScript: it can begin a block or an object literal. We wrap the text
-// in parens to eliminate the ambiguity.
-
-                j = eval('(' + text + ')');
-
-// In the optional fourth stage, we recursively walk the new structure, passing
-// each name/value pair to a reviver function for possible transformation.
-
-                return typeof reviver === 'function' ?
-                    walk({'': j}, '') : j;
-            }
-
-// If the text is not JSON parseable, then a SyntaxError is thrown.
-
-            throw new SyntaxError('JSON.parse');
-        };
-    }
-}());

+ 0 - 822
vendor/node-jasmine-dom/node_modules/htmlparser/lib/htmlparser.js

@@ -1,822 +0,0 @@
-/***********************************************
-Copyright 2010, Chris Winberry <chris@winberry.net>. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-***********************************************/
-/* v1.7.2 */
-
-(function () {
-
-function runningInNode () {
-	return(
-		(typeof require) == "function"
-		&&
-		(typeof exports) == "object"
-		&&
-		(typeof module) == "object"
-		&&
-		(typeof __filename) == "string"
-		&&
-		(typeof __dirname) == "string"
-		);
-}
-
-if (!runningInNode()) {
-	if (!this.Tautologistics)
-		this.Tautologistics = {};
-	else if (this.Tautologistics.NodeHtmlParser)
-		return; //NodeHtmlParser already defined!
-	this.Tautologistics.NodeHtmlParser = {};
-	exports = this.Tautologistics.NodeHtmlParser;
-}
-
-//Types of elements found in the DOM
-var ElementType = {
-	  Text: "text" //Plain text
-	, Directive: "directive" //Special tag <!...>
-	, Comment: "comment" //Special tag <!--...-->
-	, Script: "script" //Special tag <script>...</script>
-	, Style: "style" //Special tag <style>...</style>
-	, Tag: "tag" //Any tag that isn't special
-}
-
-function Parser (handler, options) {
-	this._options = options ? options : { };
-	if (this._options.includeLocation == undefined) {
-		this._options.includeLocation = false; //Do not track element position in document by default
-	}
-
-	this.validateHandler(handler);
-	this._handler = handler;
-	this.reset();
-}
-
-	//**"Static"**//
-	//Regular expressions used for cleaning up and parsing (stateless)
-	Parser._reTrim = /(^\s+|\s+$)/g; //Trim leading/trailing whitespace
-	Parser._reTrimComment = /(^\!--|--$)/g; //Remove comment tag markup from comment contents
-	Parser._reWhitespace = /\s/g; //Used to find any whitespace to split on
-	Parser._reTagName = /^\s*(\/?)\s*([^\s\/]+)/; //Used to find the tag name for an element
-
-	//Regular expressions used for parsing (stateful)
-	Parser._reAttrib = //Find attributes in a tag
-		/([^=<>\"\'\s]+)\s*=\s*"([^"]*)"|([^=<>\"\'\s]+)\s*=\s*'([^']*)'|([^=<>\"\'\s]+)\s*=\s*([^'"\s]+)|([^=<>\"\'\s\/]+)/g;
-	Parser._reTags = /[\<\>]/g; //Find tag markers
-
-	//**Public**//
-	//Methods//
-	//Parses a complete HTML and pushes it to the handler
-	Parser.prototype.parseComplete = function Parser$parseComplete (data) {
-		this.reset();
-		this.parseChunk(data);
-		this.done();
-	}
-
-	//Parses a piece of an HTML document
-	Parser.prototype.parseChunk = function Parser$parseChunk (data) {
-		if (this._done)
-			this.handleError(new Error("Attempted to parse chunk after parsing already done"));
-		this._buffer += data; //FIXME: this can be a bottleneck
-		this.parseTags();
-	}
-
-	//Tells the parser that the HTML being parsed is complete
-	Parser.prototype.done = function Parser$done () {
-		if (this._done)
-			return;
-		this._done = true;
-	
-		//Push any unparsed text into a final element in the element list
-		if (this._buffer.length) {
-			var rawData = this._buffer;
-			this._buffer = "";
-			var element = {
-				  raw: rawData
-				, data: (this._parseState == ElementType.Text) ? rawData : rawData.replace(Parser._reTrim, "")
-				, type: this._parseState
-				};
-			if (this._parseState == ElementType.Tag || this._parseState == ElementType.Script || this._parseState == ElementType.Style)
-				element.name = this.parseTagName(element.data);
-			this.parseAttribs(element);
-			this._elements.push(element);
-		}
-	
-		this.writeHandler();
-		this._handler.done();
-	}
-
-	//Resets the parser to a blank state, ready to parse a new HTML document
-	Parser.prototype.reset = function Parser$reset () {
-		this._buffer = "";
-		this._done = false;
-		this._elements = [];
-		this._elementsCurrent = 0;
-		this._current = 0;
-		this._next = 0;
-		this._location = {
-			  row: 0
-			, col: 0
-			, charOffset: 0
-			, inBuffer: 0
-		};
-		this._parseState = ElementType.Text;
-		this._prevTagSep = '';
-		this._tagStack = [];
-		this._handler.reset();
-	}
-	
-	//**Private**//
-	//Properties//
-	Parser.prototype._options = null; //Parser options for how to behave
-	Parser.prototype._handler = null; //Handler for parsed elements
-	Parser.prototype._buffer = null; //Buffer of unparsed data
-	Parser.prototype._done = false; //Flag indicating whether parsing is done
-	Parser.prototype._elements =  null; //Array of parsed elements
-	Parser.prototype._elementsCurrent = 0; //Pointer to last element in _elements that has been processed
-	Parser.prototype._current = 0; //Position in data that has already been parsed
-	Parser.prototype._next = 0; //Position in data of the next tag marker (<>)
-	Parser.prototype._location = null; //Position tracking for elements in a stream
-	Parser.prototype._parseState = ElementType.Text; //Current type of element being parsed
-	Parser.prototype._prevTagSep = ''; //Previous tag marker found
-	//Stack of element types previously encountered; keeps track of when
-	//parsing occurs inside a script/comment/style tag
-	Parser.prototype._tagStack = null;
-
-	//Methods//
-	//Takes an array of elements and parses any found attributes
-	Parser.prototype.parseTagAttribs = function Parser$parseTagAttribs (elements) {
-		var idxEnd = elements.length;
-		var idx = 0;
-	
-		while (idx < idxEnd) {
-			var element = elements[idx++];
-			if (element.type == ElementType.Tag || element.type == ElementType.Script || element.type == ElementType.style)
-				this.parseAttribs(element);
-		}
-	
-		return(elements);
-	}
-
-	//Takes an element and adds an "attribs" property for any element attributes found 
-	Parser.prototype.parseAttribs = function Parser$parseAttribs (element) {
-		//Only parse attributes for tags
-		if (element.type != ElementType.Script && element.type != ElementType.Style && element.type != ElementType.Tag)
-			return;
-	
-		var tagName = element.data.split(Parser._reWhitespace, 1)[0];
-		var attribRaw = element.data.substring(tagName.length);
-		if (attribRaw.length < 1)
-			return;
-	
-		var match;
-		Parser._reAttrib.lastIndex = 0;
-		while (match = Parser._reAttrib.exec(attribRaw)) {
-			if (element.attribs == undefined)
-				element.attribs = {};
-	
-			if (typeof match[1] == "string" && match[1].length) {
-				element.attribs[match[1]] = match[2];
-			} else if (typeof match[3] == "string" && match[3].length) {
-				element.attribs[match[3].toString()] = match[4].toString();
-			} else if (typeof match[5] == "string" && match[5].length) {
-				element.attribs[match[5]] = match[6];
-			} else if (typeof match[7] == "string" && match[7].length) {
-				element.attribs[match[7]] = match[7];
-			}
-		}
-	}
-
-	//Extracts the base tag name from the data value of an element
-	Parser.prototype.parseTagName = function Parser$parseTagName (data) {
-		if (data == null || data == "")
-			return("");
-		var match = Parser._reTagName.exec(data);
-		if (!match)
-			return("");
-		return((match[1] ? "/" : "") + match[2]);
-	}
-
-	//Parses through HTML text and returns an array of found elements
-	//I admit, this function is rather large but splitting up had an noticeable impact on speed
-	Parser.prototype.parseTags = function Parser$parseTags () {
-		var bufferEnd = this._buffer.length - 1;
-		while (Parser._reTags.test(this._buffer)) {
-			this._next = Parser._reTags.lastIndex - 1;
-			var tagSep = this._buffer.charAt(this._next); //The currently found tag marker
-			var rawData = this._buffer.substring(this._current, this._next); //The next chunk of data to parse
-	
-			//A new element to eventually be appended to the element list
-			var element = {
-				  raw: rawData
-				, data: (this._parseState == ElementType.Text) ? rawData : rawData.replace(Parser._reTrim, "")
-				, type: this._parseState
-			};
-	
-			var elementName = this.parseTagName(element.data);
-	
-			//This section inspects the current tag stack and modifies the current
-			//element if we're actually parsing a special area (script/comment/style tag)
-			if (this._tagStack.length) { //We're parsing inside a script/comment/style tag
-				if (this._tagStack[this._tagStack.length - 1] == ElementType.Script) { //We're currently in a script tag
-					if (elementName == "/script") //Actually, we're no longer in a script tag, so pop it off the stack
-						this._tagStack.pop();
-					else { //Not a closing script tag
-						if (element.raw.indexOf("!--") != 0) { //Make sure we're not in a comment
-							//All data from here to script close is now a text element
-							element.type = ElementType.Text;
-							//If the previous element is text, append the current text to it
-							if (this._elements.length && this._elements[this._elements.length - 1].type == ElementType.Text) {
-								var prevElement = this._elements[this._elements.length - 1];
-								prevElement.raw = prevElement.data = prevElement.raw + this._prevTagSep + element.raw;
-								element.raw = element.data = ""; //This causes the current element to not be added to the element list
-							}
-						}
-					}
-				}
-				else if (this._tagStack[this._tagStack.length - 1] == ElementType.Style) { //We're currently in a style tag
-					if (elementName == "/style") //Actually, we're no longer in a style tag, so pop it off the stack
-						this._tagStack.pop();
-					else {
-						if (element.raw.indexOf("!--") != 0) { //Make sure we're not in a comment
-							//All data from here to style close is now a text element
-							element.type = ElementType.Text;
-							//If the previous element is text, append the current text to it
-							if (this._elements.length && this._elements[this._elements.length - 1].type == ElementType.Text) {
-								var prevElement = this._elements[this._elements.length - 1];
-								if (element.raw != "") {
-									prevElement.raw = prevElement.data = prevElement.raw + this._prevTagSep + element.raw;
-									element.raw = element.data = ""; //This causes the current element to not be added to the element list
-								} else { //Element is empty, so just append the last tag marker found
-									prevElement.raw = prevElement.data = prevElement.raw + this._prevTagSep;
-								}
-							} else { //The previous element was not text
-								if (element.raw != "") {
-									element.raw = element.data = element.raw;
-								}
-							}
-						}
-					}
-				}
-				else if (this._tagStack[this._tagStack.length - 1] == ElementType.Comment) { //We're currently in a comment tag
-					var rawLen = element.raw.length;
-					if (element.raw.charAt(rawLen - 2) == "-" && element.raw.charAt(rawLen - 1) == "-" && tagSep == ">") {
-						//Actually, we're no longer in a style tag, so pop it off the stack
-						this._tagStack.pop();
-						//If the previous element is a comment, append the current text to it
-						if (this._elements.length && this._elements[this._elements.length - 1].type == ElementType.Comment) {
-							var prevElement = this._elements[this._elements.length - 1];
-							prevElement.raw = prevElement.data = (prevElement.raw + element.raw).replace(Parser._reTrimComment, "");
-							element.raw = element.data = ""; //This causes the current element to not be added to the element list
-							element.type = ElementType.Text;
-						}
-						else //Previous element not a comment
-							element.type = ElementType.Comment; //Change the current element's type to a comment
-					}
-					else { //Still in a comment tag
-						element.type = ElementType.Comment;
-						//If the previous element is a comment, append the current text to it
-						if (this._elements.length && this._elements[this._elements.length - 1].type == ElementType.Comment) {
-							var prevElement = this._elements[this._elements.length - 1];
-							prevElement.raw = prevElement.data = prevElement.raw + element.raw + tagSep;
-							element.raw = element.data = ""; //This causes the current element to not be added to the element list
-							element.type = ElementType.Text;
-						}
-						else
-							element.raw = element.data = element.raw + tagSep;
-					}
-				}
-			}
-	
-			//Processing of non-special tags
-			if (element.type == ElementType.Tag) {
-				element.name = elementName;
-				
-				if (element.raw.indexOf("!--") == 0) { //This tag is really comment
-					element.type = ElementType.Comment;
-					delete element["name"];
-					var rawLen = element.raw.length;
-					//Check if the comment is terminated in the current element
-					if (element.raw.charAt(rawLen - 1) == "-" && element.raw.charAt(rawLen - 2) == "-" && tagSep == ">")
-						element.raw = element.data = element.raw.replace(Parser._reTrimComment, "");
-					else { //It's not so push the comment onto the tag stack
-						element.raw += tagSep;
-						this._tagStack.push(ElementType.Comment);
-					}
-				}
-				else if (element.raw.indexOf("!") == 0 || element.raw.indexOf("?") == 0) {
-					element.type = ElementType.Directive;
-					//TODO: what about CDATA?
-				}
-				else if (element.name == "script") {
-					element.type = ElementType.Script;
-					//Special tag, push onto the tag stack if not terminated
-					if (element.data.charAt(element.data.length - 1) != "/")
-						this._tagStack.push(ElementType.Script);
-				}
-				else if (element.name == "/script")
-					element.type = ElementType.Script;
-				else if (element.name == "style") {
-					element.type = ElementType.Style;
-					//Special tag, push onto the tag stack if not terminated
-					if (element.data.charAt(element.data.length - 1) != "/")
-						this._tagStack.push(ElementType.Style);
-				}
-				else if (element.name == "/style")
-					element.type = ElementType.Style;
-				if (element.name && element.name.charAt(0) == "/")
-					element.data = element.name;
-			}
-	
-			//Add all tags and non-empty text elements to the element list
-			if (element.raw != "" || element.type != ElementType.Text) {
-				if (this._options.includeLocation && !element.location) {
-					element.location = this.getLocation(element.type == ElementType.Tag);
-				}
-				this.parseAttribs(element);
-				this._elements.push(element);
-				//If tag self-terminates, add an explicit, separate closing tag
-				if (
-					element.type != ElementType.Text
-					&&
-					element.type != ElementType.Comment
-					&&
-					element.type != ElementType.Directive
-					&&
-					element.data.charAt(element.data.length - 1) == "/"
-					)
-					this._elements.push({
-						  raw: "/" + element.name
-						, data: "/" + element.name
-						, name: "/" + element.name
-						, type: element.type
-					});
-			}
-			this._parseState = (tagSep == "<") ? ElementType.Tag : ElementType.Text;
-			this._current = this._next + 1;
-			this._prevTagSep = tagSep;
-		}
-
-		if (this._options.includeLocation) {
-			this.getLocation();
-			this._location.row += this._location.inBuffer;
-			this._location.inBuffer = 0;
-			this._location.charOffset = 0;
-		}
-		this._buffer = (this._current <= bufferEnd) ? this._buffer.substring(this._current) : "";
-		this._current = 0;
-	
-		this.writeHandler();
-	}
-
-	Parser.prototype.getLocation = function Parser$getLocation (startTag) {
-		var c,
-			l = this._location,
-			end = this._current - (startTag ? 1 : 0),
-			chunk = startTag && l.charOffset == 0 && this._current == 0;
-		
-		for (; l.charOffset < end; l.charOffset++) {
-			c = this._buffer.charAt(l.charOffset);
-			if (c == '\n') {
-				l.inBuffer++;
-				l.col = 0;
-			} else if (c != '\r') {
-				l.col++;
-			}
-		}
-		return {
-			  line: l.row + l.inBuffer + 1
-			, col: l.col + (chunk ? 0: 1)
-		};
-	}
-
-	//Checks the handler to make it is an object with the right "interface"
-	Parser.prototype.validateHandler = function Parser$validateHandler (handler) {
-		if ((typeof handler) != "object")
-			throw new Error("Handler is not an object");
-		if ((typeof handler.reset) != "function")
-			throw new Error("Handler method 'reset' is invalid");
-		if ((typeof handler.done) != "function")
-			throw new Error("Handler method 'done' is invalid");
-		if ((typeof handler.writeTag) != "function")
-			throw new Error("Handler method 'writeTag' is invalid");
-		if ((typeof handler.writeText) != "function")
-			throw new Error("Handler method 'writeText' is invalid");
-		if ((typeof handler.writeComment) != "function")
-			throw new Error("Handler method 'writeComment' is invalid");
-		if ((typeof handler.writeDirective) != "function")
-			throw new Error("Handler method 'writeDirective' is invalid");
-	}
-
-	//Writes parsed elements out to the handler
-	Parser.prototype.writeHandler = function Parser$writeHandler (forceFlush) {
-		forceFlush = !!forceFlush;
-		if (this._tagStack.length && !forceFlush)
-			return;
-		while (this._elements.length) {
-			var element = this._elements.shift();
-			switch (element.type) {
-				case ElementType.Comment:
-					this._handler.writeComment(element);
-					break;
-				case ElementType.Directive:
-					this._handler.writeDirective(element);
-					break;
-				case ElementType.Text:
-					this._handler.writeText(element);
-					break;
-				default:
-					this._handler.writeTag(element);
-					break;
-			}
-		}
-	}
-
-	Parser.prototype.handleError = function Parser$handleError (error) {
-		if ((typeof this._handler.error) == "function")
-			this._handler.error(error);
-		else
-			throw error;
-	}
-
-//TODO: make this a trully streamable handler
-function RssHandler (callback) {
-	RssHandler.super_.call(this, callback, { ignoreWhitespace: true, verbose: false, enforceEmptyTags: false });
-}
-inherits(RssHandler, DefaultHandler);
-
-	RssHandler.prototype.done = function RssHandler$done () {
-		var feed = { };
-		var feedRoot;
-
-		var found = DomUtils.getElementsByTagName(function (value) { return(value == "rss" || value == "feed"); }, this.dom, false);
-		if (found.length) {
-			feedRoot = found[0];
-		}
-		if (feedRoot) {
-			if (feedRoot.name == "rss") {
-				feed.type = "rss";
-				feedRoot = feedRoot.children[0]; //<channel/>
-				feed.id = "";
-				try {
-					feed.title = DomUtils.getElementsByTagName("title", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.link = DomUtils.getElementsByTagName("link", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.description = DomUtils.getElementsByTagName("description", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.updated = new Date(DomUtils.getElementsByTagName("lastBuildDate", feedRoot.children, false)[0].children[0].data);
-				} catch (ex) { }
-				try {
-					feed.author = DomUtils.getElementsByTagName("managingEditor", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				feed.items = [];
-				DomUtils.getElementsByTagName("item", feedRoot.children).forEach(function (item, index, list) {
-					var entry = {};
-					try {
-						entry.id = DomUtils.getElementsByTagName("guid", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.title = DomUtils.getElementsByTagName("title", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.link = DomUtils.getElementsByTagName("link", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.description = DomUtils.getElementsByTagName("description", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.pubDate = new Date(DomUtils.getElementsByTagName("pubDate", item.children, false)[0].children[0].data);
-					} catch (ex) { }
-					feed.items.push(entry);
-				});
-			} else {
-				feed.type = "atom";
-				try {
-					feed.id = DomUtils.getElementsByTagName("id", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.title = DomUtils.getElementsByTagName("title", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.link = DomUtils.getElementsByTagName("link", feedRoot.children, false)[0].attribs.href;
-				} catch (ex) { }
-				try {
-					feed.description = DomUtils.getElementsByTagName("subtitle", feedRoot.children, false)[0].children[0].data;
-				} catch (ex) { }
-				try {
-					feed.updated = new Date(DomUtils.getElementsByTagName("updated", feedRoot.children, false)[0].children[0].data);
-				} catch (ex) { }
-				try {
-					feed.author = DomUtils.getElementsByTagName("email", feedRoot.children, true)[0].children[0].data;
-				} catch (ex) { }
-				feed.items = [];
-				DomUtils.getElementsByTagName("entry", feedRoot.children).forEach(function (item, index, list) {
-					var entry = {};
-					try {
-						entry.id = DomUtils.getElementsByTagName("id", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.title = DomUtils.getElementsByTagName("title", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.link = DomUtils.getElementsByTagName("link", item.children, false)[0].attribs.href;
-					} catch (ex) { }
-					try {
-						entry.description = DomUtils.getElementsByTagName("summary", item.children, false)[0].children[0].data;
-					} catch (ex) { }
-					try {
-						entry.pubDate = new Date(DomUtils.getElementsByTagName("updated", item.children, false)[0].children[0].data);
-					} catch (ex) { }
-					feed.items.push(entry);
-				});
-			}
-
-			this.dom = feed;
-		}
-		RssHandler.super_.prototype.done.call(this);
-	}
-
-///////////////////////////////////////////////////
-
-function DefaultHandler (callback, options) {
-	this.reset();
-	this._options = options ? options : { };
-	if (this._options.ignoreWhitespace == undefined)
-		this._options.ignoreWhitespace = false; //Keep whitespace-only text nodes
-	if (this._options.verbose == undefined)
-		this._options.verbose = true; //Keep data property for tags and raw property for all
-	if (this._options.enforceEmptyTags == undefined)
-		this._options.enforceEmptyTags = true; //Don't allow children for HTML tags defined as empty in spec
-	if ((typeof callback) == "function")
-		this._callback = callback;
-}
-
-	//**"Static"**//
-	//HTML Tags that shouldn't contain child nodes
-	DefaultHandler._emptyTags = {
-		  area: 1
-		, base: 1
-		, basefont: 1
-		, br: 1
-		, col: 1
-		, frame: 1
-		, hr: 1
-		, img: 1
-		, input: 1
-		, isindex: 1
-		, link: 1
-		, meta: 1
-		, param: 1
-		, embed: 1
-	}
-	//Regex to detect whitespace only text nodes
-	DefaultHandler.reWhitespace = /^\s*$/;
-
-	//**Public**//
-	//Properties//
-	DefaultHandler.prototype.dom = null; //The hierarchical object containing the parsed HTML
-	//Methods//
-	//Resets the handler back to starting state
-	DefaultHandler.prototype.reset = function DefaultHandler$reset() {
-		this.dom = [];
-		this._done = false;
-		this._tagStack = [];
-		this._tagStack.last = function DefaultHandler$_tagStack$last () {
-			return(this.length ? this[this.length - 1] : null);
-		}
-	}
-	//Signals the handler that parsing is done
-	DefaultHandler.prototype.done = function DefaultHandler$done () {
-		this._done = true;
-		this.handleCallback(null);
-	}
-	DefaultHandler.prototype.writeTag = function DefaultHandler$writeTag (element) {
-		this.handleElement(element);
-	} 
-	DefaultHandler.prototype.writeText = function DefaultHandler$writeText (element) {
-		if (this._options.ignoreWhitespace)
-			if (DefaultHandler.reWhitespace.test(element.data))
-				return;
-		this.handleElement(element);
-	} 
-	DefaultHandler.prototype.writeComment = function DefaultHandler$writeComment (element) {
-		this.handleElement(element);
-	} 
-	DefaultHandler.prototype.writeDirective = function DefaultHandler$writeDirective (element) {
-		this.handleElement(element);
-	}
-	DefaultHandler.prototype.error = function DefaultHandler$error (error) {
-		this.handleCallback(error);
-	}
-
-	//**Private**//
-	//Properties//
-	DefaultHandler.prototype._options = null; //Handler options for how to behave
-	DefaultHandler.prototype._callback = null; //Callback to respond to when parsing done
-	DefaultHandler.prototype._done = false; //Flag indicating whether handler has been notified of parsing completed
-	DefaultHandler.prototype._tagStack = null; //List of parents to the currently element being processed
-	//Methods//
-	DefaultHandler.prototype.handleCallback = function DefaultHandler$handleCallback (error) {
-			if ((typeof this._callback) != "function")
-				if (error)
-					throw error;
-				else
-					return;
-			this._callback(error, this.dom);
-	}
-	
-	DefaultHandler.prototype.isEmptyTag = function(element) {
-		var name = element.name.toLowerCase();
-		if (name.charAt(0) == '/') {
-			name = name.substring(1);
-		}
-		return this._options.enforceEmptyTags && !!DefaultHandler._emptyTags[name];
-	};
-	
-	DefaultHandler.prototype.handleElement = function DefaultHandler$handleElement (element) {
-		if (this._done)
-			this.handleCallback(new Error("Writing to the handler after done() called is not allowed without a reset()"));
-		if (!this._options.verbose) {
-//			element.raw = null; //FIXME: Not clean
-			//FIXME: Serious performance problem using delete
-			delete element.raw;
-			if (element.type == "tag" || element.type == "script" || element.type == "style")
-				delete element.data;
-		}
-		if (!this._tagStack.last()) { //There are no parent elements
-			//If the element can be a container, add it to the tag stack and the top level list
-			if (element.type != ElementType.Text && element.type != ElementType.Comment && element.type != ElementType.Directive) {
-				if (element.name.charAt(0) != "/") { //Ignore closing tags that obviously don't have an opening tag
-					this.dom.push(element);
-					if (!this.isEmptyTag(element)) { //Don't add tags to the tag stack that can't have children
-						this._tagStack.push(element);
-					}
-				}
-			}
-			else //Otherwise just add to the top level list
-				this.dom.push(element);
-		}
-		else { //There are parent elements
-			//If the element can be a container, add it as a child of the element
-			//on top of the tag stack and then add it to the tag stack
-			if (element.type != ElementType.Text && element.type != ElementType.Comment && element.type != ElementType.Directive) {
-				if (element.name.charAt(0) == "/") {
-					//This is a closing tag, scan the tagStack to find the matching opening tag
-					//and pop the stack up to the opening tag's parent
-					var baseName = element.name.substring(1);
-					if (!this.isEmptyTag(element)) {
-						var pos = this._tagStack.length - 1;
-						while (pos > -1 && this._tagStack[pos--].name != baseName) { }
-						if (pos > -1 || this._tagStack[0].name == baseName)
-							while (pos < this._tagStack.length - 1)
-								this._tagStack.pop();
-					}
-				}
-				else { //This is not a closing tag
-					if (!this._tagStack.last().children)
-						this._tagStack.last().children = [];
-					this._tagStack.last().children.push(element);
-					if (!this.isEmptyTag(element)) //Don't add tags to the tag stack that can't have children
-						this._tagStack.push(element);
-				}
-			}
-			else { //This is not a container element
-				if (!this._tagStack.last().children)
-					this._tagStack.last().children = [];
-				this._tagStack.last().children.push(element);
-			}
-		}
-	}
-
-	var DomUtils = {
-		  testElement: function DomUtils$testElement (options, element) {
-			if (!element) {
-				return false;
-			}
-	
-			for (var key in options) {
-				if (key == "tag_name") {
-					if (element.type != "tag" && element.type != "script" && element.type != "style") {
-						return false;
-					}
-					if (!options["tag_name"](element.name)) {
-						return false;
-					}
-				} else if (key == "tag_type") {
-					if (!options["tag_type"](element.type)) {
-						return false;
-					}
-				} else if (key == "tag_contains") {
-					if (element.type != "text" && element.type != "comment" && element.type != "directive") {
-						return false;
-					}
-					if (!options["tag_contains"](element.data)) {
-						return false;
-					}
-				} else {
-					if (!element.attribs || !options[key](element.attribs[key])) {
-						return false;
-					}
-				}
-			}
-		
-			return true;
-		}
-	
-		, getElements: function DomUtils$getElements (options, currentElement, recurse, limit) {
-			recurse = (recurse === undefined || recurse === null) || !!recurse;
-			limit = isNaN(parseInt(limit)) ? -1 : parseInt(limit);
-
-			if (!currentElement) {
-				return([]);
-			}
-	
-			var found = [];
-			var elementList;
-
-			function getTest (checkVal) {
-				return(function (value) { return(value == checkVal); });
-			}
-			for (var key in options) {
-				if ((typeof options[key]) != "function") {
-					options[key] = getTest(options[key]);
-				}
-			}
-	
-			if (DomUtils.testElement(options, currentElement)) {
-				found.push(currentElement);
-			}
-
-			if (limit >= 0 && found.length >= limit) {
-				return(found);
-			}
-
-			if (recurse && currentElement.children) {
-				elementList = currentElement.children;
-			} else if (currentElement instanceof Array) {
-				elementList = currentElement;
-			} else {
-				return(found);
-			}
-	
-			for (var i = 0; i < elementList.length; i++) {
-				found = found.concat(DomUtils.getElements(options, elementList[i], recurse, limit));
-				if (limit >= 0 && found.length >= limit) {
-					break;
-				}
-			}
-	
-			return(found);
-		}
-		
-		, getElementById: function DomUtils$getElementById (id, currentElement, recurse) {
-			var result = DomUtils.getElements({ id: id }, currentElement, recurse, 1);
-			return(result.length ? result[0] : null);
-		}
-		
-		, getElementsByTagName: function DomUtils$getElementsByTagName (name, currentElement, recurse, limit) {
-			return(DomUtils.getElements({ tag_name: name }, currentElement, recurse, limit));
-		}
-		
-		, getElementsByTagType: function DomUtils$getElementsByTagType (type, currentElement, recurse, limit) {
-			return(DomUtils.getElements({ tag_type: type }, currentElement, recurse, limit));
-		}
-	}
-
-	function inherits (ctor, superCtor) {
-		var tempCtor = function(){};
-		tempCtor.prototype = superCtor.prototype;
-		ctor.super_ = superCtor;
-		ctor.prototype = new tempCtor();
-		ctor.prototype.constructor = ctor;
-	}
-
-exports.Parser = Parser;
-
-exports.DefaultHandler = DefaultHandler;
-
-exports.RssHandler = RssHandler;
-
-exports.ElementType = ElementType;
-
-exports.DomUtils = DomUtils;
-
-})();

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 22
vendor/node-jasmine-dom/node_modules/htmlparser/lib/htmlparser.min.js


+ 0 - 6
vendor/node-jasmine-dom/node_modules/htmlparser/lib/node-htmlparser.js

@@ -1,6 +0,0 @@
-var htmlparser = require("./htmlparser");
-exports.Parser = htmlparser.Parser;
-exports.DefaultHandler = htmlparser.DefaultHandler;
-exports.RssHandler = htmlparser.RssHandler;
-exports.ElementType = htmlparser.ElementType;
-exports.DomUtils = htmlparser.DomUtils;

+ 0 - 6
vendor/node-jasmine-dom/node_modules/htmlparser/lib/node-htmlparser.min.js

@@ -1,6 +0,0 @@
-var htmlparser = require("./htmlparser.min");
-exports.Parser = htmlparser.Parser;
-exports.DefaultHandler = htmlparser.DefaultHandler;
-exports.RssHandler = htmlparser.RssHandler;
-exports.ElementType = htmlparser.ElementType;
-exports.DomUtils = htmlparser.DomUtils;

BIN=BIN
vendor/node-jasmine-dom/node_modules/htmlparser/libxmljs.node


+ 0 - 54
vendor/node-jasmine-dom/node_modules/htmlparser/newparser.js

@@ -1,54 +0,0 @@
-//node --prof --prof_auto profile.js
-//deps/v8/tools/mac-tick-processor v8.log
-var sys = require("sys");
-var fs = require("fs");
-
-var testHtml = "./testdata/api.html"; //Test HTML file to load
-var testIterations = 100; //Number of test loops to run
-
-var html = fs.readFileSync(testHtml).toString();
-
-function getMillisecs () {
-	return((new Date()).getTime());
-}
-
-function timeExecutions (loops, func) {
-	var start = getMillisecs();
-
-	while (loops--)
-		func();
-
-	return(getMillisecs() - start);
-}
-
-sys.puts("HTML Length: " + html.length);
-
-sys.puts("Test 1: " + timeExecutions(testIterations, function () {
-//	function parseText (data) {
-//		//
-//	}
-//	function parseTag (data) {
-//		//
-//	}
-//	function parseAttrib (data) {
-//		//
-//	}
-//	function parseComment (data) {
-//		//
-//	}
-	var data = html.split("");
-	data.meta = {
-		  length: data.length
-		, pos: 0
-	}
-	while (data.meta.length > data.meta.pos && data[data.meta.pos++] !== "");
-//	sys.puts("Found: " + [data.meta.pos, data[data.meta.pos]]);
-}) + "ms");
-
-sys.puts("Test 2: " + timeExecutions(testIterations, function () {
-	var data = html;
-	var dataLen = data.length;
-	var pos = 0;
-	while (dataLen > pos && data.charAt(pos++) !== "");
-//	sys.puts("Found: " + [pos, data.charAt(pos)]);
-}) + "ms");

+ 0 - 0
vendor/node-jasmine-dom/node_modules/htmlparser/node-htmlparser.old.js


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio