evergreen 1.0.0 → 1.0.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.
Files changed (84) hide show
  1. checksums.yaml +15 -0
  2. data/README.rdoc +8 -6
  3. data/lib/evergreen.rb +8 -6
  4. data/lib/evergreen/application.rb +2 -5
  5. data/lib/evergreen/helper.rb +33 -0
  6. data/lib/evergreen/runner.rb +1 -1
  7. data/lib/evergreen/server.rb +1 -0
  8. data/lib/evergreen/suite.rb +6 -0
  9. data/lib/evergreen/version.rb +1 -1
  10. data/lib/evergreen/views/run.erb +16 -6
  11. data/lib/jasmine/Contribute.markdown +8 -7
  12. data/lib/jasmine/Gemfile +0 -1
  13. data/lib/jasmine/README.markdown +1 -8
  14. data/lib/jasmine/Rakefile +26 -15
  15. data/lib/jasmine/Release.markdown +8 -6
  16. data/lib/jasmine/config.rb +29 -0
  17. data/lib/jasmine/jasmine-core.gemspec +9 -2
  18. data/lib/jasmine/jasmine_dev.thor +1 -0
  19. data/lib/jasmine/jshint/run.js +1 -1
  20. data/lib/jasmine/lib/jasmine-core/jasmine-html.js +427 -1
  21. data/lib/jasmine/lib/jasmine-core/jasmine.css +81 -166
  22. data/lib/jasmine/lib/jasmine-core/jasmine.js +245 -192
  23. data/lib/jasmine/lib/jasmine-core/version.rb +1 -1
  24. data/lib/jasmine/spec/core/MatchersSpec.js +273 -0
  25. data/lib/jasmine/spec/core/PrettyPrintSpec.js +7 -0
  26. data/lib/jasmine/spec/html/HTMLReporterSpec.js +209 -0
  27. data/lib/jasmine/spec/node_suite.js +2 -2
  28. data/lib/jasmine/spec/runner.html +10 -3
  29. data/lib/jasmine/spec/spec_helper.rb +51 -0
  30. data/lib/jasmine/spec/tasks/build_distribution_spec.rb +33 -0
  31. data/lib/jasmine/spec/tasks/build_github_pages_spec.rb +69 -0
  32. data/lib/jasmine/spec/tasks/build_standalone_distribution_spec.rb +109 -0
  33. data/lib/jasmine/spec/tasks/build_standalone_runner_spec.rb +63 -0
  34. data/lib/jasmine/spec/tasks/count_specs_spec.rb +26 -0
  35. data/lib/jasmine/spec/tasks/execute_specs_spec.rb +81 -0
  36. data/lib/jasmine/spec/tasks/jshint_spec.rb +39 -0
  37. data/lib/jasmine/spec/tasks/release_spec.rb +39 -0
  38. data/lib/jasmine/spec/tasks/version_spec.rb +55 -0
  39. data/lib/jasmine/spec/templates/runner.html.erb +3 -3
  40. data/lib/jasmine/src/core/Env.js +10 -2
  41. data/lib/jasmine/src/core/Matchers.js +33 -4
  42. data/lib/jasmine/src/core/PrettyPrinter.js +2 -2
  43. data/lib/jasmine/src/core/base.js +15 -0
  44. data/lib/jasmine/src/core/mock-timeout.js +0 -0
  45. data/lib/jasmine/src/html/HtmlReporter.js +101 -0
  46. data/lib/jasmine/src/html/HtmlReporterHelpers.js +60 -0
  47. data/lib/jasmine/src/html/ReporterView.js +164 -0
  48. data/lib/jasmine/src/html/SpecView.js +79 -0
  49. data/lib/jasmine/src/html/SuiteView.js +22 -0
  50. data/lib/jasmine/src/html/TrivialReporter.js +3 -1
  51. data/lib/jasmine/src/html/_HTMLReporter.scss +302 -0
  52. data/lib/jasmine/src/html/_TrivialReporter.scss +169 -0
  53. data/lib/jasmine/src/html/jasmine.css +81 -166
  54. data/lib/jasmine/src/html/jasmine.scss +2 -0
  55. data/lib/jasmine/src/templates/version.js.erb +1 -0
  56. data/lib/jasmine/src/version.js +3 -2
  57. data/lib/jasmine/src/version.json +1 -1
  58. data/lib/jasmine/tasks/jasmine_dev.rb +18 -0
  59. data/lib/jasmine/tasks/jasmine_dev/base.rb +54 -0
  60. data/lib/jasmine/tasks/jasmine_dev/build_distribution.rb +53 -0
  61. data/lib/jasmine/tasks/jasmine_dev/build_github_pages.rb +31 -0
  62. data/lib/jasmine/tasks/jasmine_dev/build_standalone_distribution.rb +49 -0
  63. data/lib/jasmine/tasks/jasmine_dev/build_standalone_runner.rb +59 -0
  64. data/lib/jasmine/tasks/jasmine_dev/count_specs.rb +29 -0
  65. data/lib/jasmine/tasks/jasmine_dev/execute_specs.rb +52 -0
  66. data/lib/jasmine/tasks/jasmine_dev/js_hint.rb +13 -0
  67. data/lib/jasmine/tasks/jasmine_dev/release.rb +16 -0
  68. data/lib/jasmine/tasks/jasmine_dev/sources.rb +32 -0
  69. data/lib/jasmine/tasks/jasmine_dev/version.rb +62 -0
  70. data/spec/helper_spec.rb +25 -0
  71. data/spec/suite1/spec/javascripts/{spec_helper.coffee → helpers/spec_helper.coffee} +0 -0
  72. data/spec/suite1/spec/javascripts/{spec_helper.js → helpers/spec_helper.js} +0 -0
  73. data/spec/suite1/spec/javascripts/templates_spec.js +6 -6
  74. data/spec/suite2/spec/awesome_spec.js +1 -1
  75. data/spec/suite_spec.rb +6 -0
  76. metadata +116 -52
  77. data/lib/jasmine/src/SourcesList.json +0 -7
  78. data/lib/jasmine/tasks/build_dist.rb +0 -48
  79. data/lib/jasmine/tasks/build_specs.rb +0 -50
  80. data/lib/jasmine/tasks/helpers.rb +0 -50
  81. data/lib/jasmine/tasks/pages.rb +0 -13
  82. data/lib/jasmine/tasks/spec.rb +0 -37
  83. data/lib/jasmine/tasks/standalone.rb +0 -91
  84. data/lib/jasmine/tasks/version.rb +0 -5
