compaa 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,81 +0,0 @@
1
- describe("Compaa", function() {
2
- var compaa;
3
-
4
- beforeEach(function() {
5
- compaa = Object.create(Compaa);
6
- compaa.compaaHost = 'http://localhost:4567';
7
- loadFixtures('body.html');
8
- });
9
-
10
- describe("generatedImagePath()", function() {
11
- it("changes the directory and filename of the referenceImagePath", function() {
12
- var referencePath, expectedGeneratedImagePath;
13
-
14
- referencePath = 'artifacts/reference_screenshots/firefox_home_move.png'
15
- expectedGeneratedImagePath = 'artifacts/screenshots_generated_this_run/firefox_home_move.png';
16
-
17
- spyOn(compaa, 'referenceImagePath').andReturn(referencePath);
18
-
19
- expect(compaa.generatedImagePath()).toEqual(expectedGeneratedImagePath);
20
- });
21
- });
22
-
23
- describe("differenceGifPath()", function() {
24
- it("changes the directory to screenshots_generated_this_run and adds a png extension", function() {
25
- var referenceImagePath, expectedDifferenceGifPath;
26
-
27
- expectedDifferenceGifPath = 'artifacts/differences_in_screenshots_this_run/firefox_home_move.png_difference.gif';
28
- referenceImagePath = 'artifacts/reference_screenshots/firefox_home_move.png'
29
-
30
- spyOn(compaa, 'referenceImagePath').andReturn(referenceImagePath);
31
-
32
- expect(compaa.differenceGifPath()).toEqual(expectedDifferenceGifPath);
33
- });
34
- });
35
-
36
- describe("show()", function() {
37
- it("hides [difference animation referenceImage generatedImage] elements and shows the given element", function() {
38
- compaa.show('difference');
39
-
40
- expect($('#difference').css('display')).toEqual('inline');
41
-
42
- expect($('#animation').css('display')).toEqual('none');
43
- expect($('#referenceImage').css('display')).toEqual('none');
44
- expect($('#generatedImage').css('display')).toEqual('none');
45
- });
46
-
47
- it("hides [difference animation referenceImage generatedImage] elements and shows the given element", function() {
48
- compaa.show('generatedImage');
49
-
50
- expect($('#difference').css('display')).toEqual('none');
51
- expect($('#animation').css('display')).toEqual('none');
52
- expect($('#referenceImage').css('display')).toEqual('none');
53
- expect($('#generatedImage').css('display')).toEqual('inline');
54
- });
55
- });
56
-
57
- describe("init", function() {
58
- it("sets click handlers for buttons", function() {
59
- compaa.init();
60
- $('#differenceButton').click();
61
- expect($('#difference')).not.toBeHidden();
62
- expect($('#animation')).toBeHidden();
63
- });
64
-
65
- it("sets reference images", function() {
66
- spyOn(compaa, 'setArtifacts').andCallThrough();
67
- compaa.init();
68
- waitsFor(function() {
69
- return compaa.setArtifacts.callCount > 0;
70
- }, 'setArtifacts() didnt get called, is the mock is running??');
71
- runs(function() {
72
- expect(compaa.artifacts).toEqual([
73
- 'artifacts/reference_screenshots/one.png',
74
- 'artifacts/reference_screenshots/two.png',
75
- 'artifacts/reference_screenshots/three.png',
76
- 'artifacts/reference_screenshots/four.png'
77
- ]);
78
- });
79
- });
80
- });
81
- });
@@ -1,658 +0,0 @@
1
- /*!
2
- Jasmine-jQuery: a set of jQuery helpers for Jasmine tests.
3
-
4
- Version 1.5.1
5
-
6
- https://github.com/velesin/jasmine-jquery
7
-
8
- Copyright (c) 2010-2013 Wojciech Zawistowski, Travis Jeffery
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining
11
- a copy of this software and associated documentation files (the
12
- "Software"), to deal in the Software without restriction, including
13
- without limitation the rights to use, copy, modify, merge, publish,
14
- distribute, sublicense, and/or sell copies of the Software, and to
15
- permit persons to whom the Software is furnished to do so, subject to
16
- the following conditions:
17
-
18
- The above copyright notice and this permission notice shall be
19
- included in all copies or substantial portions of the Software.
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
- */
29
- var readFixtures = function() {
30
- return jasmine.getFixtures().proxyCallTo_('read', arguments)
31
- }
32
-
33
- var preloadFixtures = function() {
34
- jasmine.getFixtures().proxyCallTo_('preload', arguments)
35
- }
36
-
37
- var loadFixtures = function() {
38
- jasmine.getFixtures().proxyCallTo_('load', arguments)
39
- }
40
-
41
- var appendLoadFixtures = function() {
42
- jasmine.getFixtures().proxyCallTo_('appendLoad', arguments)
43
- }
44
-
45
- var setFixtures = function(html) {
46
- jasmine.getFixtures().proxyCallTo_('set', arguments)
47
- }
48
-
49
- var appendSetFixtures = function() {
50
- jasmine.getFixtures().proxyCallTo_('appendSet', arguments)
51
- }
52
-
53
- var sandbox = function(attributes) {
54
- return jasmine.getFixtures().sandbox(attributes)
55
- }
56
-
57
- var spyOnEvent = function(selector, eventName) {
58
- return jasmine.JQuery.events.spyOn(selector, eventName)
59
- }
60
-
61
- var preloadStyleFixtures = function() {
62
- jasmine.getStyleFixtures().proxyCallTo_('preload', arguments)
63
- }
64
-
65
- var loadStyleFixtures = function() {
66
- jasmine.getStyleFixtures().proxyCallTo_('load', arguments)
67
- }
68
-
69
- var appendLoadStyleFixtures = function() {
70
- jasmine.getStyleFixtures().proxyCallTo_('appendLoad', arguments)
71
- }
72
-
73
- var setStyleFixtures = function(html) {
74
- jasmine.getStyleFixtures().proxyCallTo_('set', arguments)
75
- }
76
-
77
- var appendSetStyleFixtures = function(html) {
78
- jasmine.getStyleFixtures().proxyCallTo_('appendSet', arguments)
79
- }
80
-
81
- var loadJSONFixtures = function() {
82
- return jasmine.getJSONFixtures().proxyCallTo_('load', arguments)
83
- }
84
-
85
- var getJSONFixture = function(url) {
86
- return jasmine.getJSONFixtures().proxyCallTo_('read', arguments)[url]
87
- }
88
-
89
- jasmine.spiedEventsKey = function (selector, eventName) {
90
- return [$(selector).selector, eventName].toString()
91
- }
92
-
93
- jasmine.getFixtures = function() {
94
- return jasmine.currentFixtures_ = jasmine.currentFixtures_ || new jasmine.Fixtures()
95
- }
96
-
97
- jasmine.getStyleFixtures = function() {
98
- return jasmine.currentStyleFixtures_ = jasmine.currentStyleFixtures_ || new jasmine.StyleFixtures()
99
- }
100
-
101
- jasmine.Fixtures = function() {
102
- this.containerId = 'jasmine-fixtures'
103
- this.fixturesCache_ = {}
104
- this.fixturesPath = 'spec/javascripts/fixtures'
105
- }
106
-
107
- jasmine.Fixtures.prototype.set = function(html) {
108
- this.cleanUp()
109
- this.createContainer_(html)
110
- }
111
-
112
- jasmine.Fixtures.prototype.appendSet= function(html) {
113
- this.addToContainer_(html)
114
- }
115
-
116
- jasmine.Fixtures.prototype.preload = function() {
117
- this.read.apply(this, arguments)
118
- }
119
-
120
- jasmine.Fixtures.prototype.load = function() {
121
- this.cleanUp()
122
- this.createContainer_(this.read.apply(this, arguments))
123
- }
124
-
125
- jasmine.Fixtures.prototype.appendLoad = function() {
126
- this.addToContainer_(this.read.apply(this, arguments))
127
- }
128
-
129
- jasmine.Fixtures.prototype.read = function() {
130
- var htmlChunks = []
131
-
132
- var fixtureUrls = arguments
133
- for(var urlCount = fixtureUrls.length, urlIndex = 0; urlIndex < urlCount; urlIndex++) {
134
- htmlChunks.push(this.getFixtureHtml_(fixtureUrls[urlIndex]))
135
- }
136
-
137
- return htmlChunks.join('')
138
- }
139
-
140
- jasmine.Fixtures.prototype.clearCache = function() {
141
- this.fixturesCache_ = {}
142
- }
143
-
144
- jasmine.Fixtures.prototype.cleanUp = function() {
145
- $('#' + this.containerId).remove()
146
- }
147
-
148
- jasmine.Fixtures.prototype.sandbox = function(attributes) {
149
- var attributesToSet = attributes || {}
150
- return $('<div id="sandbox" />').attr(attributesToSet)
151
- }
152
-
153
- jasmine.Fixtures.prototype.createContainer_ = function(html) {
154
- var container
155
- if(html instanceof $) {
156
- container = $('<div id="' + this.containerId + '" />')
157
- container.html(html)
158
- } else {
159
- container = '<div id="' + this.containerId + '">' + html + '</div>'
160
- }
161
- $(document.body).append(container)
162
- }
163
-
164
- jasmine.Fixtures.prototype.addToContainer_ = function(html){
165
- var container = $(document.body).find('#'+this.containerId).append(html)
166
- if(!container.length){
167
- this.createContainer_(html)
168
- }
169
- }
170
-
171
- jasmine.Fixtures.prototype.getFixtureHtml_ = function(url) {
172
- if (typeof this.fixturesCache_[url] === 'undefined') {
173
- this.loadFixtureIntoCache_(url)
174
- }
175
- return this.fixturesCache_[url]
176
- }
177
-
178
- jasmine.Fixtures.prototype.loadFixtureIntoCache_ = function(relativeUrl) {
179
- var url = this.makeFixtureUrl_(relativeUrl)
180
- var request = $.ajax({
181
- type: "GET",
182
- url: url + "?" + new Date().getTime(),
183
- async: false
184
- })
185
- this.fixturesCache_[relativeUrl] = request.responseText
186
- }
187
-
188
- jasmine.Fixtures.prototype.makeFixtureUrl_ = function(relativeUrl){
189
- return this.fixturesPath.match('/$') ? this.fixturesPath + relativeUrl : this.fixturesPath + '/' + relativeUrl
190
- }
191
-
192
- jasmine.Fixtures.prototype.proxyCallTo_ = function(methodName, passedArguments) {
193
- return this[methodName].apply(this, passedArguments)
194
- }
195
-
196
-
197
- jasmine.StyleFixtures = function() {
198
- this.fixturesCache_ = {}
199
- this.fixturesNodes_ = []
200
- this.fixturesPath = 'spec/javascripts/fixtures'
201
- }
202
-
203
- jasmine.StyleFixtures.prototype.set = function(css) {
204
- this.cleanUp()
205
- this.createStyle_(css)
206
- }
207
-
208
- jasmine.StyleFixtures.prototype.appendSet = function(css) {
209
- this.createStyle_(css)
210
- }
211
-
212
- jasmine.StyleFixtures.prototype.preload = function() {
213
- this.read_.apply(this, arguments)
214
- }
215
-
216
- jasmine.StyleFixtures.prototype.load = function() {
217
- this.cleanUp()
218
- this.createStyle_(this.read_.apply(this, arguments))
219
- }
220
-
221
- jasmine.StyleFixtures.prototype.appendLoad = function() {
222
- this.createStyle_(this.read_.apply(this, arguments))
223
- }
224
-
225
- jasmine.StyleFixtures.prototype.cleanUp = function() {
226
- while(this.fixturesNodes_.length) {
227
- this.fixturesNodes_.pop().remove()
228
- }
229
- }
230
-
231
- jasmine.StyleFixtures.prototype.createStyle_ = function(html) {
232
- var styleText = $('<div></div>').html(html).text(),
233
- style = $('<style>' + styleText + '</style>')
234
-
235
- this.fixturesNodes_.push(style)
236
-
237
- $('head').append(style)
238
- }
239
-
240
- jasmine.StyleFixtures.prototype.clearCache = jasmine.Fixtures.prototype.clearCache
241
-
242
- jasmine.StyleFixtures.prototype.read_ = jasmine.Fixtures.prototype.read
243
-
244
- jasmine.StyleFixtures.prototype.getFixtureHtml_ = jasmine.Fixtures.prototype.getFixtureHtml_
245
-
246
- jasmine.StyleFixtures.prototype.loadFixtureIntoCache_ = jasmine.Fixtures.prototype.loadFixtureIntoCache_
247
-
248
- jasmine.StyleFixtures.prototype.makeFixtureUrl_ = jasmine.Fixtures.prototype.makeFixtureUrl_
249
-
250
- jasmine.StyleFixtures.prototype.proxyCallTo_ = jasmine.Fixtures.prototype.proxyCallTo_
251
-
252
- jasmine.getJSONFixtures = function() {
253
- return jasmine.currentJSONFixtures_ = jasmine.currentJSONFixtures_ || new jasmine.JSONFixtures()
254
- }
255
-
256
- jasmine.JSONFixtures = function() {
257
- this.fixturesCache_ = {}
258
- this.fixturesPath = 'spec/javascripts/fixtures/json'
259
- }
260
-
261
- jasmine.JSONFixtures.prototype.load = function() {
262
- this.read.apply(this, arguments)
263
- return this.fixturesCache_
264
- }
265
-
266
- jasmine.JSONFixtures.prototype.read = function() {
267
- var fixtureUrls = arguments
268
- for(var urlCount = fixtureUrls.length, urlIndex = 0; urlIndex < urlCount; urlIndex++) {
269
- this.getFixtureData_(fixtureUrls[urlIndex])
270
- }
271
- return this.fixturesCache_
272
- }
273
-
274
- jasmine.JSONFixtures.prototype.clearCache = function() {
275
- this.fixturesCache_ = {}
276
- }
277
-
278
- jasmine.JSONFixtures.prototype.getFixtureData_ = function(url) {
279
- this.loadFixtureIntoCache_(url)
280
- return this.fixturesCache_[url]
281
- }
282
-
283
- jasmine.JSONFixtures.prototype.loadFixtureIntoCache_ = function(relativeUrl) {
284
- var self = this
285
- var url = this.fixturesPath.match('/$') ? this.fixturesPath + relativeUrl : this.fixturesPath + '/' + relativeUrl
286
- $.ajax({
287
- async: false, // must be synchronous to guarantee that no tests are run before fixture is loaded
288
- cache: false,
289
- dataType: 'json',
290
- url: url,
291
- success: function(data) {
292
- self.fixturesCache_[relativeUrl] = data
293
- },
294
- error: function(jqXHR, status, errorThrown) {
295
- throw Error('JSONFixture could not be loaded: ' + url + ' (status: ' + status + ', message: ' + errorThrown.message + ')')
296
- }
297
- })
298
- }
299
-
300
- jasmine.JSONFixtures.prototype.proxyCallTo_ = function(methodName, passedArguments) {
301
- return this[methodName].apply(this, passedArguments)
302
- }
303
-
304
- jasmine.JQuery = function() {}
305
-
306
- jasmine.JQuery.browserTagCaseIndependentHtml = function(html) {
307
- return $('<div/>').append(html).html()
308
- }
309
-
310
- jasmine.JQuery.elementToString = function(element) {
311
- var domEl = $(element).get(0)
312
- if (domEl == undefined || domEl.cloneNode)
313
- return $('<div />').append($(element).clone()).html()
314
- else
315
- return element.toString()
316
- }
317
-
318
- jasmine.JQuery.matchersClass = {}
319
-
320
- !function(namespace) {
321
- var data = {
322
- spiedEvents: {},
323
- handlers: []
324
- }
325
-
326
- namespace.events = {
327
- spyOn: function(selector, eventName) {
328
- var handler = function(e) {
329
- data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)] = jasmine.util.argsToArray(arguments)
330
- }
331
- $(selector).on(eventName, handler)
332
- data.handlers.push(handler)
333
- return {
334
- selector: selector,
335
- eventName: eventName,
336
- handler: handler,
337
- reset: function(){
338
- delete data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)]
339
- }
340
- }
341
- },
342
-
343
- args: function(selector, eventName) {
344
- var actualArgs = data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)];
345
-
346
- if (!actualArgs) {
347
- throw "There is no spy for " + eventName + " on " + selector.toString() + ". Make sure to create a spy using spyOnEvent.";
348
- }
349
-
350
- return actualArgs;
351
- },
352
-
353
- wasTriggered: function(selector, eventName) {
354
- return !!(data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)])
355
- },
356
-
357
- wasTriggeredWith: function(selector, eventName, expectedArgs, env) {
358
- var actualArgs = jasmine.JQuery.events.args(selector, eventName).slice(1);
359
- if (Object.prototype.toString.call(expectedArgs) !== '[object Array]') {
360
- actualArgs = actualArgs[0];
361
- }
362
- return env.equals_(expectedArgs, actualArgs);
363
- },
364
-
365
- wasPrevented: function(selector, eventName) {
366
- var args = data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)],
367
- e = args ? args[0] : undefined;
368
- return e && e.isDefaultPrevented()
369
- },
370
-
371
- wasStopped: function(selector, eventName) {
372
- var e;
373
- return (e = data.spiedEvents[jasmine.spiedEventsKey(selector, eventName)]) && e.isPropagationStopped()
374
- },
375
-
376
- cleanUp: function() {
377
- data.spiedEvents = {}
378
- data.handlers = []
379
- }
380
- }
381
- }(jasmine.JQuery)
382
-
383
- !function(){
384
- var jQueryMatchers = {
385
- toHaveClass: function(className) {
386
- return this.actual.hasClass(className)
387
- },
388
-
389
- toHaveCss: function(css){
390
- for (var prop in css){
391
- if (this.actual.css(prop) !== css[prop]) return false
392
- }
393
- return true
394
- },
395
-
396
- toBeVisible: function() {
397
- return this.actual.is(':visible')
398
- },
399
-
400
- toBeHidden: function() {
401
- return this.actual.is(':hidden')
402
- },
403
-
404
- toBeSelected: function() {
405
- return this.actual.is(':selected')
406
- },
407
-
408
- toBeChecked: function() {
409
- return this.actual.is(':checked')
410
- },
411
-
412
- toBeEmpty: function() {
413
- return this.actual.is(':empty')
414
- },
415
-
416
- toExist: function() {
417
- return $(document).find(this.actual).length
418
- },
419
-
420
- toHaveLength: function(length) {
421
- return this.actual.length === length
422
- },
423
-
424
- toHaveAttr: function(attributeName, expectedAttributeValue) {
425
- return hasProperty(this.actual.attr(attributeName), expectedAttributeValue)
426
- },
427
-
428
- toHaveProp: function(propertyName, expectedPropertyValue) {
429
- return hasProperty(this.actual.prop(propertyName), expectedPropertyValue)
430
- },
431
-
432
- toHaveId: function(id) {
433
- return this.actual.attr('id') == id
434
- },
435
-
436
- toHaveHtml: function(html) {
437
- return this.actual.html() == jasmine.JQuery.browserTagCaseIndependentHtml(html)
438
- },
439
-
440
- toContainHtml: function(html){
441
- var actualHtml = this.actual.html()
442
- var expectedHtml = jasmine.JQuery.browserTagCaseIndependentHtml(html)
443
- return (actualHtml.indexOf(expectedHtml) >= 0)
444
- },
445
-
446
- toHaveText: function(text) {
447
- var trimmedText = $.trim(this.actual.text())
448
- if (text && $.isFunction(text.test)) {
449
- return text.test(trimmedText)
450
- } else {
451
- return trimmedText == text
452
- }
453
- },
454
-
455
- toContainText: function(text) {
456
- var trimmedText = $.trim(this.actual.text())
457
- if (text && $.isFunction(text.test)) {
458
- return text.test(trimmedText)
459
- } else {
460
- return trimmedText.indexOf(text) != -1;
461
- }
462
- },
463
-
464
- toHaveValue: function(value) {
465
- return this.actual.val() === value
466
- },
467
-
468
- toHaveData: function(key, expectedValue) {
469
- return hasProperty(this.actual.data(key), expectedValue)
470
- },
471
-
472
- toBe: function(selector) {
473
- return this.actual.is(selector)
474
- },
475
-
476
- toContain: function(selector) {
477
- return this.actual.find(selector).length
478
- },
479
-
480
- toBeDisabled: function(selector){
481
- return this.actual.is(':disabled')
482
- },
483
-
484
- toBeFocused: function(selector) {
485
- return this.actual[0] === this.actual[0].ownerDocument.activeElement
486
- },
487
-
488
- toHandle: function(event) {
489
-
490
- var events = $._data(this.actual.get(0), "events")
491
-
492
- if(!events || !event || typeof event !== "string") {
493
- return false
494
- }
495
-
496
- var namespaces = event.split(".")
497
- var eventType = namespaces.shift()
498
- var sortedNamespaces = namespaces.slice(0).sort()
499
- var namespaceRegExp = new RegExp("(^|\\.)" + sortedNamespaces.join("\\.(?:.*\\.)?") + "(\\.|$)")
500
-
501
- if(events[eventType] && namespaces.length) {
502
- for(var i = 0; i < events[eventType].length; i++) {
503
- var namespace = events[eventType][i].namespace
504
- if(namespaceRegExp.test(namespace)) {
505
- return true
506
- }
507
- }
508
- } else {
509
- return events[eventType] && events[eventType].length > 0
510
- }
511
- },
512
-
513
- // tests the existence of a specific event binding + handler
514
- toHandleWith: function(eventName, eventHandler) {
515
- var stack = $._data(this.actual.get(0), "events")[eventName]
516
- for (var i = 0; i < stack.length; i++) {
517
- if (stack[i].handler == eventHandler) return true
518
- }
519
- return false
520
- }
521
- }
522
-
523
- var hasProperty = function(actualValue, expectedValue) {
524
- if (expectedValue === undefined) return actualValue !== undefined
525
- return actualValue == expectedValue
526
- }
527
-
528
- var bindMatcher = function(methodName) {
529
- var builtInMatcher = jasmine.Matchers.prototype[methodName]
530
-
531
- jasmine.JQuery.matchersClass[methodName] = function() {
532
- if (this.actual
533
- && (this.actual instanceof $
534
- || jasmine.isDomNode(this.actual))) {
535
- this.actual = $(this.actual)
536
- var result = jQueryMatchers[methodName].apply(this, arguments)
537
- var element
538
- if (this.actual.get && (element = this.actual.get()[0]) && !$.isWindow(element) && element.tagName !== "HTML")
539
- this.actual = jasmine.JQuery.elementToString(this.actual)
540
- return result
541
- }
542
-
543
- if (builtInMatcher) {
544
- return builtInMatcher.apply(this, arguments)
545
- }
546
-
547
- return false
548
- }
549
- }
550
-
551
- for(var methodName in jQueryMatchers) {
552
- bindMatcher(methodName)
553
- }
554
- }()
555
-
556
- beforeEach(function() {
557
- this.addMatchers(jasmine.JQuery.matchersClass)
558
- this.addMatchers({
559
- toHaveBeenTriggeredOn: function(selector) {
560
- this.message = function() {
561
- return [
562
- "Expected event " + this.actual + " to have been triggered on " + selector,
563
- "Expected event " + this.actual + " not to have been triggered on " + selector
564
- ]
565
- }
566
- return jasmine.JQuery.events.wasTriggered(selector, this.actual)
567
- }
568
- })
569
- this.addMatchers({
570
- toHaveBeenTriggered: function(){
571
- var eventName = this.actual.eventName,
572
- selector = this.actual.selector
573
- this.message = function() {
574
- return [
575
- "Expected event " + eventName + " to have been triggered on " + selector,
576
- "Expected event " + eventName + " not to have been triggered on " + selector
577
- ]
578
- }
579
- return jasmine.JQuery.events.wasTriggered(selector, eventName)
580
- }
581
- })
582
- this.addMatchers({
583
- toHaveBeenTriggeredOnAndWith: function() {
584
- var selector = arguments[0],
585
- expectedArgs = arguments[1],
586
- wasTriggered = jasmine.JQuery.events.wasTriggered(selector, this.actual);
587
- this.message = function() {
588
- if (wasTriggered) {
589
- var actualArgs = jasmine.JQuery.events.args(selector, this.actual, expectedArgs)[1];
590
- return [
591
- "Expected event " + this.actual + " to have been triggered with " + jasmine.pp(expectedArgs) + " but it was triggered with " + jasmine.pp(actualArgs),
592
- "Expected event " + this.actual + " not to have been triggered with " + jasmine.pp(expectedArgs) + " but it was triggered with " + jasmine.pp(actualArgs)
593
- ]
594
- } else {
595
- return [
596
- "Expected event " + this.actual + " to have been triggered on " + selector,
597
- "Expected event " + this.actual + " not to have been triggered on " + selector
598
- ]
599
- }
600
- }
601
- return wasTriggered && jasmine.JQuery.events.wasTriggeredWith(selector, this.actual, expectedArgs, this.env);
602
- }
603
- })
604
- this.addMatchers({
605
- toHaveBeenPreventedOn: function(selector) {
606
- this.message = function() {
607
- return [
608
- "Expected event " + this.actual + " to have been prevented on " + selector,
609
- "Expected event " + this.actual + " not to have been prevented on " + selector
610
- ]
611
- }
612
- return jasmine.JQuery.events.wasPrevented(selector, this.actual)
613
- }
614
- })
615
- this.addMatchers({
616
- toHaveBeenPrevented: function() {
617
- var eventName = this.actual.eventName,
618
- selector = this.actual.selector
619
- this.message = function() {
620
- return [
621
- "Expected event " + eventName + " to have been prevented on " + selector,
622
- "Expected event " + eventName + " not to have been prevented on " + selector
623
- ]
624
- }
625
- return jasmine.JQuery.events.wasPrevented(selector, eventName)
626
- }
627
- })
628
- this.addMatchers({
629
- toHaveBeenStoppedOn: function(selector) {
630
- this.message = function() {
631
- return [
632
- "Expected event " + this.actual + " to have been stopped on " + selector,
633
- "Expected event " + this.actual + " not to have been stopped on " + selector
634
- ]
635
- }
636
- return jasmine.JQuery.events.wasStopped(selector, this.actual)
637
- }
638
- })
639
- this.addMatchers({
640
- toHaveBeenStopped: function() {
641
- var eventName = this.actual.eventName,
642
- selector = this.actual.selector
643
- this.message = function() {
644
- return [
645
- "Expected event " + eventName + " to have been stopped on " + selector,
646
- "Expected event " + eventName + " not to have been stopped on " + selector
647
- ]
648
- }
649
- return jasmine.JQuery.events.wasStopped(selector, eventName)
650
- }
651
- })
652
- })
653
-
654
- afterEach(function() {
655
- jasmine.getFixtures().cleanUp()
656
- jasmine.getStyleFixtures().cleanUp()
657
- jasmine.JQuery.events.cleanUp()
658
- })