jasmine_selenium_runner 0.2.1 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c72efde02f61e3edfbd9b908dbc9b61bf7d31ea
4
- data.tar.gz: cb60cac460be62c9563be2ab87ab802393a42788
3
+ metadata.gz: 5b016f1e9bd01f01d14e6980aa2d6f986a09f567
4
+ data.tar.gz: 3f0debf2199c0051f7fdaa1735f7956d7b5f649c
5
5
  SHA512:
6
- metadata.gz: f119b0c6d31d03918b9bc59a6e6c037dac94ee4732d80c4a4d4c80d84b243f0fcf6a51190d6636006ad18e01bfd688dfeab30ecf13219be6696312a4845bf9cd
7
- data.tar.gz: de2708d84c3159b4362e3d6a883e39e99933ca6fd86a6daa175f7d79c7fe631a4d70c426e8b7163b7f1ae896f99347569d12c06501c4c3e2904844167c28fc93
6
+ metadata.gz: 0594693f2e44acc5f1b375a599d264fd014a34ad1311890856ffddfff123cadb4ec18d6387c4022ee5db5ede5fc5ad736a4976d4c368d8fb4728a613d5c46215
7
+ data.tar.gz: 43f7235d4cbec6f8dfac4218e0811550eb0dcfd69ea186554ef08e8fb6173ef81c472f0afa70e90de952fc47b744e8516f9bfaeb2a64a560be35da0f53618de1
data/.rspec CHANGED
@@ -1 +1,2 @@
1
1
  --color
2
+ --order=random
@@ -1,9 +1,10 @@
1
1
  before_script:
2
2
  - sh -e /etc/init.d/xvfb start
3
- - curl -L https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash
4
3
  script: DISPLAY=:99.0 bundle exec rake
4
+ addons:
5
+ sauce_connect: true
5
6
  rvm:
6
- - 2.0.0
7
+ - 2.1.0
7
8
  env:
8
9
  global:
9
10
  - secure: i8arxYVwMt/vp8a5RugpE+edkCg1G+wQ1WdCbdiKPhDZEcMh6f9vETvcsY9W94xY7yTBNSrZ+jNkz5ZQrGfiq1HllKxSjZBXv0pJ+wyxuFHl7hSib1OCzEImk0lHVryX7A7iO4u1GzZ+jmiVyKL7uEjD6CokphOpwnYpBln8jlg=
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'
4
+ gem 'jasmine', :git => 'https://github.com/jasmine/jasmine-gem.git'
5
+ gem 'jasmine-core', :git => 'https://github.com/jasmine/jasmine.git'
5
6
 
data/README.md CHANGED
@@ -86,6 +86,18 @@ which you'll want for SAUCE_USERNAME and SAUCE_ACCESS_KEY):
86
86
  - SAUCE_OS="Linux"
87
87
  - SAUCE_BROWSER_VERSION=''
88
88
 
89
+ ### Using with sauce connect locally
90
+
91
+ Sauce connect 4 now requires a path to the `sc` executable, so that needs to be provided if you want to use SauceLabs without a pre-existing tunnel.
92
+ In your jasmine_selenium_runner.yml, in the sauce section, you need to provide a `sauce_connect_path`.
93
+
94
+ ---
95
+ use_sauce: true
96
+ sauce:
97
+ sauce_connect_path: /my/path/to/sc
98
+
99
+ This configuration will only be used if no `tunnel_identifier` is provided.
100
+
89
101
  ### Using with a custom selenium server
90
102
 
91
103
  Create a jasmine_selenium_runner.yml in spec/javascripts/support/ with the following content:
@@ -16,7 +16,7 @@ module Jasmine
16
16
  wait_for_suites_to_finish_running
17
17
 
18
18
  formatter.format(get_results)
19
- formatter.done
19
+ formatter.done(run_details)
20
20
  ensure
21
21
  driver.quit
22
22
  end
@@ -32,6 +32,10 @@ module Jasmine
32
32
  driver.execute_script "return jsApiReporter && jsApiReporter.finished"
33
33
  end
34
34
 
35
+ def run_details
36
+ driver.execute_script "return jsApiReporter && jsApiReporter.runDetails"
37
+ end
38
+
35
39
  def ensure_connection_established
36
40
  started = Time.now
37
41
  until started? do
@@ -1,7 +1,7 @@
1
1
  module Jasmine
2
2
  module Runners
3
3
  class Selenium
4
- VERSION = "0.2.1"
4
+ VERSION = "2.4.0"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,6 @@
1
1
  require 'jasmine'
2
2
  require 'jasmine/runners/selenium'
3
+ require 'jasmine_selenium_runner/sauce_connect_configurer'
3
4
  require 'selenium-webdriver'
4
5
 
5
6
  module JasmineSeleniumRunner
@@ -57,8 +58,9 @@ module JasmineSeleniumRunner
57
58
 
58
59
  def sauce_webdriver(sauce_config)
59
60
  unless sauce_config['tunnel_identifier']
