jasmine-selenium-sauce 1.2.0 → 1.2.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/README.md CHANGED
@@ -8,6 +8,10 @@ Rake tasks for running your Jasmine suite via a local browser or through SauceLa
8
8
  Can be used in your CI builds to enable running Jasmine suites. The Jasmine results are reported using RSpec to make
9
9
  parsing easy.
10
10
 
11
+ # Requirements
12
+
13
+ Only requires that you have Jasmine available as a route in your application for testing. Recommend using [Jasminerice](https://github.com/bradphelan/jasminerice)
14
+
11
15
  # Installation
12
16
 
13
17
  Add this line to your application's Gemfile:
@@ -16,7 +20,7 @@ Add this line to your application's Gemfile:
16
20
 
17
21
  # Running Jasmine via SauceLabs
18
22
 
19
- ## Remote Jasmine Server
23
+ ## Server with Public IP
20
24
 
21
25
  When you want to run a Jasmine suite hosted on a publicly available host. Uses Selenium to connect to SauceLabs, and
22
26
  requests a browser instance to run your suite.
@@ -42,11 +46,11 @@ SAUCE_BROWSER=chrome
42
46
  ```
43
47
  - Which browser SauceLabs should use to run your tests
44
48
 
45
- ## Local Jasmine Server behind a Firewall
49
+ ## Server behind a Firewall
46
50
 
47
- When you want to run a Jasmine suite hosted on an internal host. Uses [LocalTunnel](http://progrium.com/localtunnel/)
48
- to make localhost available through a tunnel. It then uses Selenium to connect to SauceLabs, and requests a
49
- browser instance to run your suite.
51
+ This when you want to run a Jasmine suite hosted on an internal host. It will use [LocalTunnel](http://progrium.com/localtunnel/)
52
+ to make your system available through a public tunnel to a specific port. Selenium is then used to connect to SauceLabs, and request a
53
+ browser instance to run your suite. The tunnel is then closed down.
50
54
 
51
55
  rake jasmine:local_sauce
52
56
 
@@ -71,6 +75,13 @@ SAUCE_BROWSER=chrome
71
75
 
72
76
  ## Optional Configuration
73
77
 
78
+ ### Localtunnel
79
+
80
+ ```shell
81
+ SSH_KEY_PATH=~/home/me/id_rsa.pub
82
+ ```
83
+ - Path to a public key to be used by LocalTunnel
84
+
74
85
  ### RSpec
75
86
 
76
87
  ```shell
@@ -84,6 +95,8 @@ See [sauce_config.rb](https://github.com/darend/jasmine-selenium-sauce/tree/mast
84
95
 
85
96
  # Running Jasmine via local browser
86
97
 
98
+ This task is used when you want to run Jasmine using a local browser such as Firefox, Chrome, etc.
99
+
87
100
  rake jasmine:browser
88
101
 
89
102
  ## Required Environment Variables
@@ -27,7 +27,7 @@ module Jasmine
27
27
 
28
28
  def self.run_local_via_saucelabs(local_sauce_config, reporter = RspecReporter.new)
29
29
  puts "Establishing tunnel to port #{local_sauce_config.jasmine_server_port}"
30
- tunnel = LocalTunnel::Tunnel.new(local_sauce_config.jasmine_server_port,nil)
30
+ tunnel = LocalTunnel::Tunnel.new(local_sauce_config.jasmine_server_port,local_sauce_config.ssh_key)
31
31
  response = tunnel.register_tunnel
32
32
  tunnel.start_tunnel do
33
33
  ENV['JASMINE_URL'] = "http://#{response['host']}/jasmine"
@@ -13,6 +13,18 @@ module Jasmine
13
13
  def jasmine_server_port
14
14
  ENV['JASMINE_PORT']
15
15
  end
16
+
17
+ def ssh_key_path
18
+ ENV['SSH_KEY_PATH']
19
+ end
20
+
21
+ def ssh_key
22
+ if !ssh_key_path.nil? && File.exists?(ssh_key_path)
23
+ return File.read(ssh_key_path)
24
+ else
25
+ return nil
26
+ end
27
+ end
16
28
  end
17
29
  end
18
30
  end
@@ -1,7 +1,7 @@
1
1
  module Jasmine
2
2
  module Sauce
3
3
  module Ci
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.1"
5
5
  end
6
6
  end
7
7
  end
@@ -58,4 +58,37 @@ describe Jasmine::Sauce::CI::LocalSauceConfig do
58
58
  it_behaves_like 'sauce config' do
59
59
  let(:under_test) { Jasmine::Sauce::CI::LocalSauceConfig.new }
60
60
  end
61
+
62
+ describe "#ssh_key_path" do
63
+ let(:path) { "path/to/my/key.pub" }
64
+ before { ENV['SSH_KEY_PATH'] = path }
65
+ after { ENV.delete('SSH_KEY_PATH') }
66
+ its(:ssh_key_path) { should eq(path)}
67
+ end
68
+
69
+ describe "#ssh_key" do
70
+ context "when key path is nil" do
71
+ before { ENV['SSH_KEY_PATH'] = nil }
72
+ its(:ssh_key) { should be_nil }
73
+ end
74
+
75
+ context "when key path is set" do
76
+ let(:path) { "path/to/my/key.pub" }
77
+ before { ENV['SSH_KEY_PATH'] = path }
78
+
79
+ context "when file exists" do
80
+ before { File.stub(:exists?).and_return(false) }
81
+ its(:ssh_key) { should be_nil }
82
+ end
83
+
84
+ context "when file does not exist" do
85
+ let(:content) { "content of file" }
86
+ before do
87
+ File.stub(:exists?).and_return(true)
88
+ File.stub(:read).and_return(content)
89
+ end
90
+ its(:ssh_key) { should eq(content) }
91
+ end
92
+ end
93
+ end
61
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine-selenium-sauce
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-01 00:00:00.000000000Z
12
+ date: 2012-12-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fakeweb
16
- requirement: &70134878450920 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70134878450920
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: guard
27
- requirement: &70134878450500 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70134878450500
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: guard-rspec
38
- requirement: &70134878450080 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70134878450080
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: json_pure
49
- requirement: &70134878449660 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70134878449660
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: rake
60
- requirement: &70134878449240 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70134878449240
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rb-fsevent
71
- requirement: &70134878448820 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70134878448820
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: vcr
82
- requirement: &70134878448400 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *70134878448400
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: localtunnel
93
- requirement: &70134878447900 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '0.3'
99
134
  type: :runtime
100
135
  prerelease: false
101
- version_requirements: *70134878447900
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '0.3'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: rspec
104
- requirement: &70134878447400 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: '2.0'
110
150
  type: :runtime
111
151
  prerelease: false
112
- version_requirements: *70134878447400
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '2.0'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: selenium-webdriver
115
- requirement: &70134878446940 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ! '>'
@@ -120,7 +165,12 @@ dependencies:
120
165
  version: 2.0.0
121
166
  type: :runtime
122
167
  prerelease: false
123
- version_requirements: *70134878446940
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>'
172
+ - !ruby/object:Gem::Version
173
+ version: 2.0.0
124
174
  description: Rake tasks for running your Jasmine suite via a local browser or through
125
175
  SauceLabs
126
176
  email:
@@ -188,15 +238,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
238
  - - ! '>='
189
239
  - !ruby/object:Gem::Version
190
240
  version: '0'
241
+ segments:
242
+ - 0
243
+ hash: -3685222905046460747
191
244
  required_rubygems_version: !ruby/object:Gem::Requirement
192
245
  none: false
193
246
  requirements:
194
247
  - - ! '>='
195
248
  - !ruby/object:Gem::Version
196
249
  version: '0'
250
+ segments:
251
+ - 0
252
+ hash: -3685222905046460747
197
253
  requirements: []
198
254
  rubyforge_project:
199
- rubygems_version: 1.8.15
255
+ rubygems_version: 1.8.24
200
256
  signing_key:
201
257
  specification_version: 3
202
258
  summary: Rake tasks for running your Jasmine suite via a local browser or through
@@ -222,4 +278,3 @@ test_files:
222
278
  - spec/support/reporter_fake.rb
223
279
  - spec/support/sample_results.rb
224
280
  - spec/vcr_helper.rb
225
- has_rdoc: