jasmine-headless-webkit 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/qt/qmake.rb CHANGED
@@ -1,10 +1,13 @@
1
1
  require 'rbconfig'
2
+ require 'rubygems/version'
2
3
 
3
4
  module Qt
4
5
  class NotInstalledError < StandardError; end
5
6
 
6
7
  class Qmake
7
8
  class << self
9
+ QMAKES = %w{qmake-qt4 qmake}
10
+
8
11
  def installed?
9
12
  path != nil
10
13
  end
@@ -29,7 +32,6 @@ module Qt
29
32
 
30
33
  check_make!
31
34
  check_qmake!
32
- check_qmake_version!
33
35
 
34
36
  system command
35
37
  system %{make}
@@ -39,7 +41,7 @@ module Qt
39
41
  # We need integration tests for these!
40
42
  #
41
43
  def path
42
- get_exe_path('qmake-qt4') || get_exe_path('qmake')
44
+ @path ||= best_qmake
43
45
  end
44
46
 
45
47
  def make_path
@@ -57,15 +59,24 @@ module Qt
57
59
  end
58
60
  end
59
61
 
60
- def qt_version
61
- @qt_version ||= %x{#{path} -v}.lines.to_a[1][%r{Using Qt version ([^ ]+) },1]
62
+ def qt_version_of(qmake_path)
63
+ Gem::Version.new(%x{#{qmake_path} -v}.lines.to_a[1][%r{Using Qt version ([^ ]+) },1])
62
64
  end
63
65
 
64
- def qt_47_or_better?
65
- return false if !qt_version
66
- return true if (major = qt_version.split('.')[0].to_i) > 4
67
- return false if major < 4
68
- qt_version.split('.')[1].to_i >= 7
66
+ def best_qmake
67
+ if qmake_path = QMAKES.collect do |path|
68
+ result = nil
69
+ if qmake_path = get_exe_path(path)
70
+ if (qt_version = qt_version_of(qmake_path)) >= Gem::Version.create('4.7')
71
+ result = [ qmake_path, qt_version ]
72
+ end
73
+ end
74
+ result
75
+ end.compact.sort { |a, b| b.last <=> a.last }.first
76
+ qmake_path.first
77
+ else
78
+ nil
79
+ end
69
80
  end
70
81
 
71
82
  private
@@ -98,7 +109,7 @@ MSG
98
109
 
99
110
  def check_qmake!
100
111
  if !installed?
101
- install_method = strip(
112
+ install_method = (
102
113
  case platform
103
114
  when :linux
104
115
  <<-MSG
@@ -107,7 +118,7 @@ Nokia's prebuilt binary at http://qt.nokia.com/downloads/
107
118
  MSG
108
119
  when :freebsd
109
120
  <<-MSG
110
- Install /usr/ports/devel/qmake4.
121
+ Install /usr/ports/www/qt4-webkit and /usr/ports/devel/qmake4.
111
122
  MSG
112
123
  when :darwin
113
124
  <<-MSG
@@ -115,39 +126,12 @@ sudo port install qt4-mac (for the patient) or downloading Nokia's pre-built bin
115
126
  at http://qt.nokia.com/downloads/
116
127
  MSG
117
128
  end
118
- )
129
+ ).strip
119
130
 
120
131
  $stderr.puts <<-MSG
121
- qmake is not installed. You'll need to install it to build #{@name}.
132
+ qmake is not installed or is not the right version (#{@name} needs Qt 4.7 or above).
133
+ You'll need to install it to build #{@name}.
122
134
  #{install_method} should do it for you.
123
- MSG
124
- end
125
- end
126
-
127
- def check_qmake_version!
128
- if !qt_47_or_better?
129
- install_method = strip(
130
- case platform
131
- when :linux
132
- <<-MSG
133
- sudo apt-get install libqt4-dev qt4-qmake on Debian-based systems, or downloading
134
- Nokia's prebuilt binary at http://qt.nokia.com/downloads/
135
- MSG
136
- when :freebsd
137
- <<-MSG
138
- Install /usr/ports/www/qt4-webkit.
139
- MSG
140
- when :darwin
141
- <<-MSG
142
- sudo port install qt4-mac (for the patient) or downloading Nokia's pre-built binary
143
- at http://qt.nokia.com/downloads/
144
- MSG
145
- end
146
- )
147
-
148
- $stderr.puts <<-MSG
149
- qmake is not version 4.7 or above (currently version #{qt_version}. You'll need to install version 4.7 or higher
150
- to build #{@name}. #{install_method} should do it for you.
151
135
  MSG
152
136
  end
153
137
  end
@@ -64,8 +64,6 @@ describe "jasmine-headless-webkit" do
64
64
  it "should not leave the page nor loop" do
65
65
  system %{bin/jasmine-headless-webkit -j spec/jasmine/leave_page/leave_page.yml --report #{report}}
66
66
  $?.exitstatus.should == 1
67
-
68
- report.should be_a_report_containing(2, 0, false)
69
67
  end
70
68
  end
71
69
 
@@ -14,3 +14,25 @@ describe 'HeadlessReporterResult', ->
14
14
 
15
15
  result = new HeadlessReporterResult('test', [ 'other', 'of', 'test' ])
16
16
  expect(result._findSpecLine().lineNumber).toEqual(10)
17
+
18
+ describe 'jasmine.HeadlessReporter', ->
19
+ reporter = null
20
+
21
+ beforeEach ->
22
+ reporter = new jasmine.HeadlessReporter()
23
+
24
+ it 'should stop running specs if there are errors reported', ->
25
+ # otherwise it gets really confusing!
26
+
27
+ suite = { finish: -> null }
28
+ spec = new jasmine.Spec("env", suite, "test")
29
+
30
+ spyOn(reporter, 'hasError').andReturn(true)
31
+ spyOn(spec, 'finish')
32
+ spyOn(suite, 'finish')
33
+
34
+ reporter.reportSpecStarting(spec)
35
+
36
+ expect(spec.finish).toHaveBeenCalled()
37
+ expect(suite.finish).toHaveBeenCalled()
38
+
@@ -1,3 +1,5 @@
1
+ # encoding: UTF-8
2
+
1
3
  require 'spec_helper'
2
4
  require 'jasmine/files_list'
3
5
  require 'fakefs/spec_helpers'
@@ -219,6 +221,7 @@ describe 'test', ->
219
221
  context 'yes', ->
220
222
  it 'should do something', ->
221
223
  "yes"
224
+ "PR.registerLangHandler(PR.createSimpleLexer([[\"com\",/^#[^\\n\\r]*/,null,\"#\"],[\"pln\",/^[\\t\\n\\r \\xa0]+/,null,\"\\t\\n\\r \xC2\\xa0\"],[\"str\",/^\"(?:[^\"\\\\]|\\\\[\\S\\s])*(?:\"|$)/,null,'\"']],[[\"kwd\",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\\s/,\n"
222
225
  SPEC
223
226
  end
224
227
 
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'qt/qmake'
3
3
  require 'rbconfig'
4
+ require 'rubygems/version'
4
5
 
5
6
  describe Qt::Qmake do
6
7
  describe '.make_installed?' do
@@ -64,29 +65,75 @@ describe Qt::Qmake do
64
65
  end
65
66
  end
66
67
 
67
- describe '.qt_47_or_better?' do
68
- subject { described_class }
69
-
68
+ describe '.best_qmake' do
70
69
  before do
71
- Qt::Qmake.stubs(:qt_version).returns(version)
70
+ Qt::Qmake.stubs(:get_exe_path).with('qmake-qt4').returns(path_one)
71
+ Qt::Qmake.stubs(:get_exe_path).with('qmake').returns(path_two)
72
+
73
+ Qt::Qmake.stubs(:qt_version_of).with(path_one).returns(Gem::Version.create(version_one))
74
+ Qt::Qmake.stubs(:qt_version_of).with(path_two).returns(Gem::Version.create(version_two))
72
75
  end
73
-
74
- context 'no version' do
75
- let(:version) { nil }
76
76
 
77
- it { should_not be_qt_47_or_better }
77
+ subject { described_class.best_qmake }
78
+
79
+ let(:path_one) { nil }
80
+ let(:path_two) { nil }
81
+ let(:version_one) { nil }
82
+ let(:version_two) { nil }
83
+
84
+ context 'nothing found' do
85
+ it { should be_nil }
78
86
  end
79
87
 
80
- context 'not better' do
81
- let(:version) { '4.6.0' }
88
+ context 'one found' do
89
+ let(:path_one) { 'one' }
90
+
91
+ context 'not good' do
92
+ let(:version_one) { '4.5' }
93
+
94
+ it { should be_nil }
95
+ end
96
+
97
+ context 'good' do
98
+ let(:version_one) { '4.7' }
82
99
 
83
- it { should_not be_qt_47_or_better }
100
+ it { should == path_one }
101
+ end
84
102
  end
85
103
 
86
- context 'better' do
87
- let(:version) { '4.7.0' }
104
+ context 'two found' do
105
+ let(:path_one) { 'one' }
106
+ let(:path_two) { 'two' }
107
+
108
+ context 'neither good' do
109
+ let(:version_one) { '4.5' }
110
+ let(:version_two) { '4.5' }
111
+
112
+ it { should be_nil }
113
+ end
114
+
115
+ context 'one good' do
116
+ let(:version_one) { '4.7' }
117
+ let(:version_two) { '4.5' }
118
+
119
+ it { should == path_one }
120
+ end
121
+
122
+ context 'both good' do
123
+ context 'one better' do
124
+ let(:version_one) { '4.7' }
125
+ let(:version_two) { '4.8' }
126
+
127
+ it { should == path_two }
128
+ end
129
+
130
+ context 'both same' do
131
+ let(:version_one) { '4.7' }
132
+ let(:version_two) { '4.7' }
88
133
 
89
- it { should be_qt_47_or_better }
134
+ it { should == path_one }
135
+ end
136
+ end
90
137
  end
91
138
  end
92
139
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine-headless-webkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,12 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-07-26 00:00:00.000000000Z
14
+ date: 2011-08-10 00:00:00.000000000 -04:00
15
+ default_executable:
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: jasmine-core
18
- requirement: &2156835500 !ruby/object:Gem::Requirement
19
+ requirement: &70920300 !ruby/object:Gem::Requirement
19
20
  none: false
20
21
  requirements:
21
22
  - - ~>
@@ -23,10 +24,10 @@ dependencies:
23
24
  version: 1.1.beta
24
25
  type: :runtime
25
26
  prerelease: false
26
- version_requirements: *2156835500
27
+ version_requirements: *70920300
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: coffee-script
29
- requirement: &2156835000 !ruby/object:Gem::Requirement
30
+ requirement: &70920050 !ruby/object:Gem::Requirement
30
31
  none: false
31
32
  requirements:
32
33
  - - ! '>='
@@ -34,10 +35,10 @@ dependencies:
34
35
  version: '2.2'
35
36
  type: :runtime
36
37
  prerelease: false
37
- version_requirements: *2156835000
38
+ version_requirements: *70920050
38
39
  - !ruby/object:Gem::Dependency
39
40
  name: rainbow
40
- requirement: &2156834620 !ruby/object:Gem::Requirement
41
+ requirement: &70919860 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
44
  - - ! '>='
@@ -45,10 +46,10 @@ dependencies:
45
46
  version: '0'
46
47
  type: :runtime
47
48
  prerelease: false
48
- version_requirements: *2156834620
49
+ version_requirements: *70919860
49
50
  - !ruby/object:Gem::Dependency
50
51
  name: multi_json
51
- requirement: &2156834160 !ruby/object:Gem::Requirement
52
+ requirement: &70919630 !ruby/object:Gem::Requirement
52
53
  none: false
53
54
  requirements:
54
55
  - - ! '>='
@@ -56,7 +57,7 @@ dependencies:
56
57
  version: '0'
57
58
  type: :runtime
58
59
  prerelease: false
59
- version_requirements: *2156834160
60
+ version_requirements: *70919630
60
61
  description: Run Jasmine specs headlessly
61
62
  email:
62
63
  - john@coswellproductions.com
@@ -76,6 +77,12 @@ files:
76
77
  - bin/jasmine-headless-webkit
77
78
  - dev-bin/hooks/pre-commit
78
79
  - dev-bin/install-hooks
80
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/ConsoleOutput.cpp
81
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/ConsoleOutput.h
82
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/Page.cpp
83
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/Page.h
84
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/Runner.cpp
85
+ - ext/jasmine-webkit-specrunner/HeadlessSpecRunner/Runner.h
79
86
  - ext/jasmine-webkit-specrunner/Info.plist
80
87
  - ext/jasmine-webkit-specrunner/extconf.rb
81
88
  - ext/jasmine-webkit-specrunner/specrunner.cpp
@@ -142,6 +149,7 @@ files:
142
149
  - spec/lib/jasmine/template_writer_spec.rb
143
150
  - spec/lib/qt/qmake_spec.rb
144
151
  - spec/spec_helper.rb
152
+ has_rdoc: true
145
153
  homepage: ''
146
154
  licenses: []
147
155
  post_install_message:
@@ -162,53 +170,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
170
  version: '0'
163
171
  requirements: []
164
172
  rubyforge_project: jasmine-headless-webkit
165
- rubygems_version: 1.8.6
173
+ rubygems_version: 1.6.2
166
174
  signing_key:
167
175
  specification_version: 3
168
176
  summary: Run Jasmine specs headlessly in a WebKit browser
169
- test_files:
170
- - spec/bin/jasmine-headless-webkit_spec.rb
171
- - spec/jasmine/click_button/click_button.js
172
- - spec/jasmine/click_button/click_button.yml
173
- - spec/jasmine/click_button/click_button_spec.js
174
- - spec/jasmine/coffeescript_error/coffeescript_error.yml
175
- - spec/jasmine/coffeescript_error/spec.coffee
176
- - spec/jasmine/coffeescript_error/src.coffee
177
- - spec/jasmine/console_log/console_log.js
178
- - spec/jasmine/console_log/console_log.yml
179
- - spec/jasmine/console_log/console_log_spec.js
180
- - spec/jasmine/failure/failure.js
181
- - spec/jasmine/failure/failure.yml
182
- - spec/jasmine/failure/failure_spec.js
183
- - spec/jasmine/filtered_failure/failure_spec.js
184
- - spec/jasmine/filtered_failure/filtered_failure.yml
185
- - spec/jasmine/filtered_failure/src.js
186
- - spec/jasmine/filtered_failure/success_spec.js
187
- - spec/jasmine/filtered_success/filtered_success.yml
188
- - spec/jasmine/filtered_success/src.js
189
- - spec/jasmine/filtered_success/success_one_spec.js
190
- - spec/jasmine/filtered_success/success_other_file.js
191
- - spec/jasmine/filtered_success/success_two_spec.js
192
- - spec/jasmine/filtered_success_with_console/filtered_success.yml
193
- - spec/jasmine/filtered_success_with_console/src.js
194
- - spec/jasmine/filtered_success_with_console/success_one_spec.js
195
- - spec/jasmine/filtered_success_with_console/success_two_spec.js
196
- - spec/jasmine/leave_page/leave_page.js
197
- - spec/jasmine/leave_page/leave_page.yml
198
- - spec/jasmine/leave_page/leave_page_spec.js
199
- - spec/jasmine/success/success.js
200
- - spec/jasmine/success/success.yml
201
- - spec/jasmine/success/success_spec.js
202
- - spec/jasmine/success_with_error/success_with_error.js
203
- - spec/jasmine/success_with_error/success_with_error.yml
204
- - spec/jasmine/success_with_error/success_with_error_spec.js
205
- - spec/javascripts/jasmine.headless-reporter_spec.coffee
206
- - spec/javascripts/support/jasmine.yml
207
- - spec/javascripts/support/jquery-1.6.2.min.js
208
- - spec/lib/jasmine/files_list_spec.rb
209
- - spec/lib/jasmine/headless/options_spec.rb
210
- - spec/lib/jasmine/headless/runner_spec.rb
211
- - spec/lib/jasmine/headless/task_spec.rb
212
- - spec/lib/jasmine/template_writer_spec.rb
213
- - spec/lib/qt/qmake_spec.rb
214
- - spec/spec_helper.rb
177
+ test_files: []