@@ -1,5 +1,5 @@
1
1
  var fs = require('fs');
2
- var sys = require('sys');
2
+ var util = require('util');
3
3
  var path = require('path');
4
4
 
5
5
  // yes, really keep this here to keep us honest, but only for jasmine's own runner! [xw]
@@ -37,7 +37,7 @@ jasmine.executeSpecs = function(specs, done, isVerbose, showColors) {
37
37
  }
38
38
 
39
39
  var jasmineEnv = jasmine.getEnv();
40
- var consoleReporter = new jasmine.ConsoleReporter(sys.print, done, showColors);
40
+ var consoleReporter = new jasmine.ConsoleReporter(util.print, done, showColors);
41
41
 
42
42
  jasmineEnv.addReporter(consoleReporter);
43
43
  jasmineEnv.execute();
@@ -15,6 +15,12 @@
15
15
 
16
16
 
17
17
  <!-- include source files here... -->
18
+ <script type="text/javascript" src=".././src/html/HtmlReporterHelpers.js"></script>
19
+ <script type="text/javascript" src=".././src/html/HtmlReporter.js"></script>
20
+ <script type="text/javascript" src=".././src/html/HtmlReporterHelpers.js"></script>
21
+ <script type="text/javascript" src=".././src/html/ReporterView.js"></script>
22
+ <script type="text/javascript" src=".././src/html/SpecView.js"></script>
23
+ <script type="text/javascript" src=".././src/html/SuiteView.js"></script>
18
24
  <script type="text/javascript" src=".././src/html/TrivialReporter.js"></script>
19
25
  <script type="text/javascript" src=".././src/console/ConsoleReporter.js"></script>
20
26
 
@@ -38,6 +44,7 @@
38
44
  <script type="text/javascript" src=".././spec/core/SuiteSpec.js"></script>
39
45
  <script type="text/javascript" src=".././spec/core/UtilSpec.js"></script>
