visionmedia-jspec 2.7.0 → 2.7.1

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.
data/History.rdoc CHANGED
@@ -1,4 +1,12 @@
1
1
 
2
+ === 2.7.1 / 2009-07-17
3
+
4
+ * Changed; hash() now accepts null
5
+ * Fixed should_receive issue with validating boolean args or return values
6
+ * Fixed --server-only switch
7
+ * Fixed jQuery dependency error message when jQuery is not available
8
+ when using jspec.jquery.js
9
+
2
10
  === 2.7.0 / 2009-07-14
3
11
 
4
12
  * Added fixture() utility function
data/Manifest CHANGED
@@ -20,7 +20,6 @@ spec/env.js
20
20
  spec/fixtures/test.html
21
21
  spec/fixtures/test.json
22
22
  spec/fixtures/test.xml
23
- spec/jquery-1.3.1.js
24
23
  spec/modules.js
25
24
  spec/spec.dom.html
26
25
  spec/spec.grammar-less.js
data/README.rdoc CHANGED
@@ -624,6 +624,7 @@ Or run via the terminal using Rhino:
624
624
  * Syntax comparison with other frameworks http://gist.github.com/92283
625
625
  * Get the TextMate bundle at https://github.com/visionmedia/jspec.tmbundle/tree
626
626
  * For more information consult the JSpec source code documentation or visit http://visionmedia.github.com/jspec
627
+ * jQuery + HTML fixture example http://gist.github.com/147831
627
628
 
628
629
  == Contributors
629
630
 
data/bin/jspec CHANGED
@@ -11,7 +11,7 @@ require 'fileutils'
11
11
  RHINO = 'java org.mozilla.javascript.tools.shell.Main'
12
12
 
13
13
  program :name, 'JSpec'
14
- program :version, '2.7.0'
14
+ program :version, '2.7.1'
15
15
  program :description, 'JavaScript BDD Testing Framework'
16
16
  default_command :bind
17
17
 
@@ -95,6 +95,8 @@ command :run do |c|
95
95
  if options.rhino
96
96
  spec = args.shift || path_to('spec.rhino.js')
97
97
  action = lambda { rhino spec }
98
+ elsif options.server_only
99
+ start_server options, nil
98
100
  elsif options.server
99
101
  spec = args.shift || path_to('spec.server.html')
100
102
  action = lambda { start_server options, spec }
data/jspec.gemspec CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{jspec}
5
- s.version = "2.7.0"
5
+ s.version = "2.7.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["TJ Holowaychuk"]
9
- s.date = %q{2009-07-14}
9
+ s.date = %q{2009-07-17}
10
10
  s.default_executable = %q{jspec}
11
11
  s.description = %q{JavaScript BDD Testing Framework}
12
12
  s.email = %q{tj@vision-media.ca}
13
13
  s.executables = ["jspec"]
