evergreen 0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. data/README.rdoc +101 -3
  2. data/bin/evergreen +2 -2
  3. data/lib/evergreen.rb +14 -2
  4. data/lib/evergreen/evergreen.js +23 -0
  5. data/lib/evergreen/rails.rb +8 -0
  6. data/lib/evergreen/runner.rb +21 -14
  7. data/lib/evergreen/spec.rb +12 -33
  8. data/lib/evergreen/version.rb +1 -1
  9. data/lib/evergreen/views/list.erb +1 -1
  10. data/lib/evergreen/views/spec.erb +9 -22
  11. data/lib/jasmine/README.markdown +21 -28
  12. data/lib/jasmine/Rakefile +98 -68
  13. data/lib/jasmine/example/SpecRunner.html +27 -0
  14. data/lib/jasmine/example/spec/PlayerSpec.js +58 -0
  15. data/lib/jasmine/example/spec/SpecHelper.js +9 -0
  16. data/lib/jasmine/example/src/Player.js +22 -0
  17. data/lib/jasmine/example/src/Song.js +7 -0
  18. data/lib/jasmine/lib/jasmine-html.js +182 -0
  19. data/lib/jasmine/lib/{jasmine-0.10.4.js → jasmine.js} +127 -155
  20. data/lib/jasmine/spec/runner.html +4 -3
  21. data/lib/jasmine/spec/suites/BaseSpec.js +27 -0
  22. data/lib/jasmine/spec/suites/CustomMatchersSpec.js +0 -24
  23. data/lib/jasmine/spec/suites/EnvSpec.js +1 -1
  24. data/lib/jasmine/spec/suites/JsApiReporterSpec.js +16 -9
  25. data/lib/jasmine/spec/suites/MatchersSpec.js +49 -42
  26. data/lib/jasmine/spec/suites/MockClockSpec.js +4 -0
  27. data/lib/jasmine/spec/suites/MultiReporterSpec.js +23 -8
  28. data/lib/jasmine/spec/suites/PrettyPrintSpec.js +2 -2
  29. data/lib/jasmine/spec/suites/ReporterSpec.js +10 -14
  30. data/lib/jasmine/spec/suites/RunnerSpec.js +6 -6
  31. data/lib/jasmine/spec/suites/SpecRunningSpec.js +1 -1
  32. data/lib/jasmine/spec/suites/SpecSpec.js +15 -1
  33. data/lib/jasmine/spec/suites/SpySpec.js +3 -3
  34. data/lib/jasmine/spec/suites/TrivialReporterSpec.js +91 -14
  35. data/lib/jasmine/spec/suites/WaitsForBlockSpec.js +5 -6
  36. data/lib/jasmine/src/JsApiReporter.js +4 -6
  37. data/lib/jasmine/src/Matchers.js +19 -19
  38. data/lib/jasmine/src/MultiReporter.js +8 -1
  39. data/lib/jasmine/src/NestedResults.js +5 -5
  40. data/lib/jasmine/src/PrettyPrinter.js +2 -2
  41. data/lib/jasmine/src/Reporter.js +4 -0
  42. data/lib/jasmine/src/Spec.js +12 -8
  43. data/lib/jasmine/src/base.js +40 -44
  44. data/lib/jasmine/{lib → src/html}/TrivialReporter.js +17 -6
  45. data/lib/jasmine/src/html/jasmine.css +166 -0
  46. data/lib/jasmine/src/mock-timeout.js +22 -16
  47. data/lib/jasmine/src/version.json +2 -2
  48. data/lib/tasks/evergreen.rake +7 -0
  49. data/spec/evergreen_spec.rb +18 -0
  50. data/spec/fixtures/public/jquery.js +152 -0
  51. data/spec/fixtures/spec/javascripts/bar_spec.js +0 -0
  52. data/spec/fixtures/spec/javascripts/failing_spec.js +12 -0
  53. data/spec/fixtures/spec/javascripts/foo_spec.js +0 -0
  54. data/spec/fixtures/spec/javascripts/templates_spec.html +1 -0
  55. data/spec/fixtures/spec/javascripts/templates_spec.js +23 -0
  56. data/spec/fixtures/spec/javascripts/testing_spec.js +11 -0
  57. data/spec/fixtures/spec/javascripts/transactions_spec.js +14 -0
  58. data/spec/meta_spec.rb +17 -0
  59. data/spec/runner_spec.rb +35 -0
  60. data/spec/spec_helper.rb +33 -0
  61. data/spec/spec_spec.rb +30 -0
  62. metadata +64 -48
  63. data/lib/jasmine/doc/files.html +0 -460
  64. data/lib/jasmine/doc/index.html +0 -322
  65. data/lib/jasmine/doc/symbols/_global_.html +0 -918
  66. data/lib/jasmine/doc/symbols/jasmine.Block.html +0 -417
  67. data/lib/jasmine/doc/symbols/jasmine.Clock.html +0 -678
  68. data/lib/jasmine/doc/symbols/jasmine.Env.html +0 -1169
  69. data/lib/jasmine/doc/symbols/jasmine.JsApiReporter.html +0 -822
  70. data/lib/jasmine/doc/symbols/jasmine.Matchers.html +0 -1474
  71. data/lib/jasmine/doc/symbols/jasmine.MultiReporter.html +0 -394
  72. data/lib/jasmine/doc/symbols/jasmine.NestedResults.html +0 -710
  73. data/lib/jasmine/doc/symbols/jasmine.Reporter.html +0 -574
  74. data/lib/jasmine/doc/symbols/jasmine.Runner.html +0 -710
  75. data/lib/jasmine/doc/symbols/jasmine.Spec.html +0 -1253
  76. data/lib/jasmine/doc/symbols/jasmine.Spy.html +0 -855
  77. data/lib/jasmine/doc/symbols/jasmine.Suite.html +0 -705
  78. data/lib/jasmine/doc/symbols/jasmine.html +0 -1345
  79. data/lib/jasmine/doc/symbols/jasmine.util.html +0 -535
  80. data/lib/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +0 -124
  81. data/lib/jasmine/doc/symbols/src/src_Block.js.html +0 -29
  82. data/lib/jasmine/doc/symbols/src/src_Env.js.html +0 -248
  83. data/lib/jasmine/doc/symbols/src/src_JsApiReporter.js.html +0 -111
  84. data/lib/jasmine/doc/symbols/src/src_Matchers.js.html +0 -344
  85. data/lib/jasmine/doc/symbols/src/src_MultiReporter.js.html +0 -36
  86. data/lib/jasmine/doc/symbols/src/src_NestedResults.js.html +0 -88
  87. data/lib/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +0 -130
  88. data/lib/jasmine/doc/symbols/src/src_Queue.js.html +0 -102
  89. data/lib/jasmine/doc/symbols/src/src_Reporter.js.html +0 -35
  90. data/lib/jasmine/doc/symbols/src/src_Reporters.js.html +0 -51
  91. data/lib/jasmine/doc/symbols/src/src_Runner.js.html +0 -75
  92. data/lib/jasmine/doc/symbols/src/src_Spec.js.html +0 -214
  93. data/lib/jasmine/doc/symbols/src/src_Suite.js.html +0 -77
  94. data/lib/jasmine/doc/symbols/src/src_WaitsBlock.js.html +0 -21
  95. data/lib/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +0 -45
  96. data/lib/jasmine/doc/symbols/src/src_base.js.html +0 -585
  97. data/lib/jasmine/doc/symbols/src/src_mock-timeout.js.html +0 -185
  98. data/lib/jasmine/doc/symbols/src/src_util.js.html +0 -75
  99. data/lib/jasmine/example/example_runner.html +0 -22
  100. data/lib/jasmine/example/spec/example_suite.js +0 -11
  101. data/lib/jasmine/spec/jasmine_helper.rb +0 -44
  102. data/lib/jasmine/spec/jasmine_spec.rb +0 -31
  103. data/lib/jasmine/spec/saucelabs.yml +0 -24
  104. data/lib/jasmine/src/Reporters.js +0 -43
