jasmine_selenium_runner 0.2.1 → 2.4.0

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.
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!