selenium-connect 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *.lock
1
2
  *.swp
2
3
  profiles/
3
4
  *.jar
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- #selenium-connect
2
- ===============
1
+ #selenium-connect [![Code Climate](https://codeclimate.com/github/arrgyle/selenium-connect.png)](https://codeclimate.com/github/arrgyle/selenium-connect)
3
2
 
4
3
  This library aims to make configuring and running your Selenium tests against a Selenium Server simple for both local and remote execution.
5
4
 
@@ -11,7 +10,7 @@ SeleniumConnect.configure do |c|
11
10
  c.host = "localhost"
12
11
  c.port = "4444"
13
12
  c.browser = "firefox"
14
- c.profile_path = "#{Dir.pwd}/profiles/your_custom_firefox_profile"
13
+ c.profile_path = "#{Dir.pwd}/profiles/your_custom_firefox_profile" # or c.profile_name = "profile"
15
14
  end
16
15
 
17
16
  @driver = SeleniumConnect.start
@@ -1,17 +1,17 @@
1
1
  module SeleniumConnect
2
2
  class Configuration
3
- attr_accessor :host, :port, :browser, :profile_path, :version, :background, :log, :jar
3
+ attr_accessor :host, :port, :browser, :profile_path, :profile_name, :version, :background, :log, :jar
4
4
 
5
5
  def initialize
6
- set_sensible_defaults
6
+ defaults
7
7
  end
8
8
 
9
9
  private
10
10
 
11
- def set_sensible_defaults
12
- host = "localhost" unless host
13
- port = "4444" unless port
14
- browser = "firefox" unless browser
11
+ def defaults
12
+ @host = "localhost" unless host
13
+ @port = "4444" unless port
14
+ @browser = "firefox" unless browser
15
15
  end
16
16
  end
17
17
  end
@@ -4,6 +4,6 @@ require 'selenium/rake/server_task'
4
4
  t.version = :latest
5
5
 
6
6
  t.background
7
- t.log = false
7
+ t.log = '/Users/more/Dropbox/_dev/Arrgyle/selenium-connect/runner.out'
8
8
  t.port = 4444
9
9
  end
@@ -1,7 +1,3 @@
1
- #browser type determines server type
2
- #browser type determines config params
3
- #initializer *should* be the same
4
-
5
1
  module SeleniumConnect
6
2
  class Runner
7
3
  attr_reader :driver, :configuration
@@ -17,9 +13,17 @@ module SeleniumConnect
17
13
  "http://#{configuration.host}:#{configuration.port}/wd/hub"
18
14
  end
19
15
 
16
+ def get_profile
17
+ if configuration.profile_path
18
+ Selenium::WebDriver::Firefox::Profile.new configuration.profile_path
19
+ elsif configuration.profile_name
20
+ Selenium::WebDriver::Firefox::Profile.from_name configuration.profile_name
21
+ end
22
+ end
23
+
20
24
  def set_profile
21
- profile = Selenium::WebDriver::Firefox::Profile.new(configuration.profile_path)
22
- profile.assume_untrusted_certificate_issuer = false
25
+ profile = get_profile
26
+ profile.assume_untrusted_certificate_issuer = false unless profile.nil?
23
27
  Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
24
28
  end
25
29
 
@@ -12,10 +12,7 @@ module SeleniumConnect
12
12
  attr_reader :server, :driver
13
13
 
14
14
  def localhost?
15
- case @configuration.host
16
- when "localhost" then true
17
- else false
18
- end
15
+ @configuration.host == 'localhost'
19
16
  end
20
17
 
21
18
  def run
@@ -27,7 +27,7 @@ module SeleniumConnect
27
27
  #{"t.version = :latest" unless configuration.jar}
28
28
  #{if configuration.jar then "t.jar = '#{configuration.jar}'" end}
29
29
  t.background
30
- t.log = #{configuration.log ? configuration.log : "false"}
30
+ t.log = '#{configuration.log ? configuration.log : "false"}'
31
31
  t.port = #{configuration.port ? configuration.port : "4444"}
32
32
  end"
33
33
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'selenium-connect'
3
- s.version = '1.2.1'
3
+ s.version = '1.3.0'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ['Dave Haeffner']
6
6
  s.email = ['dave@arrgyle.com']