@@ -210,11 +210,11 @@ describe('RunnerTest', function() {
210
210
  });
211
211
 
212
212
  env.currentRunner().execute();
213
- expect(fakeReporter.reportRunnerResults).wasNotCalled();
213
+ expect(fakeReporter.reportRunnerResults).not.toHaveBeenCalled();
214
214
  fakeTimer.tick(200);
215
215
  //This blows up the JSApiReporter.
216
- //expect(fakeReporter.reportRunnerResults).wasCalledWith(env.currentRunner);
217
- expect(fakeReporter.reportRunnerResults).wasCalled();
216
+ //expect(fakeReporter.reportRunnerResults).toHaveBeenCalledWith(env.currentRunner);
217
+ expect(fakeReporter.reportRunnerResults).toHaveBeenCalled();
218
218
  expect(fakeReporter.reportRunnerResults.mostRecentCall.args[0].results()).toEqual(env.currentRunner().results());
219
219
  });
220
220
  });
@@ -227,12 +227,12 @@ describe('RunnerTest', function() {
227
227
  var runner = new jasmine.Runner(env);
228
228
  runner.arbitraryVariable = 'foo';
229
229
  spyOn(runner.queue, 'start');
230
- expect(fakeReporter.reportRunnerStarting).wasNotCalled();
230
+ expect(fakeReporter.reportRunnerStarting).not.toHaveBeenCalled();
231
231
  runner.execute();
232
- expect(fakeReporter.reportRunnerStarting).wasCalled();
232
+ expect(fakeReporter.reportRunnerStarting).toHaveBeenCalled();
233
233
  var reportedRunner = fakeReporter.reportRunnerStarting.mostRecentCall.args[0];
234
234
  expect(reportedRunner.arbitraryVariable).toEqual('foo');
235
- expect(runner.queue.start).wasCalled();
235
+ expect(runner.queue.start).toHaveBeenCalled();
236
236
  });
