selenium-connect 1.3.0 → 1.3.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.
@@ -1,5 +1,38 @@
1
1
  require 'selenium-webdriver'
2
- require 'selenium-connect/selenium-connect'
3
2
  require 'selenium-connect/configuration'
4
3
  require 'selenium-connect/runner'
5
4
  require 'selenium-connect/server'
5
+
6
+ module SeleniumConnect
7
+ extend self
8
+
9
+ def configure
10
+ yield configuration
11
+ end
12
+
13
+ def configuration
14
+ @configuration = Configuration.new
15
+ end
16
+
17
+ attr_reader :server, :driver
18
+
19
+ def localhost?
20
+ @configuration.host == 'localhost'
21
+ end
22
+
23
+ def run
24
+ if localhost?
25
+ @server = Server.new(@configuration)
26
+ server.start
27
+ end
28
+ @driver = Runner.new(@configuration).driver
29
+ end
30
+
31
+ def finish
32
+ driver.quit
33
+ if localhost? then server.stop end
34
+ end
35
+
36
+ alias :start :run
37
+ alias :stop :finish
38
+ end
@@ -12,6 +12,7 @@ module SeleniumConnect
12
12
  @host = "localhost" unless host
13
13
  @port = "4444" unless port
14
14
  @browser = "firefox" unless browser
15
+ @log = false unless log
15
16
  end
16
17
  end
17
18
  end
@@ -2,8 +2,7 @@ require 'selenium/rake/server_task'
2
2
 
3
3
  Selenium::Rake::ServerTask.new(:server) do |t|
4
4
  t.version = :latest
5
-
6
5
  t.background
7
- t.log = '/Users/more/Dropbox/_dev/Arrgyle/selenium-connect/runner.out'
6
+ t.log = 'false'
8
7
  t.port = 4444
9
8
  end
@@ -1,36 +1,68 @@
1
1
  module SeleniumConnect
2
2
  class Runner
3
- attr_reader :driver, :configuration
3
+ class Firefox
4
+ attr_reader :config, :capabilities
4
5
 
5
- def initialize(configuration)
6
- @configuration = configuration
7
- @driver = initialize_driver
6
+ def initialize(config)
7
+ @config = config
8
+ set_profile
9
+ end
10
+
11
+ private
12
+
13
+ def get_profile
14
+ if config.profile_path
15
+ Selenium::WebDriver::Firefox::Profile.new config.profile_path
16
+ elsif config.profile_name
17
+ Selenium::WebDriver::Firefox::Profile.from_name config.profile_name
18
+ end
19
+ end
20
+
21
+ def set_profile
22
+ profile = get_profile
23
+ profile.assume_untrusted_certificate_issuer = false unless profile.nil?
24
+ @capabilities = Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
25
+ end
26
+
27
+ end #Firefox
28
+
29
+ class InternetExplorer
30
+ end #InternetExplorer
31
+ end #Runner
32
+ end #SeleniumConnect
33
+
34
+ module SeleniumConnect
35
+ class Runner
36
+ attr_reader :driver, :config
37
+
38
+ def initialize(config)
39
+ @config = config
40
+ @driver = init_driver
8
41
  end
9
42
 
10
43
  private
11
44
 
12
45
  def set_server_url
13
- "http://#{configuration.host}:#{configuration.port}/wd/hub"
46
+ "http://#{config.host}:#{config.port}/wd/hub"
14
47
  end
15
48
 
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
49
+ def init_driver
50
+ Selenium::WebDriver.for(
51
+ :remote,
52
+ :url => set_server_url,
53
+ :desired_capabilities => get_capabilities)
22
54
  end
23
55
 
24
- def set_profile
25
- profile = get_profile
26
- profile.assume_untrusted_certificate_issuer = false unless profile.nil?
27
- Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
56
+ def get_capabilities
57
+ case config.browser
58
+ when "firefox"
59
+ Firefox.new(config).capabilities
60
+ when "ie"
61
+ InternetExplorer.new(config).capabilities
62
+ else
63
+ puts "No valid browser specified"
64
+ end
28
65
  end
29
66
 