60
- require 'sauce/connect'
61
- Sauce::Connect.connect!
61
+ SauceConnectConfigurer.configure do |config|
62
+ config[:sauce_connect_4_executable] = sauce_config.fetch('sauce_connect_path')
63
+ end
62
64
  end
63
65
 
64
66
  username = sauce_config.fetch('username')
@@ -0,0 +1,12 @@
1
+ module JasmineSeleniumRunner
2
+ module SauceConnectConfigurer
3
+ def self.configure
4
+ require 'sauce'
5
+ require 'sauce/connect'
6
+ Sauce.config do |config|
7
+ yield config
8
+ end
9
+ Sauce::Connect.connect!
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # Jasmine Selenium Runner 2.4.0 Release Notes
2
+
3
+ ## Changes
4
+
5
+ * Support reporting for randomized runs
6
+ * Document how to use with sauce connect
7
+ * Support sauce connect 4
8
+
9
+ ------
10
+
11
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -89,4 +89,88 @@ describe "Configuring jasmine" do
89
89
  end
90
90
  end
91
91
  end
92
+
93
+ context 'configuring sauce labs' do
94
+ before do
95
+ allow(Selenium::WebDriver).to receive(:for) { mock_driver }
96
+ allow(Jasmine::Runners::Selenium).to receive(:new)
97
+ allow(JasmineSeleniumRunner::SauceConnectConfigurer).to receive(:configure).and_yield(sauce_config)
98
+ end
99
+
100
+ let(:sauce_thing) { double(:sauce_thing) }
101
+ let(:mock_driver) { double(:mock_driver) }
102
+ let(:sauce_config) { double(:sauce_config, :[]= => nil) }
103
+
104
+ context 'with an existing tunnel' do
105
+ it 'uses the tunnel identifier' do
106
+ runner = JasmineSeleniumRunner::ConfigureJasmine.new(double(:formatter), 'jasmine_url', {
107
+ 'use_sauce' => true,
108
+ 'sauce' => {
109
+ 'username' => 'sauce_user',
110
+ 'access_key' => 'sauce_key',
111
+ 'name' => 'sauce_name',
112
+ 'os' => 'sauce_os',
113
+ 'browser_version' => 'browser_version',
114
+ 'build' => 'build',
115
+ 'tags' => 'tags',
116
+ 'tunnel_identifier' => 'tunnel'
117
+ }
118
+ }) do |thing|
119
+
120
+ end
121
+
122
+ runner.make_runner
123
+
124
+ expect(JasmineSeleniumRunner::SauceConnectConfigurer).not_to have_received(:configure)
125
+ expect(Selenium::WebDriver).to have_received(:for).with(:remote,
126
+ :url => 'http://sauce_user:sauce_key@localhost:4445/wd/hub',
127
+ :desired_capabilities => {
128
+ :name => 'sauce_name',
129
+ :platform => 'sauce_os',
130
+ :version => 'browser_version',
131
+ :build => 'build',
132
+ :tags => 'tags',
133
+ :browserName => 'firefox',
134
+ 'tunnel-identifier' => 'tunnel'
135
+ }
136
+ )
137
+ end
138
+ end
139
+
140
+ context 'without an existing tunnel' do
141
+ it 'uses sauce connect' do
142
+ runner = JasmineSeleniumRunner::ConfigureJasmine.new(double(:formatter), 'jasmine_url', {
143
+ 'use_sauce' => true,
144
+ 'sauce' => {
145
+ 'username' => 'sauce_user',
146
+ 'access_key' => 'sauce_key',
147
+ 'name' => 'sauce_name',
148
+ 'os' => 'sauce_os',
149
+ 'browser_version' => 'browser_version',
150
+ 'build' => 'build',
151
+ 'tags' => 'tags',
152
+ 'sauce_connect_path' => '/path/to/sc'
153
+ }
154
+ })
155
+
156
+
157
+ runner.make_runner
158
+
159
+ expect(JasmineSeleniumRunner::SauceConnectConfigurer).to have_received(:configure)
160
+ expect(sauce_config).to have_received(:[]=).with(:sauce_connect_4_executable, '/path/to/sc')
161
+ expect(Selenium::WebDriver).to have_received(:for).with(:remote,
162
+ :url => 'http://sauce_user:sauce_key@localhost:4445/wd/hub',
163
+ :desired_capabilities => {
164
+ :name => 'sauce_name',
165
+ :platform => 'sauce_os',
166
+ :version => 'browser_version',
167
+ :build => 'build',
168
+ :tags => 'tags',
169
+ :browserName => 'firefox',
170
+ 'tunnel-identifier' => nil
171
+ }
172
+ )
173
+ end
174
+ end
175
+ end
92
176
  end
@@ -3,6 +3,7 @@ require 'tmpdir'
3
3
  require 'jasmine'
4
4
  require 'json'
5
5
  require 'net/http'
6
+ require 'bundler'
6
7
 
7
8
  describe Jasmine::Runners::Selenium do
8
9
  let(:file_helper) { FileHelper.new }
@@ -70,6 +71,33 @@ GEMFILE
70
71
  end
71
72
  end
72
73
 
