aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/jasmine/jasmine-html.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/jasmine/jasmine-html.js')
-rw-r--r--contexts/data/lib/jasmine/jasmine-html.js329
1 files changed, 0 insertions, 329 deletions
diff --git a/contexts/data/lib/jasmine/jasmine-html.js b/contexts/data/lib/jasmine/jasmine-html.js
deleted file mode 100644
index dcc8913..0000000
--- a/contexts/data/lib/jasmine/jasmine-html.js
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
-Copyright (c) 2008-2013 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.
-*/
-jasmine.HtmlReporter = function(options) {
- var env = options.env || {},
- getContainer = options.getContainer,
- now = options.now || function() { return new Date().getTime();},
- createElement = options.createElement,
- createTextNode = options.createTextNode,
- results = [],
- startTime,
- specsExecuted = 0,
- failureCount = 0,
- pendingSpecCount = 0,
- htmlReporterMain,
- symbols;
-
- this.initialize = function() {
- htmlReporterMain = createDom("div", {className: "html-reporter"},
- createDom("div", {className: "banner"},
- createDom("span", {className: "title"}, "Jasmine"),
- createDom("span", {className: "version"}, jasmine.version)
- ),
- createDom("ul", {className: "symbol-summary"}),
- createDom("div", {className: "alert"}),
- createDom("div", {className: "results"},
- createDom("div", {className: "failures"})
- )
- );
- getContainer().appendChild(htmlReporterMain);
-
- symbols = find(".symbol-summary")[0];
- };
-
- var totalSpecsDefined;
- this.jasmineStarted = function(options) {
- totalSpecsDefined = options.totalSpecsDefined || 0;
- startTime = now();
- };
-
- var summary = createDom("div", {className: "summary"});
-
- var topResults = new jasmine.ResultsNode({}, "", null),
- currentParent = topResults;
-
- this.suiteStarted = function(result) {
- currentParent.addChild(result, "suite");
- currentParent = currentParent.last();
- };
-
- this.suiteDone = function(result) {
- if (currentParent == topResults) {
- return;
- }
-
- currentParent = currentParent.parent;
- };
-
- this.specStarted = function(result) {
- currentParent.addChild(result, "spec");
- };
-
- var failures = [];
- this.specDone = function(result) {
- if (result.status != "disabled") {
- specsExecuted++;
- }
-
- symbols.appendChild(createDom("li", {
- className: result.status,
- id: "spec_" + result.id}
- ));
-
- if (result.status == "failed") {
- failureCount++;
-
- var failure =
- createDom("div", {className: "spec-detail failed"},
- createDom("a", {className: "description", title: result.fullName, href: specHref(result)}, result.fullName),
- createDom("div", {className: "messages"})
- );
- var messages = failure.childNodes[1];
-
- for (var i = 0; i < result.failedExpectations.length; i++) {
- var expectation = result.failedExpectations[i];
- messages.appendChild(createDom("div", {className: "result-message"}, expectation.message));
- messages.appendChild(createDom("div", {className: "stack-trace"}, expectation.stack));
- }
-
- failures.push(failure);
- }
-
- if(result.status == "pending") {
- pendingSpecCount++;
- }
- };
-
- this.jasmineDone = function() {
- var elapsed = now() - startTime;
-
- var banner = find(".banner")[0];
- banner.appendChild(createDom("span", {className: "duration"}, "finished in " + elapsed / 1000 + "s"));
-
- var alert = find(".alert")[0];
-
- alert.appendChild(createDom("span", { className: "exceptions" },
- createDom("label", { className: "label", 'for': "raise-exceptions" }, "raise exceptions"),
- createDom("input", {
- className: "raise",
- id: "raise-exceptions",
- type: "checkbox"
- })
- ));
- var checkbox = find("input")[0];
-
- checkbox.checked = !env.catchingExceptions();
- checkbox.onclick = options.onRaiseExceptionsClick;
-
- if (specsExecuted < totalSpecsDefined) {
- var skippedMessage = "Ran " + specsExecuted + " of " + totalSpecsDefined + " specs - run all";
- alert.appendChild(
- createDom("span", {className: "bar skipped"},
- createDom("a", {href: "?", title: "Run all specs"}, skippedMessage)
- )
- );
- }
- var statusBarMessage = "" + pluralize("spec", specsExecuted) + ", " + pluralize("failure", failureCount);
- if(pendingSpecCount) { statusBarMessage += ", " + pluralize("pending spec", pendingSpecCount); }
-
- var statusBarClassName = "bar " + ((failureCount > 0) ? "failed" : "passed");
- alert.appendChild(createDom("span", {className: statusBarClassName}, statusBarMessage));
-
- var results = find(".results")[0];
- results.appendChild(summary);
-
- summaryList(topResults, summary);
-
- function summaryList(resultsTree, domParent) {
- var specListNode;
- for (var i = 0; i < resultsTree.children.length; i++) {
- var resultNode = resultsTree.children[i];
- if (resultNode.type == "suite") {
- var suiteListNode = createDom("ul", {className: "suite", id: "suite-" + resultNode.result.id},
- createDom("li", {className: "suite-detail"},
- createDom("a", {href: specHref(resultNode.result)}, resultNode.result.description)
- )
- );
-
- summaryList(resultNode, suiteListNode);
- domParent.appendChild(suiteListNode);
- }
- if (resultNode.type == "spec") {
- if (domParent.getAttribute("class") != "specs") {
- specListNode = createDom("ul", {className: "specs"});
- domParent.appendChild(specListNode);
- }
- specListNode.appendChild(
- createDom("li", {
- className: resultNode.result.status,
- id: "spec-" + resultNode.result.id
- },
- createDom("a", {href: specHref(resultNode.result)}, resultNode.result.description)
- )
- );
- }
- }
- }
-
- if (failures.length) {
- alert.appendChild(
- createDom('span', {className: "menu bar spec-list"},
- createDom("span", {}, "Spec List | "),
- createDom('a', {className: "failures-menu", href: "#"}, "Failures")));
- alert.appendChild(
- createDom('span', {className: "menu bar failure-list"},
- createDom('a', {className: "spec-list-menu", href: "#"}, "Spec List"),
- createDom("span", {}, " | Failures ")));
-
- find(".failures-menu")[0].onclick = function() {
- setMenuModeTo('failure-list');
- };
- find(".spec-list-menu")[0].onclick = function() {
- setMenuModeTo('spec-list');
- };
-
- setMenuModeTo('failure-list');
-
- var failureNode = find(".failures")[0];
- for (var i = 0; i < failures.length; i++) {
- failureNode.appendChild(failures[i]);
- }
- }
- };
-
- return this;
-
- function find(selector) {
- if (selector.match(/^\./)) {
- var className = selector.substring(1);
- return getContainer().getElementsByClassName(className);
- } else {
- return getContainer().getElementsByTagName(selector);
- }
- }
-
- function createDom(type, attrs, childrenVarArgs) {
- var el = createElement(type);
-
- for (var i = 2; i < arguments.length; i++) {
- var child = arguments[i];
-
- if (typeof child === 'string') {
- el.appendChild(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;
- }
-
- function pluralize(singular, count) {
- var word = (count == 1 ? singular : singular + "s");
-
- return "" + count + " " + word;
- }
-
- function specHref(result) {
- return "?spec=" + encodeURIComponent(result.fullName);
- }
-
- function setMenuModeTo(mode) {
- htmlReporterMain.setAttribute("class", "html-reporter " + mode);
- }
-};
-jasmine.HtmlSpecFilter = function(options) {
- var filterPattern = new RegExp(options && options.filterString());
-
- this.matches = function(specName) {
- return filterPattern.test(specName);
- };
-};
-jasmine.ResultsNode = function(result, type, parent) {
- this.result = result;
- this.type = type;
- this.parent = parent;
-
- this.children = [];
-
- this.addChild = function(result, type) {
- this.children.push(new jasmine.ResultsNode(result, type, this));
- };
-
- this.last = function() {
- return this.children[this.children.length-1];
- };
-};
-jasmine.QueryString = function(options) {
-
- this.setParam = function(key, value) {
- var paramMap = queryStringToParamMap();
- paramMap[key] = value;
- options.getWindowLocation().search = toQueryString(paramMap);
- };
-
- this.getParam = function(key) {
- return queryStringToParamMap()[key];
- };
-
- return this;
-
- function toQueryString(paramMap) {
- var qStrPairs = [];
- for (var prop in paramMap) {
- qStrPairs.push(encodeURIComponent(prop) + "=" + encodeURIComponent(paramMap[prop]));
- }
- return "?" + qStrPairs.join('&');
- }
-
- function queryStringToParamMap() {
- var paramStr = options.getWindowLocation().search.substring(1),
- params = [],
- paramMap = {};
-
- if (paramStr.length > 0) {
- params = paramStr.split('&');
- for (var i = 0; i < params.length; i++) {
- var p = params[i].split('=');
- var value = decodeURIComponent(p[1]);
- if (value === "true" || value === "false") {
- value = JSON.parse(value);
- }
- paramMap[decodeURIComponent(p[0])] = value;
- }
- }
-
- return paramMap;
- }
-
-}; \ No newline at end of file