30
- def initialize_driver
31
- Selenium::WebDriver::Remote::Bridge.new(
32
- :url => set_server_url,
33
- :desired_capabilities => set_profile)
34
- end
35
- end
36
- end
67
+ end #Runner
68
+ end #SeleniumConnect
@@ -24,11 +24,16 @@ module SeleniumConnect
24
24
  "require 'selenium/rake/server_task'
25
25
 
26
26
  Selenium::Rake::ServerTask.new(:server) do |t|
27
- #{"t.version = :latest" unless configuration.jar}
28
- #{if configuration.jar then "t.jar = '#{configuration.jar}'" end}
27
+ #{
28
+ if configuration.jar
29
+ "t.jar = '#{configuration.jar}'"
30
+ else
31
+ "t.version = :latest"
32
+ end
33
+ }
29
34
  t.background
30
- t.log = '#{configuration.log ? configuration.log : "false"}'
31
- t.port = #{configuration.port ? configuration.port : "4444"}
35
+ t.log = '#{configuration.log}'
36
+ t.port = #{configuration.port}
32
37
  end"
33
38
  end
34
39
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'selenium-connect'
3
- s.version = '1.3.0'
3
+ s.version = '1.3.1'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ['Dave Haeffner']
6
6
  s.email = ['dave@arrgyle.com']
@@ -1,8 +1,10 @@
1
1
  require 'selenium-connect'
2
2
 
3
- describe SeleniumConnect do
3
+ describe "Acceptance Tests" do
4
4
 
5
- let(:google) { Google.new(SeleniumConnect.start) }
5
+ let(:google) { Google.new(SeleniumConnect.start) }
6
+ let(:driver) { SeleniumConnect.start }
7
+ let(:quit) { SeleniumConnect.finish }
6
8
 
7
9
  context "Common" do
8
10
  it "logging", :wip => true do
@@ -21,7 +23,7 @@ describe SeleniumConnect do
21
23
  SeleniumConnect.configure do end
22
24
  google.visit
23
25
  google.page_title.should include("Google")
24
- SeleniumConnect.finish
26
+ quit
25
27
  end
26
28
 
27
29
  it "localhost" do
@@ -30,13 +32,13 @@ describe SeleniumConnect do
30
32
  end
31
33
  google.visit
32
34
  google.page_title.should include("Google")
33
- SeleniumConnect.finish
35
+ quit
34
36
  end
35
37
 
36
- it "profile name" do
38
+ it "profile name", :wip => true do
37
39
  pending "requires machine setup to run, and need a public example"
38
40
  SeleniumConnect.configure do |c|
39
- c.profile_name = "YourProfileName"
41
+ c.profile_name = "nt50_ic_egroup"
40
42
  end
41
43
  end
42
44
 
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.3.0
4
+ version: 1.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -74,10 +74,9 @@ files:
74
74
  - lib/selenium-connect/configuration.rb
75
75
  - lib/selenium-connect/rake.task
76
76
  - lib/selenium-connect/runner.rb
77
- - lib/selenium-connect/selenium-connect.rb
78
77
  - lib/selenium-connect/server.rb
79
78
  - selenium-connect.gemspec
80
- - spec/basic_spec.rb
79
+ - spec/acceptance_spec.rb
81
80
  homepage: https://github.com/arrgyle/selenium-connect
82
81
  licenses:
83
82
  - MIT
@@ -1,33 +0,0 @@
1
- module SeleniumConnect
2
- extend self
3
-
4
- def configure
5
- yield configuration
6
- end
7
-
8
- def configuration
9
- @configuration = Configuration.new
10
- end
11
-
12
- attr_reader :server, :driver
13
-
14
- def localhost?
15
- @configuration.host == 'localhost'
16
- end
17
-
18
- def run
19
- if localhost?
20
- @server = Server.new(@configuration)
21
- server.start
22
- end
23
- @driver = Runner.new(@configuration).driver
24
- end
25
-
26
- def finish
27
- driver.quit
28
- if localhost? then server.stop end
29
- end
30
-
31
- alias :start :run
32
- alias :stop :finish
33
- end