74
+ it "reports random jasmine runs" do
75
+ in_temp_dir do |dir, project_root|
76
+ File.open(File.join(dir, 'Gemfile'), 'w') do |file|
77
+ file.write <<-GEMFILE
78
+ source 'https://rubygems.org'
79
+ gem 'jasmine_selenium_runner', :path => '#{project_root}'
80
+ gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'
81
+ gem 'jasmine-core', :git => 'https://github.com/pivotal/jasmine.git'
82
+ GEMFILE
83
+ end
84
+ Bundler.with_clean_env do
85
+ `bundle`
86
+ `bundle exec jasmine init`
87
+ `bundle exec jasmine examples`
88
+ yaml_file = File.join(dir, 'spec', 'javascripts', 'support', 'jasmine.yml')
89
+ jasmine_yaml = YAML.load_file(yaml_file)
90
+ jasmine_yaml['random'] = true
91
+ File.open(yaml_file, 'w') do |file|
92
+ file.write(YAML.dump(jasmine_yaml))
93
+ file.flush
94
+ end
95
+ ci_output = `bundle exec rake -E "require 'jasmine_selenium_runner'" --trace jasmine:ci`
96
+ expect(ci_output).to match(/Randomized with seed/)
97
+ end
98
+ end
99
+ end
100
+
73
101
  it "permits rake jasmine:ci task to be run using Sauce", :sauce => true do
74
102
  in_temp_dir do |dir, project_root|
75
103
  File.open(File.join(dir, 'Gemfile'), 'w') do |file|
@@ -99,6 +127,7 @@ sauce:
99
127
  - #{ENV['TRAVIS_RUBY_VERSION'] || RUBY_VERSION}
100
128
  - CI
101
129
  tunnel_identifier: #{ENV['TRAVIS_JOB_NUMBER'] ? %Q("#{ENV['TRAVIS_JOB_NUMBER']}") : nil}
130
+ sauce_connect_path: #{ENV['SAUCE_CONNECT_PATH']}
102
131
  os: "Windows 8"
103
132
  browser_version: 10
104
133
  YAML
@@ -4,7 +4,7 @@ require 'jasmine_selenium_runner'
4
4
  RSpec.configure do |config|
5
5
  config.before(:each, :sauce => true) do
6
6
  unless ENV["SAUCE_USERNAME"] && ENV["SAUCE_ACCESS_KEY"]
7
- pending "skipping sauce tests because SAUCE_USERNAME and SAUCE_ACCESS_KEY aren't set"
7
+ skip "skipping sauce tests because SAUCE_USERNAME and SAUCE_ACCESS_KEY aren't set"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine_selenium_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajan Agaskar
@@ -9,104 +9,104 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-29 00:00:00.000000000 Z
12
+ date: 2015-12-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rails
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>'
60
+ - - ">"
61
61
  - !ruby/object:Gem::Version
62
62
  version: '3.0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>'
67
+ - - ">"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: jasmine
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ~>
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
76
  version: '2.0'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ~>
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '2.0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: selenium-webdriver
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ~>
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
90
  version: '2.35'
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ~>
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
97
  version: '2.35'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: sauce-connect
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - '>='
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '>='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  description: Run your jasmine tests in a real live browser!
@@ -117,9 +117,9 @@ executables: []
117
117
  extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
- - .gitignore
121
- - .rspec
122
- - .travis.yml
120
+ - ".gitignore"
121
+ - ".rspec"
122
+ - ".travis.yml"
123
123
  - Gemfile
124
124
  - LICENSE
125
125
  - README.md
@@ -133,7 +133,9 @@ files:
133
133
  - lib/jasmine_selenium_runner/firebug/firebug-license.txt
134
134
  - lib/jasmine_selenium_runner/firebug/firebug.rb
135
135
  - lib/jasmine_selenium_runner/railtie.rb
136
+ - lib/jasmine_selenium_runner/sauce_connect_configurer.rb
136
137
  - lib/jasmine_selenium_runner/tasks/jasmine_selenium_runner.rake
138
+ - release_notes/2.4.0.md
137
139
  - spec/fixtures/after_all_failure_spec.js
138
140
  - spec/fixtures/contains_circular_references_spec.js
139
141
  - spec/fixtures/is_in_firefox_spec.js
@@ -151,17 +153,17 @@ require_paths:
151
153
  - lib
152
154
  required_ruby_version: !ruby/object:Gem::Requirement
153
155
  requirements:
154
- - - '>='
156
+ - - ">="
155
157
  - !ruby/object:Gem::Version
156
158
  version: '0'
157
159
  required_rubygems_version: !ruby/object:Gem::Requirement
158
160
  requirements:
159
- - - '>='
161
+ - - ">="
160
162
  - !ruby/object:Gem::Version
161
163
  version: '0'
162
164
  requirements: []
163
165
  rubyforge_project:
164
- rubygems_version: 2.0.3
166
+ rubygems_version: 2.4.5.1
165
167
  signing_key:
166
168
  specification_version: 4
167
169
  summary: Run your jasmine tests in a real live browser!