123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /*
- 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.
- */
- function getJasmineRequireObj() {
- if (typeof module !== "undefined" && module.exports) {
- return exports;
- } else {
- window.jasmineRequire = window.jasmineRequire || {};
- return window.jasmineRequire;
- }
- }
- getJasmineRequireObj().console = function(jRequire, j$) {
- j$.ConsoleReporter = jRequire.ConsoleReporter();
- };
- getJasmineRequireObj().ConsoleReporter = function() {
- var noopTimer = {
- start: function(){},
- elapsed: function(){ return 0; }
- };
- function ConsoleReporter(options) {
- var print = options.print,
- showColors = options.showColors || false,
- onComplete = options.onComplete || function() {},
- timer = options.timer || noopTimer,
- specCount,
- failureCount,
- failedSpecs = [],
- pendingCount,
- ansi = {
- green: '\x1B[32m',
- red: '\x1B[31m',
- yellow: '\x1B[33m',
- none: '\x1B[0m'
- };
- this.jasmineStarted = function() {
- specCount = 0;
- failureCount = 0;
- pendingCount = 0;
- print("Started");
- printNewline();
- timer.start();
- };
- this.jasmineDone = function() {
- printNewline();
- for (var i = 0; i < failedSpecs.length; i++) {
- specFailureDetails(failedSpecs[i]);
- }
- printNewline();
- var specCounts = specCount + " " + plural("spec", specCount) + ", " +
- failureCount + " " + plural("failure", failureCount);
- if (pendingCount) {
- specCounts += ", " + pendingCount + " pending " + plural("spec", pendingCount);
- }
- print(specCounts);
- printNewline();
- var seconds = timer.elapsed() / 1000;
- print("Finished in " + seconds + " " + plural("second", seconds));
- printNewline();
- onComplete(failureCount === 0);
- };
- this.specDone = function(result) {
- specCount++;
- if (result.status == "pending") {
- pendingCount++;
- print(colored("yellow", "*"));
- return;
- }
- if (result.status == "passed") {
- print(colored("green", '.'));
- return;
- }
- if (result.status == "failed") {
- failureCount++;
- failedSpecs.push(result);
- print(colored("red", 'F'));
- }
- };
- return this;
- function printNewline() {
- print("\n");
- }
- function colored(color, str) {
- return showColors ? (ansi[color] + str + ansi.none) : str;
- }
- function plural(str, count) {
- return count == 1 ? str : str + "s";
- }
- function repeat(thing, times) {
- var arr = [];
- for (var i = 0; i < times; i++) {
- arr.push(thing);
- }
- return arr;
- }
- function indent(str, spaces) {
- var lines = (str || '').split("\n");
- var newArr = [];
- for (var i = 0; i < lines.length; i++) {
- newArr.push(repeat(" ", spaces).join("") + lines[i]);
- }
- return newArr.join("\n");
- }
- function specFailureDetails(result) {
- printNewline();
- print(result.fullName);
- for (var i = 0; i < result.failedExpectations.length; i++) {
- var failedExpectation = result.failedExpectations[i];
- printNewline();
- print(indent(failedExpectation.stack, 2));
- }
- printNewline();
- }
- }
- return ConsoleReporter;
- };
|