14
14
  s.extra_rdoc_files = ["bin/jspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "README.rdoc"]
15
- s.files = ["bin/jspec", "History.rdoc", "jspec.gemspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "Manifest", "Rakefile", "README.rdoc", "server/browsers.rb", "server/server.rb", "spec/async", "spec/env.js", "spec/fixtures/test.html", "spec/fixtures/test.json", "spec/fixtures/test.xml", "spec/jquery-1.3.1.js", "spec/modules.js", "spec/spec.dom.html", "spec/spec.grammar-less.js", "spec/spec.grammar.js", "spec/spec.jquery.js", "spec/spec.js", "spec/spec.matchers.js", "spec/spec.modules.js", "spec/spec.node.js", "spec/spec.rhino.js", "spec/spec.server.html", "spec/spec.shared-behaviors.js", "spec/spec.utils.js", "templates/default/History.rdoc", "templates/default/lib/yourlib.core.js", "templates/default/README.rdoc", "templates/default/spec/spec.core.js", "templates/default/spec/spec.dom.html", "templates/default/spec/spec.rhino.js", "templates/default/spec/spec.server.html", "templates/rails/spec.application.js", "templates/rails/spec.dom.html", "templates/rails/spec.rhino.js", "templates/rails/spec.server.html"]
15
+ s.files = ["bin/jspec", "History.rdoc", "jspec.gemspec", "lib/images/bg.png", "lib/images/hr.png", "lib/images/loading.gif", "lib/images/sprites.bg.png", "lib/images/sprites.png", "lib/images/vr.png", "lib/jspec.css", "lib/jspec.jquery.js", "lib/jspec.js", "Manifest", "Rakefile", "README.rdoc", "server/browsers.rb", "server/server.rb", "spec/async", "spec/env.js", "spec/fixtures/test.html", "spec/fixtures/test.json", "spec/fixtures/test.xml", "spec/modules.js", "spec/spec.dom.html", "spec/spec.grammar-less.js", "spec/spec.grammar.js", "spec/spec.jquery.js", "spec/spec.js", "spec/spec.matchers.js", "spec/spec.modules.js", "spec/spec.node.js", "spec/spec.rhino.js", "spec/spec.server.html", "spec/spec.shared-behaviors.js", "spec/spec.utils.js", "templates/default/History.rdoc", "templates/default/lib/yourlib.core.js", "templates/default/README.rdoc", "templates/default/spec/spec.core.js", "templates/default/spec/spec.dom.html", "templates/default/spec/spec.rhino.js", "templates/default/spec/spec.server.html", "templates/rails/spec.application.js", "templates/rails/spec.dom.html", "templates/rails/spec.rhino.js", "templates/rails/spec.server.html"]
16
16
  s.homepage = %q{http://visionmedia.github.com/jspec}
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Jspec", "--main", "README.rdoc"]
18
18
  s.require_paths = ["lib"]
data/lib/jspec.jquery.js CHANGED
@@ -1,12 +1,13 @@
1
1
 
2
2
  // JSpec - jQuery - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)
3
3
 
4
- JSpec.include({
4
+ JSpec
5
+ .requires('jQuery', 'when using jspec.jquery.js')
6
+ .include({
5
7
 
6
8
  // --- Initialize
7
9
 
8
10
  init : function() {
9
- this.requires('jQuery', 'when using jspec.jquery.js')
10
11
  jQuery.ajaxSetup({ async : false })
11
12
  },
12
13
 
data/lib/jspec.js CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  JSpec = {
7
7
 
8
- version : '2.7.0',
8
+ version : '2.7.1',
9
9
  cache : {},
10
10
  suites : [],
11
11
  modules : [],
@@ -49,6 +49,22 @@
49
49
  return { an_instance_of : constructor }
50
50
  },
51
51
 
52
+ /**
53
+ * Load fixture at _path_. This utility function
54
+ * supplies the means to resolve, and cache fixture contents
55
+ * via the DOM or Rhino.
56
+ *
57
+ * Fixtures are resolved as:
58
+ *
59
+ * - <path>
60
+ * - fixtures/<path>
61
+ * - fixtures/<path>.html
62
+ *
63
+ * @param {string} path
64
+ * @return {string}
65
+ * @api public
66
+ */
67
+
52
68
  fixture : function(path) {
53
69
  if (JSpec.cache[path]) return JSpec.cache[path]
54
70
  function tryLoading(path) {
@@ -293,6 +309,8 @@
293
309
  })
294
310
  },
295
311
 
312
+ // Check if any calls have passing results
313
+
296
314
  anyResultsPass : function() {
297
315
  return any(this.calls, function(call){
298
316
  return self.expectedResult.an_instance_of ?
@@ -301,6 +319,8 @@
301
319
  })
302
320
  },
303
321
 
322
+ // Return the passing result
323
+
304
324
  passingResult : function() {
305
325
  return this.anyResultsPass().result
306
326
  },
@@ -316,6 +336,7 @@
316
336
  anyArgsFail : function() {
317
337
  return any(this.calls, function(call){
318
338
  return any(self.expectedArgs, function(i, arg){
339
+ if (arg == null) return call.args[i] == null
319
340
  return arg.an_instance_of ?
320
341
  call.args[i].constructor != arg.an_instance_of:
321
342
  hash(arg) != hash(call.args[i])
@@ -324,6 +345,8 @@
324
345
  })
325
346
  },
326
347
 
348
+ // Check if any arguments pass
349
+
327
350
  anyArgsPass : function() {
328
351
  return any(this.calls, function(call){
329
352
  return any(self.expectedArgs, function(i, arg){
@@ -335,6 +358,8 @@
335
358
  })
336
359
  },
337
360
 
361
+ // Return the passing args
362
+
338
363
  passingArgs : function() {
339
364
  return this.anyArgsPass().args
340
365
  },
@@ -361,7 +386,7 @@
361
386
  return n > 2 ? n + ' times' : { 1 : 'once', 2 : 'twice' }[n]
362
387
  }
363
388
 
364
- if (this.expectedResult && (negate ? this.anyResultsPass() : this.anyResultsFail()))
389
+ if (this.expectedResult != null && (negate ? this.anyResultsPass() : this.anyResultsFail()))
365
390
  this.message = methodString + ' to return ' + puts(this.expectedResult) +
366
391
  ' but ' + (negate ? 'it did' : 'got ' + puts(this.failingResult()))
367
392
 
@@ -532,9 +557,6 @@
532
557
 
533
558
  Module : function(methods) {
534
559
  extend(this, methods)
535
- extend(this, {
536
- requires : JSpec.requires
537
- })
538
560
  },
539
561
 
540
562
  // --- DSLs
@@ -813,6 +835,7 @@
813
835
  */
814
836
 
815
837
  hash : function(object) {
838
+ if (object == null) return 'null'
816
839
  if (object == undefined) return 'undefined'
817
840
  serialize = function(prefix) {
818
841
  return inject(object, prefix + ':', function(buffer, key, value){
@@ -1367,6 +1390,7 @@
1367
1390
  *
1368
1391
  * @param {string} dependency
1369
1392
  * @param {string} message (optional)
1393
+ * @return {JSpec}
1370
1394
  * @api public
1371
1395
  */
1372
1396
 
@@ -1374,6 +1398,7 @@
1374
1398
  hook('requiring', dependency, message)
1375
1399
  try { eval(dependency) }
1376
1400
  catch (e) { throw 'JSpec depends on ' + dependency + ' ' + message }
1401
+ return this
1377
1402
  },
1378
1403
 
1379
1404
  /**
data/spec/spec.dom.html CHANGED
@@ -1,7 +1,7 @@
1
1
  <html>
2
2
  <head>
3
3
  <link type="text/css" rel="stylesheet" href="../lib/jspec.css" />
4
- <script src="jquery-1.3.1.js"></script>
4
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
5
5
  <script src="../lib/jspec.js"></script>
6
6
  <script src="../lib/jspec.jquery.js"></script>
7
7
  <script src="modules.js"></script>
@@ -362,7 +362,38 @@ describe 'Matchers'
362
362
  personWithPets.should.not.receive('addPets', 'twice')
363
363
  personWithPets.addPets('izzy')
364
364
  end
365
-
365
+
366
+ it 'should pass with boolean args'
367
+ foo = { bar : function(arg){ return arg }}
368
+ foo.should.receive('bar', 'twice').with_args(true)
369
+ foo.bar(true)
370
+ foo.bar(true)
371
+ end
372
+
373
+ it 'should pass with null args'
374
+ foo = { bar : function(arg){ return arg }}
375
+ foo.should.receive('bar').with_args(null)
376
+ foo.bar(null)
377
+ end
378
+
379
+ it 'should pass with boolean return value true'
380
+ foo = { bar : function(){ return true }}
381
+ foo.should.receive('bar').and_return(true)
382
+ foo.bar()
383
+ end
384
+
385
+ it 'should pass with boolean return value false'
386
+ foo = { bar : function(){ return false }}
387
+ foo.should.receive('bar').and_return(false)
388
+ foo.bar()
389
+ end
390
+
391
+ it 'should pass with null return value'
392
+ foo = { bar : function(){ return null }}
393
+ foo.should.receive('bar').and_return(null)
394
+ foo.bar()
395
+ end
396
+
366
397
  it 'should fail when the method does not exist'
367
398
  person.should.receive('getPets')
368
399
  end
@@ -432,6 +463,24 @@ describe 'Matchers'
432
463
  personWithPets.addPets('izzy')
433
464
  personWithPets.addPets('max')
434
465
  end
466
+
467
+ it 'should fail with boolean args'
468
+ foo = { bar : function(arg){ return arg }}
469
+ foo.should.receive('bar').with_args(true)
470
+ foo.bar(false)
471
+ end
472
+
473
+ it 'should fail with boolean return value true'
474
+ foo = { bar : function(){ return true }}
475
+ foo.should.receive('bar').and_return(false)
476
+ foo.bar()
477
+ end
478
+
479
+ it 'should fail with boolean return value false'
480
+ foo = { bar : function(){ return false }}
481
+ foo.should.receive('bar').and_return(true)
482
+ foo.bar()
483
+ end
435
484
  end
436
485
 
437
486
  end
data/spec/spec.rhino.js CHANGED
@@ -10,5 +10,5 @@ JSpec
10
10
  .exec('spec/spec.utils.js')
11
11
  .exec('spec/spec.shared-behaviors.js')
12
12
  .exec('spec/spec.modules.js')
13
- .run({ formatter : JSpec.formatters.Terminal, failuresOnly : true })
13
+ .run({ formatter : JSpec.formatters.Terminal, failuresOnly : false })
14
14
  .report()
@@ -1,6 +1,6 @@
1
1
  <html>
2
2
  <head>
3
- <script src="jquery-1.3.1.js"></script>
3
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
4
4
  <script src="jspec.js"></script>
5
5
  <script src="jspec.jquery.js"></script>
6
6
  <script src="modules.js"></script>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: visionmedia-jspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - TJ Holowaychuk
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-14 00:00:00 -07:00
12
+ date: 2009-07-17 00:00:00 -07:00
13
13
  default_executable: jspec
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -73,7 +73,6 @@ files:
73
73
  - spec/fixtures/test.html
74
74
  - spec/fixtures/test.json
75
75
  - spec/fixtures/test.xml
76
- - spec/jquery-1.3.1.js
77
76
  - spec/modules.js
78
77
  - spec/spec.dom.html
79
78
  - spec/spec.grammar-less.js