237
237
 
238
238
  describe("when suites are nested", function() {
@@ -1118,7 +1118,7 @@ describe("jasmine spec running", function () {
1118
1118
 
1119
1119
  disabledSuite.execute();
1120
1120
 
1121
- expect(spy).wasNotCalled();
1121
+ expect(spy).not.toHaveBeenCalled();
1122
1122
  });
1123
1123
 
1124
1124
  it('#explodes should throw an exception when it is called inside a spec', function() {
@@ -34,7 +34,6 @@ describe('Spec', function () {
34
34
  expect(spec2.id).toEqual(1);
35
35
  expect(spec3.id).toEqual(2);
36
36
  });
37
-
38
37
  });
39
38
 
40
39
  it('getFullName returns suite & spec description', function () {
@@ -106,5 +105,20 @@ describe('Spec', function () {
106
105
  expect(results.passed()).toEqual(true);
107
106
  });
108
107
  });
108
+
109
+ it("includes log messages, which may contain arbitary objects", function() {
110
+ spec.runs(function() {
111
+ this.log("here's some log message", {key: 'value'}, 123);
112
+ });
113
+ spec.execute();
114
+ var items = results.getItems();
115
+ expect(items).toEqual([
116
+ jasmine.any(jasmine.ExpectationResult),
117
+ jasmine.any(jasmine.ExpectationResult),
118
+ jasmine.any(jasmine.MessageResult)
119
+ ]);
120
+ var logResult = items[2];
121
+ expect(logResult.values).toEqual(["here's some log message", {key: 'value'}, 123]);
122
+ });
109
123
  });
110
124
  });
