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
|
-
##
|
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
|
-
##
|
49
|
+
## Server behind a Firewall
|
46
50
|
|
47
|
-
|
48
|
-
to make
|
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,
|
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
|
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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:
|