40
46
  <script type="text/javascript" src=".././spec/core/WaitsForBlockSpec.js"></script>
47
+ <script type="text/javascript" src=".././spec/html/HTMLReporterSpec.js"></script>
41
48
  <script type="text/javascript" src=".././spec/html/MatchersHtmlSpec.js"></script>
42
49
  <script type="text/javascript" src=".././spec/html/PrettyPrintHtmlSpec.js"></script>
43
50
  <script type="text/javascript" src=".././spec/html/TrivialReporterSpec.js"></script>
@@ -48,12 +55,12 @@
48
55
  var jasmineEnv = jasmine.getEnv();
49
56
  jasmineEnv.updateInterval = 1000;
50
57
 
51
- var trivialReporter = new jasmine.TrivialReporter();
58
+ var htmlReporter = new jasmine.HtmlReporter();
52
59
 
53
- jasmineEnv.addReporter(trivialReporter);
60
+ jasmineEnv.addReporter(htmlReporter);
54
61
 
55
62
  jasmineEnv.specFilter = function(spec) {
56
- return trivialReporter.specFilter(spec);
63
+ return htmlReporter.specFilter(spec);
57
64
  };
58
65
 
59
66
  var currentWindowOnload = window.onload;
@@ -0,0 +1,51 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper.rb"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+ end
12
+
13
+ require 'awesome_print'
14
+ require 'tmpdir'
15
+ require 'nokogiri'
16
+
17
+ def project_root
18
+ File.join(File.expand_path(File.dirname(__FILE__)), '..')
19
+ end
20
+
21
+ require "#{project_root}/tasks/jasmine_dev"
22
+
23
+ def capture_output(capture = true)
24
+ if capture
25
+ output = StringIO.new
26
+ $stdout = output
27
+ end
28
+ yield
29
+ if capture
30
+ output.string
31
+ end
32
+ ensure
33
+ $stdout = STDOUT
34
+ end
35
+
36
+ def reset_dir(dir)
37
+ FileUtils.rm_r dir if File.exists?(dir)
38
+ FileUtils.mkdir_p dir
39
+ end
40
+
41
+ def jasmine_version
42
+ version = jasmine_version_object
43
+
44
+ version_string = "#{version['major']}.#{version['minor']}.#{version['build']}"
45
+ version_string += ".rc#{version['release_candidate']}" if version['release_candidate']
46
+ version_string
47
+ end
48
+
49
+ def jasmine_version_object
50
+ @version_object ||= JSON.parse(File.read(File.join(JasmineDev.project_root, 'src', 'version.json')))
51
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Build Jasmine task" do
4
+
5
+ let(:jasmine_core_dir) { "#{Dir.tmpdir}/jasmine-core" }
6
+ let(:jasmine_dev) { JasmineDev.new }
7
+
8
+ before do
9
+ reset_dir jasmine_core_dir
10
+ @output = capture_output { jasmine_dev.build_distribution jasmine_core_dir }
11
+ end
12
+
13
+ it "should say that JSHint is running" do
14
+ @output.should match(/Running JSHint/)
15
+ @output.should match(/Jasmine JSHint PASSED/)
16
+ end
17
+
18
+ it "should tell the developer it is building the distribution" do
19
+ @output.should match(/Building Jasmine distribution/)
20
+ end
21
+
22
+ it "should build jasmine.js in the destination directory" do
23
+ File.exist?("#{jasmine_core_dir}/jasmine.js").should be_true
24
+ end
25
+
26
+ it "should build jasmine-html.js in the destination directory" do
27
+ File.exist?("#{jasmine_core_dir}/jasmine-html.js").should be_true
28
+ end
29
+
30
+ it "should build jasmine.css" do
31
+ File.exist?("#{jasmine_core_dir}/jasmine.css").should be_true
32
+ end
33
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Build Github Pages task" do
4
+
5
+ let(:pages_dir) { File.join(Dir.tmpdir, 'pages') }
6
+ let(:jasmine_dev) { JasmineDev.new }
7
+
8
+ before do
9
+ reset_dir pages_dir
10
+ end
11
+
12
+ describe "when the Github pages submodule is not present" do
13
+ before do
14
+ jasmine_dev.should_receive(:has_pages_submodule?).and_return(false)
15
+
16
+ @output = capture_output { jasmine_dev.build_github_pages pages_dir }
17
+ end
18
+
19
+ it "should tell the user the task is running" do
20
+ @output.should match(/Building Github Pages/)
21
+ end
22
+
23
+ it "should prompt the user to install the submodule" do
24
+ @output.should match(/Submodule for Github Pages isn't present/)
25
+ end
26
+ end
27
+
28
+ describe "when the Github pages submodule is present" do
29
+ before do
30
+ jasmine_dev.should_receive(:has_pages_submodule?).and_return(true)
31
+
32
+ @output = capture_output { jasmine_dev.build_github_pages pages_dir }
33
+ end
34
+
35
+ it "should tell the user the task is running" do
36
+ @output.should match(/Building Github Pages/)
37
+ end
38
+
39
+ it "should tell the user the pages are built" do
40
+ @output.should match(/Congratulations, project dumped to/)
41
+ end
42
+
43
+ it "should build the pages output to the requested diretory" do
44
+ Dir.chdir File.join(pages_dir, 'pages_output') do
45
+ pages = Dir.glob(File.join('**', '*'))
46
+
47
+ pages.should include('download.html')
48
+ pages.should include('index.html')
49
+ pages.should include(File.join('images', 'jasmine_logo.png'))
50
+ pages.should include(File.join('images', 'pivotal_logo.gif'))
51
+ pages.should include(File.join('css', 'pygments.css'))
52
+ pages.should include(File.join('css', 'screen.css'))
53
+ end
54
+ end
55
+
56
+ it "should copy the generated page files to the destination directory" do
57
+ Dir.chdir pages_dir do
58
+ pages = Dir.glob(File.join('**', '*'))
59
+
60
+ pages.should include('download.html')
61
+ pages.should include('index.html')
62
+ pages.should include(File.join('images', 'jasmine_logo.png'))
63
+ pages.should include(File.join('images', 'pivotal_logo.gif'))
64
+ pages.should include(File.join('css', 'pygments.css'))
65
+ pages.should include(File.join('css', 'screen.css'))
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,109 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Standalone Distribution tasks" do
4
+
5
+ let(:jasmine_dev) { JasmineDev.new }
6
+ let(:standalone_temp_dir) { File.join(Dir.tmpdir, 'jasmine_test') }
7
+ let(:download_dir) { File.join(standalone_temp_dir, 'download')}
8
+
9
+ describe "build_standalone_distribution" do
10
+ before do
11
+ reset_dir standalone_temp_dir
12
+ reset_dir download_dir
13
+
14
+ Dir.should_receive(:tmpdir).any_number_of_times.and_return(standalone_temp_dir)
15
+
16
+ @standalone_staging_dir = File.join(standalone_temp_dir, 'jasmine_standalone')
17
+
18
+ @version_dir = File.join(@standalone_staging_dir, "jasmine-standalone-#{jasmine_version}")
19
+ @lib_dir = File.join(@version_dir, 'lib')
20
+ @source_dir = File.join(@version_dir, 'src')
21
+ @spec_dir = File.join(@version_dir, 'spec')
22
+
23
+ @output = capture_output { jasmine_dev.build_standalone_distribution download_dir }
24
+ end
25
+
26
+ it "should build the distribution" do
27
+ @output.should match(/Building Jasmine distribution/)
28
+ end
29
+
30
+ it "should tell the developer the task has started" do
31
+ @output.should match(/Building standalone distribution/)
32
+ end
33
+
34
+ it "should copy the lib directory to the staging directory, under a versioned directory" do
35
+ lib_dir_files = Dir.glob(File.join(standalone_temp_dir, 'jasmine_standalone', '**', '*'))
36
+
37
+ staged_lib_files = %w{ jasmine.js jasmine-html.js jasmine.css MIT.LICENSE }
38
+ staged_lib_files.each do |filename|
39
+ lib_dir_files.should include(File.join(@lib_dir, "jasmine-#{jasmine_version}", filename))
40
+ end
41
+ end
42
+
43
+ it "should copy the sample project source to the staging directory" do
44
+ File.exist?(File.join(@source_dir, 'Player.js')).should be_true
45
+ File.exist?(File.join(@source_dir, 'Song.js')).should be_true
46
+ end
47
+
48
+ it "should copy the sample project specs to the staging directory" do
49
+ File.exist?(File.join(@spec_dir, 'PlayerSpec.js')).should be_true
50
+ File.exist?(File.join(@spec_dir, 'SpecHelper.js')).should be_true
51
+ end
52
+
53
+ it "should copy a build SpecRunner.html to the staging directory" do
54
+ File.exist?(File.join(@version_dir, 'SpecRunner.html')).should be_true
55
+ end
56
+
57
+ it "should zip up the contents of the staging directory" do
58
+ File.exist?(File.join(@standalone_staging_dir, "jasmine-standalone-#{jasmine_version}.zip")).should be_true
59
+ end
60
+
61
+ it "should copy the zip file to the pages sub directory" do
62
+ File.exist?(File.join(download_dir, "jasmine-standalone-#{jasmine_version}.zip")).should be_true
63
+ end
64
+
65
+ describe "when the zip file is unzipped" do
66
+ before do
67
+ @out_directory = File.join(standalone_temp_dir, 'unzip')
68
+ reset_dir @out_directory
69
+
70
+ FileUtils.cp File.join(@standalone_staging_dir, "jasmine-standalone-#{jasmine_version}.zip"),
71
+ @out_directory
72
+
73
+ Dir.chdir @out_directory do
74
+ system("unzip -qq jasmine-standalone-#{jasmine_version}.zip")
75
+ end
76
+ end
77
+
78
+ describe "the distirbution" do
79
+ before do
80
+ Dir.chdir @out_directory do
81
+ @files = Dir.glob(File.join('**', '*'))
82
+ end
83
+ end
84
+
85
+ it "should include the correct root files" do
86
+ @files.should include('SpecRunner.html')
87
+ end
88
+
89
+ it "should include the correct lib files" do
90
+ %w{ jasmine.js jasmine-html.js jasmine.css MIT.LICENSE }.each do |file|
91
+ @files.should include(File.join('lib', "jasmine-#{jasmine_version}", file))
92
+ end
93
+ end
94
+
95
+ it "should include the correct src files" do
96
+ %w{Player.js Song.js}.each do |file|
97
+ @files.should include(File.join('src', file))
98
+ end
99
+ end
100
+
101
+ it "should include the correct spec files" do
102
+ %w{PlayerSpec.js SpecHelper.js}.each do |file|
103
+ @files.should include(File.join('spec', file))
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Build Standalone runner HTML task" do
4
+
5
+ let(:jasmine_dev) { JasmineDev.new }
6
+ let(:standalone_temp_dir) { "#{Dir.tmpdir}/jasmine_test" }
7
+
8
+ describe "build_standalone_runner" do
9
+ before do
10
+ reset_dir standalone_temp_dir
11
+ Dir.should_receive(:tmpdir).any_number_of_times.and_return(standalone_temp_dir)
12
+
13
+ @standalone_staging_dir = File.join(standalone_temp_dir, 'jasmine_standalone')
14
+
15
+ @version_dir = File.join(@standalone_staging_dir, "jasmine-standalone-#{jasmine_version}")
16
+
17
+ @output = capture_output { jasmine_dev.build_standalone_runner }
18
+ end
19
+
20
+ it "should tell the developer the task has started" do
21
+ @output.should match(/Building standalone runner HTML/)
22
+ end
23
+
24
+ it "should copy a build SpecRunner.html to the staging directory" do
25
+ File.exist?(File.join(@version_dir, 'SpecRunner.html')).should be_true
26
+ end
27
+
28
+ describe "should build the file that has HTML that" do
29
+ before do
30
+ html = File.read(File.join(@version_dir, 'SpecRunner.html'))
31
+ @runner = Nokogiri(html)
32
+ end
33
+
34
+ it "should have the favicon tag" do
35
+ favicon_tag = @runner.css('link')[0]
36
+ favicon_tag['href'].should match("lib/jasmine-#{jasmine_version}/jasmine_favicon.png")
37
+ end
38
+
39
+ it "should have the stylesheet" do
40
+ css_tag = @runner.css('link')[1]
41
+ css_tag['href'].should match("lib/jasmine-#{jasmine_version}/jasmine.css")
42
+ end
43
+
44
+ it "should have the jasmine script tags" do
45
+ script_sources = @runner.css('script').collect {|tag| tag['src']}
46
+ script_sources.should include("lib/jasmine-#{jasmine_version}/jasmine.js")
47
+ script_sources.should include("lib/jasmine-#{jasmine_version}/jasmine-html.js")
48
+ end
49
+
50
+ it "should have the example source files" do
51
+ script_sources = @runner.css('script').collect {|tag| tag['src']}
52
+ script_sources.should include('src/Player.js')
53
+ script_sources.should include('src/Song.js')
54
+ end
55
+
56
+ it "should have the example source files" do
57
+ script_sources = @runner.css('script').collect {|tag| tag['src']}
58
+ script_sources.should include('spec/SpecHelper.js')
59
+ script_sources.should include('spec/PlayerSpec.js')
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Spec counting task" do
4
+
5
+ let(:jasmine_dev) { JasmineDev.new }
6
+
7
+ before do
8
+ @output = capture_output { jasmine_dev.count_specs }
9
+ end
10
+
11
+ it "should tell the developer that the specs are being counted" do
12
+ @output.should match(/Counting specs/)
13
+ end
14
+
15
+ it "should report the number of specs that will run in node" do
16
+ @output.should match(/\d+ \e\[0mspecs for Node.js/)
17
+ end
18
+
19
+ it "should report the number of specs that will run in the browser" do
20
+ @output.should match(/\d+ \e\[0mspecs for Browser/)
21
+ end
22
+
23
+ it "should remind the developer to check the count" do
24
+ @output.should match(/Please verify/)
25
+ end
26
+ end
@@ -0,0 +1,81 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe "Spec tasks" do
4
+
5
+ let(:jasmine_dev) { JasmineDev.new }
6
+
7
+ describe "execute_specs_in_node" do
8
+ describe "when Node.js is not present" do
9
+ before do
10
+ jasmine_dev.should_receive(:has_node?).and_return(false)
11
+ @output = capture_output { jasmine_dev.execute_specs_in_node }
12
+ end
13
+
14
+ it "should prompt the user to install Node" do
15
+ @output.should match(/Node\.js is required/)
16
+ end
17
+ end
18
+
19
+ describe "when Node.js is present" do
20
+ before do
21
+ jasmine_dev.should_receive(:has_node?).and_return(true)
22
+ @output = capture_output { jasmine_dev.execute_specs_in_node }
23
+ end
24
+
25
+ it "should build the distribution" do
26
+ @output.should match(/Building Jasmine distribution/)
27
+ end
28
+
29
+ it "should tell the developer that the specs are being counted" do
30
+ @output.should match(/Counting specs/)
31
+ end
32
+
33
+ it "should tell the user that the specs are running in Node.js" do
34
+ @output.should match(/specs via Node/)
35
+ @output.should match(/Started/)
36
+ @output.should match(/\d+ specs, 0 failures/)
37
+ end
38
+ end
39
+ end
40
+
41
+ describe "execute_specs_in_browser" do
42
+ before do
43
+ jasmine_dev.should_receive(:run)
44
+ @output = capture_output { jasmine_dev.execute_specs_in_browser }
45
+ end
46
+
47
+ it "should build the distribution" do
48
+ @output.should match(/Building Jasmine distribution/)
49
+ end
50
+
51
+ it "should tell the developer that the specs are being counted" do
52
+ @output.should match(/Counting specs/)
53
+ end
54
+
55
+ it "should tell the user that the specs are running in the broswer" do
56
+ @output.should match(/specs via the default web browser/)
57
+ end
58
+ end
59
+
60
+ describe "execute_specs" do
61
+ before do
62
+ @output = capture_output { jasmine_dev.execute_specs }
63
+ end
64
+
65
+ it "should build the distribution" do
66
+ @output.should match(/Building Jasmine distribution/)
67
+ end
68
+
69
+ it "should tell the developer that the specs are being counted" do
70
+ @output.should match(/Counting specs/)
71
+ end
72
+
73
+ it "should tell the user that the specs are running in Node.js" do
74
+ @output.should match(/specs via Node/)
75
+ end
76
+
77
+ it "should tell the user that the specs are running in the broswer" do
78
+ @output.should match(/specs via the default web browser/)
79
+ end
80
+ end
81
+ end