@@ -169,11 +169,11 @@ describe('Spies', function () {
169
169
  var TestClass = { someFunction: function() {} };
170
170
  this.spyOn(TestClass, 'someFunction');
171
171
 
172
- expect(TestClass.someFunction).wasNotCalled();
172
+ expect(TestClass.someFunction).not.toHaveBeenCalled();
173
173
  TestClass.someFunction();
174
- expect(TestClass.someFunction).wasCalled();
174
+ expect(TestClass.someFunction).toHaveBeenCalled();
175
175
  TestClass.someFunction.reset();
176
- expect(TestClass.someFunction).wasNotCalled();
176
+ expect(TestClass.someFunction).not.toHaveBeenCalled();
177
177
  expect(TestClass.someFunction.callCount).toEqual(0);
178
178
  });
179
179
 
@@ -1,9 +1,16 @@
1
1
  describe("TrivialReporter", function() {
2
+ var env;
2
3
  var trivialReporter;
3
4
  var body;
5
+ var fakeDocument;
4
6
 
5
7
  beforeEach(function() {
8
+ env = new jasmine.Env();
9
+ env.updateInterval = 0;
10
+
6
11
  body = document.createElement("body");
12
+ fakeDocument = { body: body, location: { search: "" } };
13
+ trivialReporter = new jasmine.TrivialReporter(fakeDocument);
7
14
  });
8
15
 
9
16
  function fakeSpec(name) {
@@ -29,16 +36,15 @@ describe("TrivialReporter", function() {
29
36
  }
30
37
 
31
38
  it("should run only specs beginning with spec parameter", function() {
32
- var trivialReporter = new jasmine.TrivialReporter({ location: {search: "?spec=run%20this"} });
39
+ fakeDocument.location.search = "?spec=run%20this";
33
40
  expect(trivialReporter.specFilter(fakeSpec("run this"))).toBeTruthy();
34
41
  expect(trivialReporter.specFilter(fakeSpec("not the right spec"))).toBeFalsy();
35
42
  expect(trivialReporter.specFilter(fakeSpec("not run this"))).toBeFalsy();
36
43
  });
37
44
 
38
45
  it("should display empty divs for every suite when the runner is starting", function() {
39
- var trivialReporter = new jasmine.TrivialReporter({ body: body });
40
46
  trivialReporter.reportRunnerStarting({
41
- env: new jasmine.Env(),
47
+ env: env,
42
48
  suites: function() {
43
49
  return [ new jasmine.Suite({}, "suite 1", null, null) ];
44
50
  }
@@ -61,7 +67,6 @@ describe("TrivialReporter", function() {
61
67
 
62
68
  var runner, spec, fakeTimer;
63
69
  beforeEach(function () {
64
- var env = new jasmine.Env();
65
70
  fakeTimer = new jasmine.FakeTimer();
66
71
  env.setTimeout = fakeTimer.setTimeout;
67
72
  env.clearTimeout = fakeTimer.clearTimeout;
@@ -72,7 +77,7 @@ describe("TrivialReporter", function() {
72
77
  runner.add(suite);
73
78
  spec = new jasmine.Spec(env, suite, 'some spec');
74
79
  suite.add(spec);
75
- var trivialReporter = new jasmine.TrivialReporter({ body: body, location: {search: "?"} });
80
+ fakeDocument.location.search = "?";
76
81
  env.addReporter(trivialReporter);
77
82
  });
78
83
 
@@ -103,12 +108,10 @@ describe("TrivialReporter", function() {
103
108
  getItems: function() {
104
109
  }};
105
110
 
111
+ var suite1 = new jasmine.Suite(env, "suite 1", null, null);
112
+
106
113
  spec = {
107
- suite: {
108
- getFullName: function() {
109
- return "suite 1";
110
- }
111
- },
114
+ suite: suite1,
112
115
  getFullName: function() {
113
116
  return "foo";
114
117
  },
@@ -117,11 +120,10 @@ describe("TrivialReporter", function() {
117
120
  }
118
121
  };
119
122
 
120
- trivialReporter = new jasmine.TrivialReporter({ body: body });
121
123
  trivialReporter.reportRunnerStarting({
122
- env: new jasmine.Env(),
124
+ env: env,
123
125
  suites: function() {
124
- return [ new jasmine.Suite({}, "suite 1", null, null) ];
126
+ return [ suite1 ];
125
127
  }
126
128
  });
127
129
  });
@@ -130,7 +132,7 @@ describe("TrivialReporter", function() {
130
132
  expectationResult = new jasmine.ExpectationResult({
131
133
  matcherName: "toBeNull", passed: false, message: "Expected 'a' to be null, but it was not"
132
134
  });
133
-
135
+
134
136
  spyOn(results, 'getItems').andReturn([expectationResult]);
135
137
 
136
138
  trivialReporter.reportSpecResults(spec);
@@ -155,4 +157,79 @@ describe("TrivialReporter", function() {
155
157
  });
156
158
  });
157
159
 
160
+ describe("log messages", function() {
161
+ it("should appear in the report", function() {
162
+ env.describe("suite", function() {
163
+ env.it("will have log messages", function() {
164
+ this.log("this is a", "multipart log message");
165
+ });
166
+ });
167
+
168
+ env.addReporter(trivialReporter);
169
+ env.execute();
170
+
171
+ var divs = body.getElementsByTagName("div");
172
+ var errorDiv = findElement(divs, 'resultMessage log');
173
+ expect(errorDiv.innerHTML).toEqual("this is a multipart log message");
174
+ });
175
+ });
176
+
177
+ describe("duplicate example names", function() {
178
+ it("should report failures correctly", function() {
179
+ var suite1 = env.describe("suite", function() {
180
+ env.it("will have log messages", function() {
181
+ this.log("this one fails!");
182
+ this.expect(true).toBeFalsy();
183
+ });
184
+ });
185
+
186
+ var suite2 = env.describe("suite", function() {
187
+ env.it("will have log messages", function() {
188
+ this.log("this one passes!");
189
+ this.expect(true).toBeTruthy();
190
+ });
191
+ });
192
+
193
+ env.addReporter(trivialReporter);
194
+ env.execute();
195
+
196
+ var divs = body.getElementsByTagName("div");
197
+ var passedSpecDiv = findElement(divs, 'suite passed');
198
+ expect(passedSpecDiv.className).toEqual('suite passed');
199
+ expect(passedSpecDiv.innerHTML).toContain("this one passes!");
200
+ expect(passedSpecDiv.innerHTML).not.toContain("this one fails!");
201
+
202
+ var failedSpecDiv = findElement(divs, 'suite failed');
203
+ expect(failedSpecDiv.className).toEqual('suite failed');
204
+ expect(failedSpecDiv.innerHTML).toContain("this one fails!");
205
+ expect(failedSpecDiv.innerHTML).not.toContain("this one passes!");
206
+ });
207
+ });
208
+
209
+ describe('#reportSpecStarting', function() {
210
+ var spec1;
211
+ beforeEach(function () {
212
+ env.describe("suite 1", function() {
213
+ spec1 = env.it("spec 1", function() {
214
+ });
215
+ });
216
+ });
217
+
218
+ it('DOES NOT log running specs by default', function() {
219
+ spyOn(trivialReporter, 'log');
220
+
221
+ trivialReporter.reportSpecStarting(spec1);
222
+
223
+ expect(trivialReporter.log).not.toHaveBeenCalled();
224
+ });
225
+
226
+ it('logs running specs when log_running_specs is true', function() {
227
+ trivialReporter.logRunningSpecs = true;
228
+ spyOn(trivialReporter, 'log');
229
+
230
+ trivialReporter.reportSpecStarting(spec1);
231
+
232
+ expect(trivialReporter.log).toHaveBeenCalledWith('>> Jasmine Running suite 1 spec 1...');
233
+ });
234
+ });
158
235
  });
@@ -17,7 +17,7 @@ describe('WaitsForBlock', function () {
17
17
  var block = new jasmine.WaitsForBlock(env, timeout, latchFunction, message, spec);
18
18
  expect(onComplete).wasNotCalled();
19
19
  block.execute(onComplete);
20
- expect(onComplete).wasCalled();
20
+ expect(onComplete).toHaveBeenCalled();
21
21
  });
22
22
 
23
23
  it('latchFunction should run in same scope as spec', function () {
@@ -36,8 +36,8 @@ describe('WaitsForBlock', function () {
36
36
  spyOn(spec, 'fail');
37
37
  var block = new jasmine.WaitsForBlock(env, timeout, latchFunction, message, spec);
38
38
  block.execute(onComplete);
39
- expect(spec.fail).wasCalledWith('some error');
40
- expect(onComplete).wasCalled();
39
+ expect(spec.fail).toHaveBeenCalledWith('some error');
40
+ expect(onComplete).toHaveBeenCalled();
41
41
  });
42
42
 
43
43
  describe("if latchFunction returns false", function() {
@@ -69,7 +69,7 @@ describe('WaitsForBlock', function () {
69
69
  expect(onComplete).wasNotCalled();
70
70
  latchFunction.andReturn(true);
71
71
  fakeTimer.tick(100);
72
- expect(onComplete).wasCalled();
72
+ expect(onComplete).toHaveBeenCalled();
73
73
  });
74
74
 
75
75
  it('spec should fail with the passed message if the timeout is reached (and not call onComplete)', function () {
@@ -78,11 +78,10 @@ describe('WaitsForBlock', function () {
78
78
  block.execute(onComplete);
79
79
  expect(spec.fail).wasNotCalled();
80
80
  fakeTimer.tick(timeout);
81
- expect(spec.fail).wasCalled();
81
+ expect(spec.fail).toHaveBeenCalled();
82
82
  var failMessage = spec.fail.mostRecentCall.args[0].message;
83
83
  expect(failMessage).toMatch(message);
84
84
  expect(onComplete).wasNotCalled();
85
-
86
85
  });
87
86
  });
88
87
  });
@@ -80,11 +80,11 @@ jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
80
80
 
81
81
  jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
82
82
  var summaryMessages = [];
83
- var messagesLength = result.messages.length
83
+ var messagesLength = result.messages.length;
84
84
  for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
85
85
  var resultMessage = result.messages[messageIndex];
86
86
  summaryMessages.push({
87
- text: resultMessage.text,
87
+ text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
88
88
  passed: resultMessage.passed ? resultMessage.passed() : true,
89
89
  type: resultMessage.type,
90
90
  message: resultMessage.message,
@@ -92,13 +92,11 @@ jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
92
92
  stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
93
93
  }
94
94
  });
95
- };
95
+ }
96
96
 
97
- var summaryResult = {
97
+ return {
98
98
  result : result.result,
99
99
  messages : summaryMessages
100
100
  };
101
-
102
- return summaryResult;
103
101
  };
104
102
 
@@ -15,25 +15,11 @@ jasmine.Matchers = function(env, actual, spec, opt_isNot) {
15
15
  // todo: @deprecated as of Jasmine 0.11, remove soon [xw]
16
16
  jasmine.Matchers.pp = function(str) {
17
17
  throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
18
- this.report();
19
18
  };
20
19
 
21
- /** @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. */
20
+ // todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
22
21
  jasmine.Matchers.prototype.report = function(result, failing_message, details) {
23
- // todo: report a deprecation warning [xw]
24
-
25
- if (this.isNot) {
26
- throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
27
- }
28
-
29
- this.reportWasCalled_ = true;
30
- var expectationResult = new jasmine.ExpectationResult({
31
- passed: result,
32
- message: failing_message,
33
- details: details
34
- });
35
- this.spec.addMatcherResult(expectationResult);
36
- return result;
22
+ throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
37
23
  };
38
24
 
39
25
  jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
@@ -176,12 +162,18 @@ jasmine.Matchers.prototype.toBeFalsy = function() {
176
162
  return !this.actual;
177
163
  };
178
164
 
165
+
166
+ /** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
167
+ jasmine.Matchers.prototype.wasCalled = function() {
168
+ return this.toHaveBeenCalled();
169
+ };
170
+
179
171
  /**
180
172
  * Matcher that checks to see if the actual, a Jasmine spy, was called.
181
173
  */
182
- jasmine.Matchers.prototype.wasCalled = function() {
174
+ jasmine.Matchers.prototype.toHaveBeenCalled = function() {
183
175
  if (arguments.length > 0) {
184
- throw new Error('wasCalled does not take arguments, use wasCalledWith');
176
+ throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
185
177
  }
186
178
 
187
179
  if (!jasmine.isSpy(this.actual)) {
@@ -197,6 +189,8 @@ jasmine.Matchers.prototype.wasCalled = function() {
197
189
 
198
190
  /**
199
191
  * Matcher that checks to see if the actual, a Jasmine spy, was not called.
192
+ *
193
+ * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
200
194
  */
201
195
  jasmine.Matchers.prototype.wasNotCalled = function() {
202
196
  if (arguments.length > 0) {
@@ -214,13 +208,18 @@ jasmine.Matchers.prototype.wasNotCalled = function() {
214
208
  return !this.actual.wasCalled;
215
209
  };
216
210
 
211
+ /** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
212
+ jasmine.Matchers.prototype.wasCalledWith = function() {
213
+ return this.toHaveBeenCalledWith.apply(this, arguments);
214
+ };
215
+
217
216
  /**
218
217
  * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
219
218
  *
220
219
  * @example
221
220
  *
222
221
  */
223
- jasmine.Matchers.prototype.wasCalledWith = function() {
222
+ jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
224
223
  var expectedArgs = jasmine.util.argsToArray(arguments);
225
224
  if (!jasmine.isSpy(this.actual)) {
226
225
  throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
@@ -236,6 +235,7 @@ jasmine.Matchers.prototype.wasCalledWith = function() {
236
235
  return this.env.contains_(this.actual.argsForCall, expectedArgs);
237
236
  };
238
237
 
238
+ /** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
239
239
  jasmine.Matchers.prototype.wasNotCalledWith = function() {
240
240
  var expectedArgs = jasmine.util.argsToArray(arguments);
241
241
  if (!jasmine.isSpy(this.actual)) {
@@ -11,7 +11,14 @@ jasmine.MultiReporter.prototype.addReporter = function(reporter) {
11
11
  };
12
12
 
13
13
  (function() {
14
- var functionNames = ["reportRunnerStarting", "reportRunnerResults", "reportSuiteResults", "reportSpecResults", "log"];
14
+ var functionNames = [
15
+ "reportRunnerStarting",
16
+ "reportRunnerResults",
17
+ "reportSuiteResults",
18
+ "reportSpecStarting",
19
+ "reportSpecResults",
20
+ "log"
21
+ ];
15
22
  for (var i = 0; i < functionNames.length; i++) {
16
23
  var functionName = functionNames[i];
17
24
  jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
@@ -38,11 +38,11 @@ jasmine.NestedResults.prototype.rollupCounts = function(result) {
38
38
  };
39
39
 
40
40
  /**
41
- * Tracks a result's message.
42
- * @param message
41
+ * Adds a log message.
42
+ * @param values Array of message parts which will be concatenated later.
43
43
  */
44
- jasmine.NestedResults.prototype.log = function(message) {
45
- this.items_.push(new jasmine.MessageResult(message));
44
+ jasmine.NestedResults.prototype.log = function(values) {
45
+ this.items_.push(new jasmine.MessageResult(values));
46
46
  };
47
47
 
48
48
  /**
@@ -57,7 +57,7 @@ jasmine.NestedResults.prototype.getItems = function() {
57
57
  * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
58
58
  */
59
59
  jasmine.NestedResults.prototype.addResult = function(result) {
60
- if (result.type != 'MessageResult') {
60
+ if (result.type != 'log') {
61
61
  if (result.items_) {
62
62
  this.rollupCounts(result);
63
63
  } else {