Squashed commit of work to make Jasmine a collection of isolated modules. Note now that in our test suite, "jasmine" now always refers to the build jasmine loaded from jasmine.js and "j$" always refers to the code in the src directories.

Also, dev_boot.js is now a copy of boot.js and has additional changes to load jasmine the second time, into the j$ reference.
This commit is contained in:
Davis W. Frank
2013-05-28 14:09:20 -07:00
parent 7516bba2b0
commit aca43bd3a3
52 changed files with 3828 additions and 3323 deletions

View File

@@ -19,7 +19,7 @@ describe("ConsoleReporter", function() {
});
it("reports that the suite has started to the console", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -29,7 +29,7 @@ describe("ConsoleReporter", function() {
});
it("reports a passing spec as a dot", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -39,7 +39,7 @@ describe("ConsoleReporter", function() {
});
it("does not report a disabled spec", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -49,7 +49,7 @@ describe("ConsoleReporter", function() {
});
it("reports a failing spec as an 'F'", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -59,7 +59,7 @@ describe("ConsoleReporter", function() {
});
it("reports a pending spec as a '*'", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -70,7 +70,7 @@ describe("ConsoleReporter", function() {
it("reports a summary when done (singluar spec and time)", function() {
var fakeNow = jasmine.createSpy('fake Date.now'),
reporter = new jasmine.ConsoleReporter({
reporter = new j$.ConsoleReporter({
print: out.print,
now: fakeNow
});
@@ -91,7 +91,7 @@ describe("ConsoleReporter", function() {
it("reports a summary when done (pluralized specs and seconds)", function() {
var fakeNow = jasmine.createSpy('fake Date.now'),
reporter = new jasmine.ConsoleReporter({
reporter = new j$.ConsoleReporter({
print: out.print,
now: fakeNow
});
@@ -125,7 +125,7 @@ describe("ConsoleReporter", function() {
});
it("reports a summary when done that includes stack traces for a failing suite", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print
});
@@ -155,7 +155,7 @@ describe("ConsoleReporter", function() {
it("calls the onComplete callback when the suite is done", function() {
var onComplete = jasmine.createSpy('onComplete'),
reporter = new jasmine.ConsoleReporter({
reporter = new j$.ConsoleReporter({
print: out.print,
onComplete: onComplete
});
@@ -169,7 +169,7 @@ describe("ConsoleReporter", function() {
describe("with color", function() {
it("reports that the suite has started to the console", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print,
showColors: true
});
@@ -180,7 +180,7 @@ describe("ConsoleReporter", function() {
});
it("reports a passing spec as a dot", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print,
showColors: true
});
@@ -191,7 +191,7 @@ describe("ConsoleReporter", function() {
});
it("does not report a disabled spec", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print,
showColors: true
});
@@ -202,7 +202,7 @@ describe("ConsoleReporter", function() {
});
it("reports a failing spec as an 'F'", function() {
var reporter = new jasmine.ConsoleReporter({
var reporter = new j$.ConsoleReporter({
print: out.print,
showColors: true
});

View File

@@ -5,7 +5,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['scheduleFunction']),
global = { setTimeout: setTimeout },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.setTimeout(delayedFn, 0);
@@ -19,7 +19,7 @@ describe("Clock", function() {
delayedFunctionScheduler = {scheduleFunction: scheduleFunction},
global = { setTimeout: setTimeout },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.install();
clock.setTimeout(delayedFn, 0, 'a', 'b');
@@ -35,7 +35,7 @@ describe("Clock", function() {
delayedFunctionScheduler = {scheduleFunction: scheduleFunction},
global = { setTimeout: setTimeout },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler),
clock = new j$.Clock(global, delayedFunctionScheduler),
timeoutId;
clock.install();
@@ -48,7 +48,7 @@ describe("Clock", function() {
var clearTimeout = jasmine.createSpy('clearTimeout'),
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['clearTimeout']),
global = { clearTimeout: clearTimeout },
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.clearTimeout(123);
@@ -60,7 +60,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['removeFunctionWithId']),
global = { setTimeout: clearTimeout },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.install();
clock.clearTimeout(123);
@@ -74,7 +74,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['scheduleFunction']),
global = { setInterval: setInterval },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.setInterval(delayedFn, 0);
@@ -88,7 +88,7 @@ describe("Clock", function() {
delayedFunctionScheduler = {scheduleFunction: scheduleFunction},
global = { setInterval: setInterval },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.install();
clock.setInterval(delayedFn, 0, 'a', 'b');
@@ -104,7 +104,7 @@ describe("Clock", function() {
delayedFunctionScheduler = {scheduleFunction: scheduleFunction},
global = { setInterval: setInterval },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler),
clock = new j$.Clock(global, delayedFunctionScheduler),
intervalId;
clock.install();
@@ -117,7 +117,7 @@ describe("Clock", function() {
var clearInterval = jasmine.createSpy('clearInterval'),
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['clearInterval']),
global = { clearInterval: clearInterval },
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.clearInterval(123);
@@ -129,7 +129,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['removeFunctionWithId']),
global = { setInterval: clearInterval },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.install();
clock.clearInterval(123);
@@ -139,7 +139,7 @@ describe("Clock", function() {
});
it("gives you a friendly reminder if the Clock is not installed and you tick", function() {
var clock = new jasmine.Clock({}, jasmine.createSpyObj('delayedFunctionScheduler', ['tick']));
var clock = new j$.Clock({}, jasmine.createSpyObj('delayedFunctionScheduler', ['tick']));
expect(function() {
clock.tick(50);
}).toThrow();
@@ -151,7 +151,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['scheduleFunction', 'tick', 'reset']),
global = { setTimeout: setTimeout, setInterval: setInterval },
delayedFn = jasmine.createSpy('delayedFn'),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
clock.install();
clock.setTimeout(delayedFn, 0);
@@ -188,7 +188,7 @@ describe("Clock", function() {
delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['scheduleFunction']),
fn = jasmine.createSpy('fn'),
global = { setTimeout: setTimeout, setInterval: setInterval },
clock = new jasmine.Clock(global, delayedFunctionScheduler);
clock = new j$.Clock(global, delayedFunctionScheduler);
setTimeout.apply = null;
setInterval.apply = null;
@@ -216,8 +216,8 @@ describe("Clock (acceptance)", function() {
delayedFn2 = jasmine.createSpy('delayedFn2'),
delayedFn3 = jasmine.createSpy('delayedFn3'),
recurring1 = jasmine.createSpy('recurring1'),
delayedFunctionScheduler = new jasmine.DelayedFunctionScheduler(),
clock = new jasmine.Clock({setTimeout: setTimeout}, delayedFunctionScheduler);
delayedFunctionScheduler = new j$.DelayedFunctionScheduler(),
clock = new j$.Clock({setTimeout: setTimeout}, delayedFunctionScheduler);
clock.install();
@@ -262,8 +262,8 @@ describe("Clock (acceptance)", function() {
it("can clear a previously set timeout", function() {
var clearedFn = jasmine.createSpy('clearedFn'),
delayedFunctionScheduler = new jasmine.DelayedFunctionScheduler(),
clock = new jasmine.Clock({setTimeout: function() {}}, delayedFunctionScheduler),
delayedFunctionScheduler = new j$.DelayedFunctionScheduler(),
clock = new j$.Clock({setTimeout: function() {}}, delayedFunctionScheduler),
timeoutId;
clock.install();
@@ -279,8 +279,8 @@ describe("Clock (acceptance)", function() {
it("correctly schedules functions after the Clock has advanced", function() {
var delayedFn1 = jasmine.createSpy('delayedFn1'),
delayedFunctionScheduler = new jasmine.DelayedFunctionScheduler(),
clock = new jasmine.Clock({setTimeout: function(){}}, delayedFunctionScheduler);
delayedFunctionScheduler = new j$.DelayedFunctionScheduler(),
clock = new j$.Clock({setTimeout: function(){}}, delayedFunctionScheduler);
clock.install();
@@ -294,8 +294,8 @@ describe("Clock (acceptance)", function() {
it("calls the global clearTimeout correctly when not installed", function () {
var delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['clearTimeout']),
global = originalJasmine.getGlobal(),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
global = jasmine.getGlobal(),
clock = new j$.Clock(global, delayedFunctionScheduler);
expect(function() {
clock.clearTimeout(123)
@@ -304,8 +304,8 @@ describe("Clock (acceptance)", function() {
it("calls the global clearTimeout correctly when not installed", function () {
var delayedFunctionScheduler = jasmine.createSpyObj('delayedFunctionScheduler', ['clearTimeout']),
global = originalJasmine.getGlobal(),
clock = new jasmine.Clock(global, delayedFunctionScheduler);
global = jasmine.getGlobal(),
clock = new j$.Clock(global, delayedFunctionScheduler);
expect(function() {
clock.clearInterval(123)

View File

@@ -1,6 +1,6 @@
describe("DelayedFunctionScheduler", function() {
it("schedules a function for later execution", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn, 0);
@@ -13,7 +13,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("#tick defaults to 0", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn, 0);
@@ -26,7 +26,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("defaults delay to 0", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn);
@@ -39,7 +39,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("optionally passes params to scheduled functions", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn, 0, ['foo', 'bar']);
@@ -52,7 +52,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("scheduled fns can optionally reoccur", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn, 20, [], true);
@@ -74,7 +74,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("increments scheduled fns ids unless one is passed", function() {
var scheduler = new jasmine.DelayedFunctionScheduler();
var scheduler = new j$.DelayedFunctionScheduler();
expect(scheduler.scheduleFunction(function() {
}, 0)).toBe(1);
@@ -87,7 +87,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("#removeFunctionWithId removes a previously scheduled function with a given id", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn'),
timeoutKey;
@@ -103,7 +103,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("reset removes scheduled functions", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
scheduler.scheduleFunction(fn, 0);
@@ -118,7 +118,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("reset resets the returned ids", function() {
var scheduler = new jasmine.DelayedFunctionScheduler();
var scheduler = new j$.DelayedFunctionScheduler();
expect(scheduler.scheduleFunction(function() { }, 0)).toBe(1);
expect(scheduler.scheduleFunction(function() { }, 0, [], false, 123)).toBe(123);
@@ -128,7 +128,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("reset resets the current tick time", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn');
expect(fn).not.toHaveBeenCalled();
@@ -144,7 +144,7 @@ describe("DelayedFunctionScheduler", function() {
});
it("executes recurring functions interleaved with regular functions in the correct order", function() {
var scheduler = new jasmine.DelayedFunctionScheduler(),
var scheduler = new j$.DelayedFunctionScheduler(),
fn = jasmine.createSpy('fn'),
recurringCallCount = 0,
recurring = jasmine.createSpy('recurring').andCallFake(function() {

View File

@@ -2,7 +2,7 @@
describe("Env", function() {
var env;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
env.updateInterval = 0;
});
@@ -18,7 +18,7 @@ describe("Env", function() {
var fakeReporter;
beforeEach(function() {
fakeReporter = originalJasmine.createSpyObj("fakeReporter", ["jasmineStarted"]);
fakeReporter = jasmine.createSpyObj("fakeReporter", ["jasmineStarted"]);
});
it("should allow reporters to be registered", function() {
@@ -111,14 +111,14 @@ describe("Env", function() {
it("returns true if the exception is a pending spec exception", function() {
env.catchExceptions(false);
expect(env.catchException(new Error(jasmine.Spec.pendingSpecExceptionMessage))).toBe(true);
expect(env.catchException(new Error(j$.Spec.pendingSpecExceptionMessage))).toBe(true);
});
it("returns false if the exception is not a pending spec exception and not catching exceptions", function() {
env.catchExceptions(false);
expect(env.catchException(new Error("external error"))).toBe(false);
expect(env.catchException(new Error(jasmine.Spec.pendingSpecExceptionMessage))).toBe(true);
expect(env.catchException(new Error(j$.Spec.pendingSpecExceptionMessage))).toBe(true);
});
});
@@ -126,7 +126,7 @@ describe("Env", function() {
it("throws the Pending Spec exception", function() {
expect(function() {
env.pending();
}).toThrow(jasmine.Spec.pendingSpecExceptionMessage);
}).toThrow(j$.Spec.pendingSpecExceptionMessage);
});
});
});
@@ -134,7 +134,7 @@ describe("Env", function() {
describe("Env (integration)", function() {
it("Suites execute as expected (no nesting)", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
calls = [];
env.describe("A Suite", function() {
@@ -155,7 +155,7 @@ describe("Env (integration)", function() {
});
it("Nested Suites execute as expected", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
calls = [];
env.describe("Outer suite", function() {
@@ -183,7 +183,7 @@ describe("Env (integration)", function() {
});
it("Multiple top-level Suites execute as expected", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
calls = [];
env.describe("Outer suite", function() {
@@ -220,7 +220,7 @@ describe("Env (integration)", function() {
var globalSetTimeout = jasmine.createSpy('globalSetTimeout'),
delayedFunctionForGlobalClock = jasmine.createSpy('delayedFunctionForGlobalClock'),
delayedFunctionForMockClock = jasmine.createSpy('delayedFunctionForMockClock'),
env = new jasmine.Env({global: { setTimeout: globalSetTimeout }});
env = new j$.Env({global: { setTimeout: globalSetTimeout }});
env.describe("tests", function() {
env.it("test with mock clock", function() {
@@ -242,8 +242,9 @@ describe("Env (integration)", function() {
expect(globalSetTimeout).toHaveBeenCalledWith(delayedFunctionForGlobalClock, 100);
});
// TODO: something is wrong with this spec
it("should report as expected", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
reporter = jasmine.createSpyObj('fakeReproter', [
"jasmineStarted",
"jasmineDone",
@@ -280,7 +281,7 @@ describe("Env (integration)", function() {
});
it("should be possible to get full name from a spec", function() {
var env = new jasmine.Env({global: { setTimeout: setTimeout }}),
var env = new j$.Env({global: { setTimeout: setTimeout }}),
topLevelSpec, nestedSpec, doublyNestedSpec;
env.describe("my tests", function() {

View File

@@ -7,7 +7,7 @@ describe("ExceptionFormatter", function() {
message: 'you got your foo in my bar',
name: 'A Classic Mistake'
},
exceptionFormatter = new jasmine.ExceptionFormatter(),
exceptionFormatter = new j$.ExceptionFormatter(),
message = exceptionFormatter.message(sampleFirefoxException);
expect(message).toEqual('A Classic Mistake: you got your foo in my bar in foo.js (line 1978)');
@@ -20,7 +20,7 @@ describe("ExceptionFormatter", function() {
message: 'you got your foo in my bar',
name: 'A Classic Mistake'
},
exceptionFormatter = new jasmine.ExceptionFormatter(),
exceptionFormatter = new j$.ExceptionFormatter(),
message = exceptionFormatter.message(sampleWebkitException);
expect(message).toEqual('A Classic Mistake: you got your foo in my bar in foo.js (line 1978)');
@@ -31,7 +31,7 @@ describe("ExceptionFormatter", function() {
message: 'you got your foo in my bar',
name: 'A Classic Mistake'
},
exceptionFormatter = new jasmine.ExceptionFormatter(),
exceptionFormatter = new j$.ExceptionFormatter(),
message = exceptionFormatter.message(sampleV8);
expect(message).toEqual('A Classic Mistake: you got your foo in my bar');
@@ -42,11 +42,11 @@ describe("ExceptionFormatter", function() {
describe("#stack", function() {
it("formats stack traces from Webkit, Firefox or node.js", function() {
var error = new Error("an error");
expect(new jasmine.ExceptionFormatter().stack(error)).toMatch(/ExceptionFormatterSpec\.js.*\d+/)
expect(new j$.ExceptionFormatter().stack(error)).toMatch(/ExceptionFormatterSpec\.js.*\d+/)
});
it("returns null if no Error provided", function() {
expect(new jasmine.ExceptionFormatter().stack()).toBeNull();
expect(new j$.ExceptionFormatter().stack()).toBeNull();
});
});
});

View File

@@ -2,7 +2,7 @@ describe('Exceptions:', function() {
var env;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
env.updateInterval = 0;
});

View File

@@ -1,16 +1,16 @@
describe("buildExpectationResult", function() {
it("defaults to passed", function() {
var result = jasmine.buildExpectationResult({passed: 'some-value'});
var result = j$.buildExpectationResult({passed: 'some-value'});
expect(result.passed).toBe('some-value');
});
it("message defaults to Passed for passing specs", function() {
var result = jasmine.buildExpectationResult({passed: true, message: 'some-value'});
var result = j$.buildExpectationResult({passed: true, message: 'some-value'});
expect(result.message).toBe('Passed.');
});
it("message returns the message for failing expecations", function() {
var result = jasmine.buildExpectationResult({passed: false, message: 'some-value'});
var result = j$.buildExpectationResult({passed: false, message: 'some-value'});
expect(result.message).toBe('some-value');
});
@@ -18,7 +18,7 @@ describe("buildExpectationResult", function() {
var fakeError = {message: 'foo'},
messageFormatter = jasmine.createSpy("exception message formatter").andReturn(fakeError.message);
var result = jasmine.buildExpectationResult(
var result = j$.buildExpectationResult(
{
passed: false,
error: fakeError,
@@ -33,7 +33,7 @@ describe("buildExpectationResult", function() {
var fakeError = {stack: 'foo'},
stackFormatter = jasmine.createSpy("stack formatter").andReturn(fakeError.stack);
var result = jasmine.buildExpectationResult(
var result = j$.buildExpectationResult(
{
passed: false,
error: fakeError,
@@ -45,17 +45,17 @@ describe("buildExpectationResult", function() {
});
it("matcherName returns passed matcherName", function() {
var result = jasmine.buildExpectationResult({matcherName: 'some-value'});
var result = j$.buildExpectationResult({matcherName: 'some-value'});
expect(result.matcherName).toBe('some-value');
});
it("expected returns passed expected", function() {
var result = jasmine.buildExpectationResult({expected: 'some-value'});
var result = j$.buildExpectationResult({expected: 'some-value'});
expect(result.expected).toBe('some-value');
});
it("actual returns passed actual", function() {
var result = jasmine.buildExpectationResult({actual: 'some-value'});
var result = j$.buildExpectationResult({actual: 'some-value'});
expect(result.actual).toBe('some-value');
});
});

View File

@@ -5,7 +5,7 @@ xdescribe('JsApiReporter (integration specs)', function() {
var suite, nestedSuite, nestedSpec;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
env.updateInterval = 0;
suite = env.describe("top-level suite", function() {
@@ -26,7 +26,7 @@ xdescribe('JsApiReporter (integration specs)', function() {
});
reporter = new jasmine.JsApiReporter(jasmine);
reporter = new j$.JsApiReporter(jasmine);
env.addReporter(reporter);
env.execute();
@@ -83,7 +83,7 @@ xdescribe('JsApiReporter (integration specs)', function() {
describe("JsApiReporter", function() {
it("knows when a full environment is started", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
expect(reporter.started).toBe(false);
expect(reporter.finished).toBe(false);
@@ -95,7 +95,7 @@ describe("JsApiReporter", function() {
});
it("knows when a full environment is done", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
expect(reporter.started).toBe(false);
expect(reporter.finished).toBe(false);
@@ -107,13 +107,13 @@ describe("JsApiReporter", function() {
});
it("defaults to 'loaded' status", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
expect(reporter.status()).toEqual('loaded');
});
it("reports 'started' when Jasmine has started", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
reporter.jasmineStarted();
@@ -121,7 +121,7 @@ describe("JsApiReporter", function() {
});
it("reports 'done' when Jasmine is done", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
reporter.jasmineDone();
@@ -129,7 +129,7 @@ describe("JsApiReporter", function() {
});
it("tracks a suite", function() {
var reporter = new jasmine.JsApiReporter();
var reporter = new j$.JsApiReporter();
reporter.suiteStarted({
id: 123,
@@ -152,7 +152,7 @@ describe("JsApiReporter", function() {
describe("#specResults", function() {
var reporter, specResult1, specResult2;
beforeEach(function() {
reporter = new jasmine.JsApiReporter();
reporter = new j$.JsApiReporter();
specResult1 = {
id: 1,
description: "A spec"

View File

@@ -2,7 +2,7 @@ describe("jasmine.Matchers", function() {
var env, spec;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
env.updateInterval = 0;
var suite = env.describe("suite", function() {
@@ -391,7 +391,7 @@ describe("jasmine.Matchers", function() {
var matcher;
beforeEach(function () {
matcher = {
jasmineMatches: originalJasmine.createSpy("jasmineMatches")
jasmineMatches: jasmine.createSpy("jasmineMatches")
};
});
@@ -699,7 +699,7 @@ describe("jasmine.Matchers", function() {
TestClass = {
normalFunction: function() {
},
spyFunction: originalJasmine.createSpy("My spy")
spyFunction: jasmine.createSpy("My spy")
};
});
@@ -912,7 +912,7 @@ describe("jasmine.Matchers", function() {
describe("with an empty object", function () {
var containing;
beforeEach(function () {
containing = new jasmine.Matchers.ObjectContaining({});
containing = new j$.Matchers.ObjectContaining({});
});
it("matches everything", function () {
expect(containing.jasmineMatches("foo", [], [])).toBe(true);
@@ -928,7 +928,7 @@ describe("jasmine.Matchers", function() {
beforeEach(function () {
mismatchKeys = [];
mismatchValues = [];
containing = new jasmine.Matchers.ObjectContaining({foo: "fooVal", bar: "barVal"});
containing = new j$.Matchers.ObjectContaining({foo: "fooVal", bar: "barVal"});
});
it("doesn't match an empty object", function () {
@@ -979,7 +979,7 @@ describe("jasmine.Matchers", function() {
describe("in real life", function () {
var method;
beforeEach(function () {
method = originalJasmine.createSpy("method");
method = jasmine.createSpy("method");
method({a:"b", c:"d"});
});
it("works correctly for positive matches", function () {

View File

@@ -1,34 +1,34 @@
describe("jasmine.pp", function () {
describe("j$.pp", function () {
it("should wrap strings in single quotes", function() {
expect(jasmine.pp("some string")).toEqual("'some string'");
expect(jasmine.pp("som' string")).toEqual("'som' string'");
expect(j$.pp("some string")).toEqual("'some string'");
expect(j$.pp("som' string")).toEqual("'som' string'");
});
it("should stringify primitives properly", function() {
expect(jasmine.pp(true)).toEqual("true");
expect(jasmine.pp(false)).toEqual("false");
expect(jasmine.pp(null)).toEqual("null");
expect(jasmine.pp(jasmine.undefined)).toEqual("undefined");
expect(jasmine.pp(3)).toEqual("3");
expect(jasmine.pp(-3.14)).toEqual("-3.14");
expect(j$.pp(true)).toEqual("true");
expect(j$.pp(false)).toEqual("false");
expect(j$.pp(null)).toEqual("null");
expect(j$.pp(jasmine.undefined)).toEqual("undefined");
expect(j$.pp(3)).toEqual("3");
expect(j$.pp(-3.14)).toEqual("-3.14");
});
it("should stringify arrays properly", function() {
expect(jasmine.pp([1, 2])).toEqual("[ 1, 2 ]");
expect(jasmine.pp([1, 'foo', {}, jasmine.undefined, null])).toEqual("[ 1, 'foo', { }, undefined, null ]");
expect(j$.pp([1, 2])).toEqual("[ 1, 2 ]");
expect(j$.pp([1, 'foo', {}, jasmine.undefined, null])).toEqual("[ 1, 'foo', { }, undefined, null ]");
});
it("should indicate circular array references", function() {
var array1 = [1, 2];
var array2 = [array1];
array1.push(array2);
expect(jasmine.pp(array1)).toEqual("[ 1, 2, [ <circular reference: Array> ] ]");
expect(j$.pp(array1)).toEqual("[ 1, 2, [ <circular reference: Array> ] ]");
});
it("should stringify objects properly", function() {
expect(jasmine.pp({foo: 'bar'})).toEqual("{ foo : 'bar' }");
expect(jasmine.pp({foo:'bar', baz:3, nullValue: null, undefinedValue: jasmine.undefined})).toEqual("{ foo : 'bar', baz : 3, nullValue : null, undefinedValue : undefined }");
expect(jasmine.pp({foo: function () {
expect(j$.pp({foo: 'bar'})).toEqual("{ foo : 'bar' }");
expect(j$.pp({foo:'bar', baz:3, nullValue: null, undefinedValue: jasmine.undefined})).toEqual("{ foo : 'bar', baz : 3, nullValue : null, undefinedValue : undefined }");
expect(j$.pp({foo: function () {
}, bar: [1, 2, 3]})).toEqual("{ foo : Function, bar : [ 1, 2, 3 ] }");
});
@@ -37,39 +37,39 @@ describe("jasmine.pp", function () {
SomeClass.prototype.foo = "inherited foo";
var instance = new SomeClass();
instance.bar = "my own bar";
expect(jasmine.pp(instance)).toEqual("{ bar : 'my own bar' }");
expect(j$.pp(instance)).toEqual("{ bar : 'my own bar' }");
});
it("should not recurse objects and arrays more deeply than jasmine.MAX_PRETTY_PRINT_DEPTH", function() {
var originalMaxDepth = jasmine.MAX_PRETTY_PRINT_DEPTH;
it("should not recurse objects and arrays more deeply than j$.MAX_PRETTY_PRINT_DEPTH", function() {
var originalMaxDepth = j$.MAX_PRETTY_PRINT_DEPTH;
var nestedObject = { level1: { level2: { level3: { level4: "leaf" } } } };
var nestedArray = [1, [2, [3, [4, "leaf"]]]];
try {
jasmine.MAX_PRETTY_PRINT_DEPTH = 2;
expect(jasmine.pp(nestedObject)).toEqual("{ level1 : { level2 : Object } }");
expect(jasmine.pp(nestedArray)).toEqual("[ 1, [ 2, Array ] ]");
j$.MAX_PRETTY_PRINT_DEPTH = 2;
expect(j$.pp(nestedObject)).toEqual("{ level1 : { level2 : Object } }");
expect(j$.pp(nestedArray)).toEqual("[ 1, [ 2, Array ] ]");
jasmine.MAX_PRETTY_PRINT_DEPTH = 3;
expect(jasmine.pp(nestedObject)).toEqual("{ level1 : { level2 : { level3 : Object } } }");
expect(jasmine.pp(nestedArray)).toEqual("[ 1, [ 2, [ 3, Array ] ] ]");
j$.MAX_PRETTY_PRINT_DEPTH = 3;
expect(j$.pp(nestedObject)).toEqual("{ level1 : { level2 : { level3 : Object } } }");
expect(j$.pp(nestedArray)).toEqual("[ 1, [ 2, [ 3, Array ] ] ]");
jasmine.MAX_PRETTY_PRINT_DEPTH = 4;
expect(jasmine.pp(nestedObject)).toEqual("{ level1 : { level2 : { level3 : { level4 : 'leaf' } } } }");
expect(jasmine.pp(nestedArray)).toEqual("[ 1, [ 2, [ 3, [ 4, 'leaf' ] ] ] ]");
j$.MAX_PRETTY_PRINT_DEPTH = 4;
expect(j$.pp(nestedObject)).toEqual("{ level1 : { level2 : { level3 : { level4 : 'leaf' } } } }");
expect(j$.pp(nestedArray)).toEqual("[ 1, [ 2, [ 3, [ 4, 'leaf' ] ] ] ]");
} finally {
jasmine.MAX_PRETTY_PRINT_DEPTH = originalMaxDepth;
j$.MAX_PRETTY_PRINT_DEPTH = originalMaxDepth;
}
});
it("should stringify RegExp objects properly", function() {
expect(jasmine.pp(/x|y|z/)).toEqual("/x|y|z/");
expect(j$.pp(/x|y|z/)).toEqual("/x|y|z/");
});
it("should indicate circular object references", function() {
var sampleValue = {foo: 'hello'};
sampleValue.nested = sampleValue;
expect(jasmine.pp(sampleValue)).toEqual("{ foo : 'hello', nested : <circular reference: Object> }");
expect(j$.pp(sampleValue)).toEqual("{ foo : 'hello', nested : <circular reference: Object> }");
});
it("should indicate getters on objects as such", function() {
@@ -81,25 +81,25 @@ describe("jasmine.pp", function () {
});
}
if (sampleValue.__defineGetter__) {
expect(jasmine.pp(sampleValue)).toEqual("{ id : 1, calculatedValue : <getter> }");
expect(j$.pp(sampleValue)).toEqual("{ id : 1, calculatedValue : <getter> }");
}
else {
expect(jasmine.pp(sampleValue)).toEqual("{ id : 1 }");
expect(j$.pp(sampleValue)).toEqual("{ id : 1 }");
}
});
it('should not do HTML escaping of strings', function() {
expect(jasmine.pp('some <b>html string</b> &', false)).toEqual('\'some <b>html string</b> &\'');
expect(j$.pp('some <b>html string</b> &', false)).toEqual('\'some <b>html string</b> &\'');
});
it("should abbreviate the global (usually window) object", function() {
expect(jasmine.pp(jasmine.getGlobal())).toEqual("<global>");
expect(j$.pp(jasmine.getGlobal())).toEqual("<global>");
});
it("should stringify Date objects properly", function() {
var now = new Date();
expect(jasmine.pp(now)).toEqual("Date(" + now.toString() + ")");
expect(j$.pp(now)).toEqual("Date(" + now.toString() + ")");
});
it("should stringify spy objects properly", function() {
@@ -108,9 +108,9 @@ describe("jasmine.pp", function () {
}
};
spyOn(TestObject, 'someFunction');
expect(jasmine.pp(TestObject.someFunction)).toEqual("spy on someFunction");
expect(j$.pp(TestObject.someFunction)).toEqual("spy on someFunction");
expect(jasmine.pp(jasmine.createSpy("something"))).toEqual("spy on something");
expect(j$.pp(jasmine.createSpy("something"))).toEqual("spy on something");
});
it("should stringify objects that implement jasmineToString", function () {
@@ -118,7 +118,7 @@ describe("jasmine.pp", function () {
jasmineToString: function () { return "strung"; }
};
expect(jasmine.pp(obj)).toEqual("strung");
expect(j$.pp(obj)).toEqual("strung");
});
});

View File

@@ -4,7 +4,7 @@ describe("QueueRunner", function() {
var calls = [],
fn1 = jasmine.createSpy('fn1'),
fn2 = jasmine.createSpy('fn2'),
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn1, fn2]
});
fn1.andCallFake(function() {
@@ -23,10 +23,10 @@ describe("QueueRunner", function() {
//TODO: it would be nice if spy arity could match the fake, so we could do something like:
//createSpy('asyncfn').andCallFake(function(done) {});
var onComplete = originalJasmine.createSpy('onComplete'),
beforeCallback = originalJasmine.createSpy('beforeCallback'),
fnCallback = originalJasmine.createSpy('fnCallback'),
afterCallback = originalJasmine.createSpy('afterCallback'),
var onComplete = jasmine.createSpy('onComplete'),
beforeCallback = jasmine.createSpy('beforeCallback'),
fnCallback = jasmine.createSpy('fnCallback'),
afterCallback = jasmine.createSpy('afterCallback'),
fn1 = function(done) {
beforeCallback();
setTimeout(function() {
@@ -45,7 +45,7 @@ describe("QueueRunner", function() {
done()
}, 100);
},
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn1, fn2, fn3],
onComplete: onComplete
});
@@ -80,7 +80,7 @@ describe("QueueRunner", function() {
throw new Error('fake error');
},
exceptionCallback = jasmine.createSpy('exception callback'),
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn],
onException: exceptionCallback
});
@@ -94,7 +94,7 @@ describe("QueueRunner", function() {
var fn = function() {
throw new Error('fake error');
},
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn],
catchException: function(e) { return false; }
});
@@ -105,7 +105,7 @@ describe("QueueRunner", function() {
it("calls a provided complete callback when done", function() {
var fn = jasmine.createSpy('fn'),
completeCallback = jasmine.createSpy('completeCallback'),
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn],
onComplete: completeCallback
});
@@ -119,7 +119,7 @@ describe("QueueRunner", function() {
var fn = jasmine.createSpy('fn'),
completeCallback = jasmine.createSpy('completeCallback'),
encourageGC = jasmine.createSpy('encourageGC'),
queueRunner = new jasmine.QueueRunner({
queueRunner = new j$.QueueRunner({
fns: [fn],
encourageGC: encourageGC,
onComplete: completeCallback

View File

@@ -1,7 +1,7 @@
describe("ReportDispatcher", function() {
it("builds an interface of requested methods", function() {
var dispatcher = new jasmine.ReportDispatcher(['foo', 'bar', 'baz']);
var dispatcher = new j$.ReportDispatcher(['foo', 'bar', 'baz']);
expect(dispatcher.foo).toBeDefined();
expect(dispatcher.bar).toBeDefined();
@@ -9,7 +9,7 @@ describe("ReportDispatcher", function() {
});
it("dispatches requested methods to added reporters", function() {
var dispatcher = new jasmine.ReportDispatcher(['foo', 'bar']),
var dispatcher = new j$.ReportDispatcher(['foo', 'bar']),
reporter = jasmine.createSpyObj('reporter', ['foo', 'bar']),
anotherReporter = jasmine.createSpyObj('reporter', ['foo', 'bar']);
@@ -28,7 +28,7 @@ describe("ReportDispatcher", function() {
});
it("does not dispatch to a reporter if the reporter doesn't accept the method", function() {
var dispatcher = new jasmine.ReportDispatcher(['foo']),
var dispatcher = new j$.ReportDispatcher(['foo']),
reporter = jasmine.createSpyObj('reporter', ['baz']);
dispatcher.addReporter(reporter);

View File

@@ -4,7 +4,7 @@ describe("jasmine spec running", function () {
var fakeTimer;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
env.updateInterval = 0;
});
@@ -221,7 +221,7 @@ describe("jasmine spec running", function () {
});
it("shouldn't run disabled suites", function() {
var specInADisabledSuite = originalJasmine.createSpy("specInADisabledSuite"),
var specInADisabledSuite = jasmine.createSpy("specInADisabledSuite"),
suite = env.describe('A Suite', function() {
env.xdescribe('with a disabled suite', function(){
env.it('spec inside a disabled suite', specInADisabledSuite);
@@ -248,7 +248,7 @@ describe("jasmine spec running", function () {
// TODO: is this useful? It doesn't catch syntax errors
xit("should recover gracefully when there are errors in describe functions", function() {
var specs = [];
var superSimpleReporter = new jasmine.Reporter();
var superSimpleReporter = new j$.Reporter();
superSimpleReporter.reportSpecResults = function(result) {
specs.push("Spec: " + result.fullName);
};

View File

@@ -1,28 +1,28 @@
describe("Spec", function() {
it("#isPendingSpecException returns true for a pending spec exception", function() {
var e = new Error(jasmine.Spec.pendingSpecExceptionMessage);
var e = new Error(j$.Spec.pendingSpecExceptionMessage);
expect(jasmine.Spec.isPendingSpecException(e)).toBe(true);
expect(j$.Spec.isPendingSpecException(e)).toBe(true);
});
it("#isPendingSpecException returns true for a pending spec exception (even when FF bug is present)", function() {
var fakeError = {
toString: function() { return "Error: " + jasmine.Spec.pendingSpecExceptionMessage; }
toString: function() { return "Error: " + j$.Spec.pendingSpecExceptionMessage; }
};
expect(jasmine.Spec.isPendingSpecException(fakeError)).toBe(true);
expect(j$.Spec.isPendingSpecException(fakeError)).toBe(true);
});
it("#isPendingSpecException returns true for a pending spec exception", function() {
var e = new Error("foo");
expect(jasmine.Spec.isPendingSpecException(e)).toBe(false);
expect(j$.Spec.isPendingSpecException(e)).toBe(false);
});
it("delegates execution to a QueueRunner", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
spec = new jasmine.Spec({
spec = new j$.Spec({
description: 'my test',
id: 'some-id',
fn: function() {},
@@ -37,8 +37,8 @@ describe("Spec", function() {
it("should call the start callback on execution", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
beforesWereCalled = false,
startCallback = originalJasmine.createSpy('startCallback'),
spec = new jasmine.Spec({
startCallback = jasmine.createSpy('startCallback'),
spec = new j$.Spec({
id: 123,
description: 'foo bar',
fn: function() {},
@@ -54,10 +54,10 @@ describe("Spec", function() {
it("should call the start callback on execution but before any befores are called", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
beforesWereCalled = false,
startCallback = originalJasmine.createSpy('start-callback').andCallFake(function() {
startCallback = jasmine.createSpy('start-callback').andCallFake(function() {
expect(beforesWereCalled).toBe(false);
}),
spec = new jasmine.Spec({
spec = new j$.Spec({
fn: function() {},
beforeFns: function() {
return [function() {
@@ -75,13 +75,13 @@ describe("Spec", function() {
it("provides all before fns and after fns to be run", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
before = originalJasmine.createSpy('before'),
after = originalJasmine.createSpy('after'),
fn = originalJasmine.createSpy('test body').andCallFake(function() {
before = jasmine.createSpy('before'),
after = jasmine.createSpy('after'),
fn = jasmine.createSpy('test body').andCallFake(function() {
expect(before).toHaveBeenCalled();
expect(after).not.toHaveBeenCalled();
}),
spec = new jasmine.Spec({
spec = new j$.Spec({
fn: fn,
beforeFns: function() {
return [before]
@@ -101,9 +101,9 @@ describe("Spec", function() {
it("is marked pending if created without a function body", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
startCallback = originalJasmine.createSpy('startCallback'),
resultCallback = originalJasmine.createSpy('resultCallback'),
spec = new jasmine.Spec({
startCallback = jasmine.createSpy('startCallback'),
resultCallback = jasmine.createSpy('resultCallback'),
spec = new j$.Spec({
onStart: startCallback,
fn: null,
resultCallback: resultCallback,
@@ -116,10 +116,10 @@ describe("Spec", function() {
it("can be disabled, but still calls callbacks", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
startCallback = originalJasmine.createSpy('startCallback'),
specBody = originalJasmine.createSpy('specBody'),
resultCallback = originalJasmine.createSpy('resultCallback'),
spec = new jasmine.Spec({
startCallback = jasmine.createSpy('startCallback'),
specBody = jasmine.createSpy('specBody'),
resultCallback = jasmine.createSpy('resultCallback'),
spec = new j$.Spec({
onStart:startCallback,
fn: specBody,
resultCallback: resultCallback,
@@ -141,9 +141,9 @@ describe("Spec", function() {
it("can be marked pending, but still calls callbacks when executed", function() {
var fakeQueueRunner = jasmine.createSpy('fakeQueueRunner'),
startCallback = originalJasmine.createSpy('startCallback'),
resultCallback = originalJasmine.createSpy('resultCallback'),
spec = new jasmine.Spec({
startCallback = jasmine.createSpy('startCallback'),
resultCallback = jasmine.createSpy('resultCallback'),
spec = new j$.Spec({
onStart: startCallback,
resultCallback: resultCallback,
description: "with a spec",
@@ -172,8 +172,8 @@ describe("Spec", function() {
});
it("should call the done callback on execution complete", function() {
var done = originalJasmine.createSpy('done callback'),
spec = new jasmine.Spec({
var done = jasmine.createSpy('done callback'),
spec = new j$.Spec({
fn: function() {},
catchExceptions: function() { return false; },
resultCallback: function() {},
@@ -186,13 +186,13 @@ describe("Spec", function() {
});
it("#status returns pending by default", function() {
var spec = new jasmine.Spec({fn: jasmine.createSpy("spec body")});
var spec = new j$.Spec({fn: jasmine.createSpy("spec body")});
expect(spec.status()).toEqual('pending');
});
it("#status returns pending if no expectations were encountered", function() {
var specBody = jasmine.createSpy("spec body"),
spec = new jasmine.Spec({fn: specBody});
spec = new j$.Spec({fn: specBody});
spec.execute();
@@ -200,13 +200,13 @@ describe("Spec", function() {
});
it("#status returns passed if all expectations in the spec have passed", function() {
var spec = new jasmine.Spec({fn: jasmine.createSpy("spec body")});
var spec = new j$.Spec({fn: jasmine.createSpy("spec body")});
spec.addExpectationResult(true);
expect(spec.status()).toBe('passed');
});
it("#status returns failed if any expectations in the spec have failed", function() {
var spec = new jasmine.Spec({ fn: jasmine.createSpy("spec body") });
var spec = new j$.Spec({ fn: jasmine.createSpy("spec body") });
spec.addExpectationResult(true);
spec.addExpectationResult(false);
expect(spec.status()).toBe('failed');
@@ -214,7 +214,7 @@ describe("Spec", function() {
it("can return its full name", function() {
var spec;
spec = new jasmine.Spec({
spec = new j$.Spec({
getSpecName: function(passedVal) {
// expect(passedVal).toBe(spec); TODO: a exec time, spec is undefined WTF?
return 'expected val';
@@ -227,9 +227,9 @@ describe("Spec", function() {
describe("when a spec is marked pending during execution", function() {
it("should mark the spec as pending", function() {
var fakeQueueRunner = function(opts) {
opts.onException(new Error(jasmine.Spec.pendingSpecExceptionMessage));
opts.onException(new Error(j$.Spec.pendingSpecExceptionMessage));
},
spec = new jasmine.Spec({
spec = new j$.Spec({
description: 'my test',
id: 'some-id',
fn: function() { },

View File

@@ -1,7 +1,7 @@
describe('Spies', function () {
var env;
beforeEach(function() {
env = new jasmine.Env();
env = new j$.Env();
});
it('should replace the specified function with a spy object', function() {
@@ -133,7 +133,7 @@ describe('Spies', function () {
it('is torn down when env.removeAllSpies is called', function() {
var originalFunctionWasCalled = false,
env = new jasmine.Env(),
env = new j$.Env(),
TestClass = {
someFunction: function() {
originalFunctionWasCalled = true;
@@ -151,15 +151,15 @@ describe('Spies', function () {
});
it('calls removeAllSpies during spec finish', function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
originalFoo = function() {},
testObj = {
foo: originalFoo
},
firstSpec = originalJasmine.createSpy('firstSpec').andCallFake(function() {
firstSpec = jasmine.createSpy('firstSpec').andCallFake(function() {
env.spyOn(testObj, 'foo');
}),
secondSpec = originalJasmine.createSpy('secondSpec').andCallFake(function() {
secondSpec = jasmine.createSpy('secondSpec').andCallFake(function() {
expect(testObj.foo).toBe(originalFoo);
});
env.describe('test suite', function() {
@@ -215,7 +215,7 @@ describe('Spies', function () {
describe("createSpyObj", function() {
it("should create an object with a bunch of spy methods when you call jasmine.createSpyObj()", function() {
var spyObj = jasmine.createSpyObj('BaseName', ['method1', 'method2']);
expect(spyObj).toEqual({ method1: originalJasmine.any(Function), method2: originalJasmine.any(Function)});
expect(spyObj).toEqual({ method1: jasmine.any(Function), method2: jasmine.any(Function)});
expect(spyObj.method1.identity).toEqual('BaseName.method1');
expect(spyObj.method2.identity).toEqual('BaseName.method2');
});

View File

@@ -1,8 +1,8 @@
describe("Suite", function() {
it("keeps its id", function() {
var env = new jasmine.Env(),
suite = new jasmine.Suite({
var env = new j$.Env(),
suite = new j$.Suite({
env: env,
id: 456,
description: "I am a suite"
@@ -12,8 +12,8 @@ describe("Suite", function() {
});
it("returns its full name", function() {
var env = new jasmine.Env(),
suite = new jasmine.Suite({
var env = new j$.Env(),
suite = new j$.Suite({
env: env,
description: "I am a suite"
});
@@ -22,13 +22,13 @@ describe("Suite", function() {
});
it("returns its full name when it has parent suites", function() {
var env = new jasmine.Env(),
parentSuite = new jasmine.Suite({
var env = new j$.Env(),
parentSuite = new j$.Suite({
env: env,
description: "I am a parent suite",
parentSuite: jasmine.createSpy('pretend top level suite')
}),
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "I am a suite",
parentSuite: parentSuite
@@ -38,8 +38,8 @@ describe("Suite", function() {
});
it("adds before functions in order of needed execution", function() {
var env = new jasmine.Env(),
suite = new jasmine.Suite({
var env = new j$.Env(),
suite = new j$.Suite({
env: env,
description: "I am a suite"
}),
@@ -53,8 +53,8 @@ describe("Suite", function() {
});
it("adds after functions in order of needed execution", function() {
var env = new jasmine.Env(),
suite = new jasmine.Suite({
var env = new j$.Env(),
suite = new j$.Suite({
env: env,
description: "I am a suite"
}),
@@ -68,11 +68,11 @@ describe("Suite", function() {
});
it("adds specs", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
fakeQueue = {
add: jasmine.createSpy()
},
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "I am a suite",
queueFactory: function() {
@@ -89,18 +89,18 @@ describe("Suite", function() {
});
it("adds suites", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
fakeQueue = {
add: jasmine.createSpy()
},
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "I am a suite",
queueFactory: function() {
return fakeQueue
}
}),
anotherSuite = new jasmine.Suite({
anotherSuite = new j$.Suite({
env: env,
description: "I am another suite",
queueFactory: function() {
@@ -116,9 +116,9 @@ describe("Suite", function() {
});
it("can be disabled", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
fakeQueueRunner = jasmine.createSpy('fake queue runner'),
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "with a child suite",
queueRunner: fakeQueueRunner
@@ -134,16 +134,16 @@ describe("Suite", function() {
});
it("delegates execution of its specs and suites", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
parentSuiteDone = jasmine.createSpy('parent suite done'),
fakeQueueRunnerForParent = jasmine.createSpy('fake parent queue runner'),
parentSuite = new jasmine.Suite({
parentSuite = new j$.Suite({
env: env,
description: "I am a parent suite",
queueRunner: fakeQueueRunnerForParent
}),
fakeQueueRunner = jasmine.createSpy('fake queue runner'),
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "with a child suite",
queueRunner: fakeQueueRunner
@@ -168,10 +168,10 @@ describe("Suite", function() {
});
it("calls a provided onStart callback when starting", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
suiteStarted = jasmine.createSpy('suiteStarted'),
fakeQueueRunner = function(attrs) { attrs.onComplete(); },
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "with a child suite",
onStart: suiteStarted,
@@ -187,10 +187,10 @@ describe("Suite", function() {
});
it("calls a provided onComplete callback when done", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
suiteCompleted = jasmine.createSpy('parent suite done'),
fakeQueueRunner = function(attrs) { attrs.onComplete(); },
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "with a child suite",
queueRunner: fakeQueueRunner
@@ -205,10 +205,10 @@ describe("Suite", function() {
});
it("calls a provided result callback when done", function() {
var env = new jasmine.Env(),
var env = new j$.Env(),
suiteResultsCallback = jasmine.createSpy('suite result callback'),
fakeQueueRunner = function(attrs) { attrs.onComplete(); },
suite = new jasmine.Suite({
suite = new j$.Suite({
env: env,
description: "with a child suite",
queueRunner: fakeQueueRunner,

View File

@@ -1,28 +1,28 @@
describe("jasmine.util", function() {
describe("j$.util", function() {
describe("isArray_", function() {
it("should return true if the argument is an array", function() {
expect(jasmine.isArray_([])).toBe(true);
expect(jasmine.isArray_(['a'])).toBe(true);
expect(j$.isArray_([])).toBe(true);
expect(j$.isArray_(['a'])).toBe(true);
});
it("should return false if the argument is not an array", function() {
expect(jasmine.isArray_(undefined)).toBe(false);
expect(jasmine.isArray_({})).toBe(false);
expect(jasmine.isArray_(function() {})).toBe(false);
expect(jasmine.isArray_('foo')).toBe(false);
expect(jasmine.isArray_(5)).toBe(false);
expect(jasmine.isArray_(null)).toBe(false);
expect(j$.isArray_(undefined)).toBe(false);
expect(j$.isArray_({})).toBe(false);
expect(j$.isArray_(function() {})).toBe(false);
expect(j$.isArray_('foo')).toBe(false);
expect(j$.isArray_(5)).toBe(false);
expect(j$.isArray_(null)).toBe(false);
});
});
describe("isUndefined", function() {
it("reports if a variable is defined", function() {
var a;
expect(jasmine.util.isUndefined(a)).toBe(true);
expect(jasmine.util.isUndefined(undefined)).toBe(true);
expect(j$.util.isUndefined(a)).toBe(true);
expect(j$.util.isUndefined(undefined)).toBe(true);
var undefined = "diz be undefined yo";
expect(jasmine.util.isUndefined(undefined)).toBe(false);
expect(j$.util.isUndefined(undefined)).toBe(false);
});
});
});

View File

@@ -1,7 +1,6 @@
describe("New HtmlReporter", function() {
// TODO: Figure out why this isn't rendering...
it("builds the initial DOM elements, including the title banner", function() {
jasmine.version = originalJasmine.version;
var env = new jasmine.Env(),
container = document.createElement("div"),
getContainer = function() { return container; },
@@ -30,7 +29,7 @@ describe("New HtmlReporter", function() {
expect(title.innerHTML).toMatch(/Jasmine/);
var version = banner.getElementsByClassName("version")[0];
expect(version.innerHTML).toEqual(originalJasmine.version);
expect(version.innerHTML).toEqual(jasmine.version);
});
describe("when a spec is done", function() {

View File

@@ -17,7 +17,7 @@ src_files:
stylesheets:
boot_dir: 'spec/support'
boot_files:
- 'boot.js'
# - 'boot.js'
- 'dev_boot.js'
helpers:
- 'helpers/**/*.js'

View File

@@ -74,7 +74,7 @@ function noop() {
}
jasmine.executeSpecs = function(specs, done, isVerbose, showColors) {
global.originalJasmine = jasmine;
global.jasmine = jasmine;
for (var i = 0, len = specs.length; i < len; ++i) {
var filename = specs[i];

View File

@@ -2,10 +2,14 @@ var fs = require('fs');
var util = require('util');
var path = require('path');
var jasmineGlobals = require('../lib/jasmine-core/jasmine.js');
for (var k in jasmineGlobals) {
global[k] = jasmineGlobals[k];
}
// boot code for jasmine
var jasmineRequire = require('../lib/jasmine-core/jasmine.js');
var jasmine = jasmineRequire.core(jasmineRequire);
var consoleFns = require('../src/console/console.js');
extend(jasmineRequire, consoleFns);
jasmineRequire.console(jasmineRequire, jasmine);
var env = jasmine.getEnv();
var jasmineInterface = {
@@ -54,51 +58,35 @@ var jasmineInterface = {
jsApiReporter: new jasmine.JsApiReporter(jasmine)
};
for (var k in jasmineInterface) {
global[k] = jasmineInterface[k];
extend(global, jasmineInterface);
function extend(destination, source) {
for (var property in source) destination[property] = source[property];
return destination;
}
require('../src/console/ConsoleReporter.js');
// Jasmine "runner"
function executeSpecs(specs, done, isVerbose, showColors) {
global.jasmine = jasmine;
/*
Pulling in code from jasmine-node.
We can't just depend on jasmine-node because it has its own jasmine that it uses.
*/
global.window = {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInterval: setInterval,
clearInterval: clearInterval
};
delete global.window;
function noop() {
}
jasmine.executeSpecs = function(specs, done, isVerbose, showColors) {
global.originalJasmine = jasmine;
for (var i = 0, len = specs.length; i < len; ++i) {
for (var i = 0; i < specs.length; i++) {
var filename = specs[i];
require(filename.replace(/\.\w+$/, ""));
}
var jasmineEnv = jasmine.getEnv();
var env = jasmine.getEnv();
var consoleReporter = new jasmine.ConsoleReporter({
print: util.print,
onComplete: done,
showColors: showColors
});
jasmineEnv.addReporter(consoleReporter);
jasmineEnv.execute();
};
env.addReporter(consoleReporter);
env.execute();
}
jasmine.getAllSpecFiles = function(dir, matcher) {
var specs = [];
function getFiles(dir, matcher) {
specs = [];
if (fs.statSync(dir).isFile() && dir.match(matcher)) {
specs.push(dir);
@@ -109,71 +97,76 @@ jasmine.getAllSpecFiles = function(dir, matcher) {
if (fs.statSync(filename).isFile() && filename.match(matcher)) {
specs.push(filename);
} else if (fs.statSync(filename).isDirectory()) {
var subfiles = this.getAllSpecFiles(filename, matcher);
var subfiles = getSpecFiles(filename);
subfiles.forEach(function(result) {
specs.push(result);
});
}
}
}
return specs;
};
function now() {
return new Date().getTime();
}
jasmine.asyncSpecWait = function() {
var wait = jasmine.asyncSpecWait;
wait.start = now();
wait.done = false;
(function innerWait() {
waits(10);
runs(function() {
if (wait.start + wait.timeout < now()) {
expect('timeout waiting for spec').toBeNull();
} else if (wait.done) {
wait.done = false;
} else {
innerWait();
}
});
})();
};
jasmine.asyncSpecWait.timeout = 4 * 1000;
jasmine.asyncSpecDone = function() {
jasmine.asyncSpecWait.done = true;
};
for (var key in jasmine) {
exports[key] = jasmine[key];
function getSpecFiles(dir) {
return getFiles(dir, new RegExp("Spec.js$"));
}
/*
End jasmine-node runner
*/
var j$require = (function() {
var exported = {},
j$req;
global.getJasmineRequireObj = getJasmineRequireObj;
j$req = require(__dirname + "/../src/core/requireCore.js");
extend(j$req, require(__dirname + "/../src/console/requireConsole.js"));
var srcFiles = getFiles(__dirname + "/../src/core");
srcFiles.push(__dirname + "/../src/version.js");
srcFiles.push(__dirname + "/../src/console/ConsoleReporter.js");
for (var i=0; i < srcFiles.length; i++) {
require(srcFiles[i]);
}
extend(j$req, exported);
delete global.getJasmineRequireObj;
return j$req;
function getJasmineRequireObj() {
return exported;
}
}());
var j$ = j$require.core(j$require);
j$require.console(j$require, j$);
//var specs = getSpecFiles(__dirname + '/smoke', new RegExp("test.js$"));
var consoleSpecs = getSpecFiles(__dirname + "/console"),
coreSpecs = getSpecFiles(__dirname + "/core"),
specs = [];
specs = specs.concat(consoleSpecs);
specs = specs.concat(coreSpecs);
// options from command line
var isVerbose = false;
var showColors = true;
process.argv.forEach(function(arg) {
switch (arg) {
case '--color': showColors = true; break;
case '--noColor': showColors = false; break;
case '--verbose': isVerbose = true; break;
case '--color':
showColors = true;
break;
case '--noColor':
showColors = false;
break;
case '--verbose':
isVerbose = true;
break;
}
});
// var specs = jasmine.getAllSpecFiles(__dirname + '/smoke', new RegExp("test.js$"));
var specs = jasmine.getAllSpecFiles(__dirname, new RegExp("Spec.js$"));
var domIndependentSpecs = [];
for (var i = 0; i < specs.length; i++) {
if (!specs[i].match('html')) {
domIndependentSpecs.push(specs[i]);
}
}
jasmine.executeSpecs(domIndependentSpecs, function(passed) {
executeSpecs(specs, function(passed) {
if (passed) {
process.exit(0);
} else {

View File

@@ -1,2 +1,115 @@
var originalJasmine = jasmine;
jasmine = null;
// Jasmine boot.js for browser runners - exposes external/global interface, builds the Jasmine environment and executes it.
(function() {
window.jasmine = jasmineRequire.core(jasmineRequire);
jasmineRequire.html(jasmine);
var env = jasmine.getEnv();
var jasmineInterface = {
describe: function(description, specDefinitions) {
return env.describe(description, specDefinitions);
},
xdescribe: function(description, specDefinitions) {
return env.xdescribe(description, specDefinitions);
},
it: function(desc, func) {
return env.it(desc, func);
},
xit: function(desc, func) {
return env.xit(desc, func);
},
beforeEach: function(beforeEachFunction) {
return env.beforeEach(beforeEachFunction);
},
afterEach: function(afterEachFunction) {
return env.afterEach(afterEachFunction);
},
expect: function(actual) {
return env.expect(actual);
},
pending: function() {
return env.pending();
},
addMatchers: function(matchers) {
return env.addMatchers(matchers);
},
spyOn: function(obj, methodName) {
return env.spyOn(obj, methodName);
},
clock: env.clock,
setTimeout: env.clock.setTimeout,
clearTimeout: env.clock.clearTimeout,
setInterval: env.clock.setInterval,
clearInterval: env.clock.clearInterval,
jsApiReporter: new jasmine.JsApiReporter(jasmine)
};
if (typeof window == "undefined" && typeof exports == "object") {
extend(exports, jasmineInterface);
} else {
extend(window, jasmineInterface);
}
var queryString = new jasmine.QueryString({
getWindowLocation: function() { return window.location; }
});
// TODO: move all of catching to raise so we don't break our brains
var catchingExceptions = queryString.getParam("catch");
env.catchExceptions(typeof catchingExceptions === "undefined" ? true : catchingExceptions);
var htmlReporter = new jasmine.HtmlReporter({
env: env,
queryString: queryString,
onRaiseExceptionsClick: function() { queryString.setParam("catch", !env.catchingExceptions()); },
getContainer: function() { return document.body; },
createElement: function() { return document.createElement.apply(document, arguments); },
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
});
env.addReporter(jasmineInterface.jsApiReporter);
env.addReporter(htmlReporter);
var specFilter = new jasmine.HtmlSpecFilter({
filterString: function() { return queryString.getParam("spec"); }
});
env.specFilter = function(spec) {
return specFilter.matches(spec.getFullName());
};
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
htmlReporter.initialize();
// By the time onload is called, jasmineRequire will be redefined to point
// to the Jasmine source files (and not jasmine.js). So re-require
window.j$ = jasmineRequire.core(jasmineRequire);
jasmineRequire.html(j$);
jasmineRequire.console(jasmineRequire, j$);
env.execute();
};
function extend(destination, source) {
for (var property in source) destination[property] = source[property];
return destination;
}
}());