@@ -15,4 +15,7 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_dependency 'selenium-webdriver'
17
17
  s.add_dependency 'rake'
18
+
19
+ s.add_development_dependency 'rspec'
20
+
18
21
  end
@@ -0,0 +1,67 @@
1
+ require 'selenium-connect'
2
+
3
+ describe SeleniumConnect do
4
+
5
+ let(:google) { Google.new(SeleniumConnect.start) }
6
+
7
+ context "Common" do
8
+ it "logging", :wip => true do
9
+ SeleniumConnect.configure do |c|
10
+ c.log = "#{Dir.pwd}/runner.out"
11
+ end
12
+ google.visit
13
+ SeleniumConnect.finish
14
+ File.read('runner.out').empty?.should == false
15
+ File.delete('runner.out')
16
+ end
17
+ end
18
+
19
+ context "Firefox" do
20
+ it "blank config" do
21
+ SeleniumConnect.configure do end
22
+ google.visit
23
+ google.page_title.should include("Google")
24
+ SeleniumConnect.finish
25
+ end
26
+
27
+ it "localhost" do
28
+ SeleniumConnect.configure do |c|
29
+ c.host = "localhost"
30
+ end
31
+ google.visit
32
+ google.page_title.should include("Google")
33
+ SeleniumConnect.finish
34
+ end
35
+
36
+ it "profile name" do
37
+ pending "requires machine setup to run, and need a public example"
38
+ SeleniumConnect.configure do |c|
39
+ c.profile_name = "YourProfileName"
40
+ end
41
+ end
42
+
43
+ it "profile path" do
44
+ pending "need to add a profile to the repo"
45
+ SeleniumConnect.configure do |c|
46
+ c.profile_path = "#{Dir.pwd}/path/to/profile"
47
+ end
48
+ end
49
+
50
+ end #Context//Firefox
51
+ end #Describe
52
+
53
+ class Google
54
+ attr_accessor :page
55
+
56
+ def initialize(driver)
57
+ @page = driver
58
+ end
59
+
60
+ def visit
61
+ page.get "http://www.google.com"
62
+ end
63
+
64
+ def page_title
65
+ page.getTitle
66
+ end
67
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-19 00:00:00.000000000 Z
12
+ date: 2013-05-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: selenium-webdriver
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  description:
47
63
  email:
48
64
  - dave@arrgyle.com
@@ -53,9 +69,7 @@ files:
53
69
  - .gitignore
54
70
  - .rvmrc
55
71
  - Gemfile
56
- - Gemfile.lock
57
72
  - README.md
58
- - example.rb
59
73
  - lib/selenium-connect.rb
60
74
  - lib/selenium-connect/configuration.rb
61
75
  - lib/selenium-connect/rake.task
@@ -63,6 +77,7 @@ files:
63
77
  - lib/selenium-connect/selenium-connect.rb
64
78
  - lib/selenium-connect/server.rb
65
79
  - selenium-connect.gemspec
80
+ - spec/basic_spec.rb
66
81
  homepage: https://github.com/arrgyle/selenium-connect
67
82
  licenses:
68
83
  - MIT
data/Gemfile.lock DELETED
@@ -1,28 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- selenium-connect (1.2.0)
5
- rake
6
- selenium-webdriver
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- childprocess (0.3.9)
12
- ffi (~> 1.0, >= 1.0.11)
13
- ffi (1.6.0)
14
- multi_json (1.7.2)
15
- rake (10.0.4)
16
- rubyzip (0.9.9)
17
- selenium-webdriver (2.31.0)
18
- childprocess (>= 0.2.5)
19
- multi_json (~> 1.0)
20
- rubyzip
21
- websocket (~> 1.0.4)
22
- websocket (1.0.7)
23
-
24
- PLATFORMS
25
- ruby
26
-
27
- DEPENDENCIES
28
- selenium-connect!
data/example.rb DELETED
@@ -1,12 +0,0 @@
1
- require 'selenium-connect'
2
-
3
- SeleniumConnect.configure do |c|
4
- c.host = "localhost"
5
- c.port = "4444"
6
- end
7
-
8
- @driver = SeleniumConnect.start
9
-
10
- @driver.get "http://www.google.com"
11
-
12
- SeleniumConnect.finish