ams_layout 0.0.3 → 0.0.4

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: f2d60bd2aadadbf95fa9452710ccaf583f84d830
4
- data.tar.gz: 9bd0d333fcbb23bf21ad104be44159fd8e80ebf6
3
+ metadata.gz: 8906bc93ff556d7794f047aed24a6ffa22547f24
4
+ data.tar.gz: ccd43a30fb9ddfa0895df01b3852ae66880e7226
5
5
  SHA512:
6
- metadata.gz: 19256e6f2d51c0c4aaf1a9f347a653a4d4e494369498182899f7dee3aaaef1d6ad1513f067201ce6f8bfda067e677ee21ddc6a8468b8e45307a349ce757232ed
7
- data.tar.gz: 1068525e4c0c91248cb76a4787d2bf2017d9f8d69d85fd7eeb6db8d9e053094d981fc98a9267069464cdf3254cc672ff49a3952a289a48f8fd54bbd3198aa552
6
+ metadata.gz: 1eccda6b0a96f2bb2e906dc9c829af00b648b958f6f22202322c634d2f933eb42f1b5b67fe4fc6349915e9fc1e25cbe83af3253cb3c93c753dda7c1c575b7bb9
7
+ data.tar.gz: cc70f886bfacc1aa83a31be4f54ed98f686bcee0430e090f11c1231d330b0a12b076e23e154304d30d300d6a52441c48bd4727ef13d4fa7d253a9b18f0646bc6
data/.gitignore CHANGED
@@ -11,8 +11,7 @@ lib/bundler/man
11
11
  pkg
12
12
  rdoc
13
13
  spec/reports
14
- test/tmp
15
- test/version_tmp
14
+ /test/
16
15
  tmp
17
16
  *.bundle
18
17
  *.so
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
  require 'rake/clean'
4
4
 
5
- require_relative 'lib/ams_layout/browser_loader'
5
+ require 'browser_loader'
6
6
 
7
7
  RSpec::Core::RakeTask.new(:spec)
8
8
 
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency 'ktutils'
30
30
  spec.add_runtime_dependency 'page-object'
31
31
  spec.add_runtime_dependency 'nokogiri'
32
+ spec.add_runtime_dependency 'browser_loader'
32
33
  end
@@ -189,7 +189,7 @@ end # AmsLayout
189
189
  AmsLayout.configure
190
190
 
191
191
  require "ams_layout/version"
192
- require "ams_layout/browser_loader"
192
+ require "browser_loader"
193
193
  require 'ams_layout/client'
194
194
  require "ams_layout/parser"
195
195
  require "ams_layout/writer"
@@ -7,12 +7,42 @@
7
7
  # Website:: http://ktechsystems.com
8
8
  ##############################################################################
9
9
 
10
- require 'ams_layout/browser_loader'
10
+ require 'browser_loader'
11
11
  require 'ams_layout/pages/login_page'
12
12
  require 'ams_layout/pages/prequal_detail'
13
13
 
14
14
  module AmsLayout
15
15
  module Pages
16
+ class BrowserInst
17
+ @@browser = nil
18
+
19
+ ##
20
+ # Return a configured browser object. If a browser has already been created,
21
+ # this returns the existing browser.
22
+ #
23
+ # An +at_exit+ proc is created to close the browser when the program exits.
24
+
25
+ def self.browser
26
+ if ! open_browser?
27
+ BrowserLoader::Factory.browser_timeout = AmsLayout.configuration.browser_timeout
28
+ @@browser = BrowserLoader::Factory.build
29
+
30
+ at_exit do
31
+ unless ! open_browser?
32
+ # Make sure every webdriver window is closed.
33
+ @@browser.windows.each { |w| w.close rescue nil }
34
+ @@browser.close rescue nil
35
+ end
36
+ end
37
+ end
38
+
39
+ @@browser
40
+ end
41
+
42
+ def self.open_browser?
43
+ return (! @@browser.nil? && @@browser.exist? )
44
+ end
45
+ end
16
46
 
17
47
  ##
18
48
  # Return a configured browser object. If a browser has already been created,
@@ -21,16 +51,7 @@ module AmsLayout
21
51
  # An +at_exit+ proc is created to close the browser when the program exits.
22
52
 
23
53
  def browser
24
- if @browser.nil?
25
- BrowserLoader.user_data_path = AmsLayout.configuration.user_data_path
26
- @browser = BrowserLoader.init_browser AmsLayout.configuration.browser_timeout
27
-
28
- at_exit do
29
- @browser.close unless @browser.nil?
30
- end
31
- end
32
-
33
- @browser
54
+ BrowserInst.browser
34
55
  end
35
56
  end # Pages
36
57
  end # AmsLayout
@@ -1,3 +1,3 @@
1
1
  module AmsLayout
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -11,6 +11,7 @@ describe AmsLayout::Client do
11
11
  if test_pwd.nil?
12
12
  fail "Set AMS_TEST_USER_PWD to the 'test' user's password in an environment variable"
13
13
  end
14
+ test_pwd
14
15
  }
15
16
 
16
17
  let(:layout_yml) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ams_layout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff McAffee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-18 00:00:00.000000000 Z
11
+ date: 2015-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: browser_loader
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description: Generate AMS Portal control field configuration data
140
154
  email:
141
155
  - jeff@ktechsystems.com
@@ -156,7 +170,6 @@ files:
156
170
  - ams_layout.gemspec
157
171
  - bin/ams_layout
158
172
  - lib/ams_layout.rb
159
- - lib/ams_layout/browser_loader.rb
160
173
  - lib/ams_layout/cli.rb
161
174
  - lib/ams_layout/cli/config.rb
162
175
  - lib/ams_layout/cli/generate.rb
@@ -1,99 +0,0 @@
1
- ##############################################################################
2
- # File:: browser_loader.rb
3
- # Purpose:: Create and initialize a browser with Watir
4
- #
5
- # Author:: Jeff McAffee 06/21/2014
6
- # Copyright:: Copyright (c) 2014, kTech Systems LLC. All rights reserved.
7
- # Website:: http://ktechsystems.com
8
- ##############################################################################
9
-
10
- require 'watir-webdriver'
11
- require 'ktutils/os'
12
-
13
-
14
- ###
15
- # To start/stop Chrome auto-update, see http://blog.doofix.com/how-to-stop-google-chrome-from-automatic-update/
16
- #
17
- # Regedit instructions (in case URL breaks):
18
- #
19
- # Set value HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\UpdateDefault to 0 to turn off auto-update.
20
- # Set to 1 to turn on auto-update, or delete the value (UpdateDefault).
21
- #
22
-
23
- ###
24
- # Chromedriver updates can be downloaded from http://chromedriver.storage.googleapis.com/index.html
25
- #
26
-
27
- class BrowserLoader
28
- def self.init_browser timeout = 60
29
- if ENV["BROWSER"] == "ie"
30
- browser = Watir::Browser.new :ie
31
- elsif ENV["BROWSER"] == "ff" || ENV["BROWSER"] == "firefox"
32
- browser = Watir::Browser.new :firefox
33
- else
34
- # Specify chrome browser capabilities.
35
- caps = Selenium::WebDriver::Remote::Capabilities.chrome
36
- caps['chromeOptions'] = {'binary' => chromium_exe }
37
- #caps['chromeOptions'] = {'binary' => '/opt/bin/test/chrome-27.0.1453.94.exe' }
38
- # See http://peter.sh/experiments/chromium-command-line-switches/ for a list of available switches.
39
- # See https://sites.google.com/a/chromium.org/chromedriver/capabilities for details on setting ChromeDriver caps.
40
-
41
- # NOTE: The only way I've found to stop the EULA from being displayed is to
42
- # use the user-data-dir switch and point to a dir where chrome can put the
43
- # data indicating it (EULA) has already been accepted.
44
-
45
- # ignore-certificate-errors: Ignores certificate-related errors.
46
- # disable-popup-blocking: Disable pop-up blocking.
47
- # disable-translate: Allows disabling of translate from the command line to assist with automated browser testing
48
- # no-first-run: Skip First Run tasks, whether or not it's actually the First Run.
49
- # log-level: Sets the minimum log level. Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
50
- # test-type: As of v35, chrome displays a message bar stating
51
- # "You are using an unsupported command-line flag: --ignore-certifcate-errors. Stability and security will suffer."
52
- # --test-type is supposed to disable the display of the error.
53
- switches = %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate --no-first-run --log-level=3 --test-type]
54
- switches << "--user-data-dir=#{user_data_dir}"
55
-
56
- # Create a client so we can adjust the timeout period.
57
- client = Selenium::WebDriver::Remote::Http::Default.new
58
-
59
- # Set the browser timeout. Default is 60 seconds.
60
- client.timeout = timeout
61
-
62
- # switches and caps modify chrome (or chromium) browser,
63
- # service_args modifys chromedriver.
64
- browser = Watir::Browser.new :chrome,
65
- :switches => switches,
66
- :http_client => client,
67
- :service_log_path => user_data_dir + '/chromedriver.out',
68
- :desired_capabilities => caps
69
- end
70
-
71
- browser
72
- end
73
-
74
- def self.user_data_path= path
75
- @user_data_path = path
76
- end
77
-
78
- def self.user_data_dir
79
- # Store chrome profile at chrome-data.
80
- #user_data_dir = File.absolute_path(File.join(__FILE__, '../../../chrome-data'))
81
- user_data_dir = File.absolute_path(@user_data_path)
82
-
83
- fail "Chromium user-data directory does not exist at #{user_data_dir}" unless File.exist?(user_data_dir)
84
-
85
- user_data_dir
86
- end
87
-
88
- def self.chromium_exe
89
- if Ktutils::OS.windows?
90
- # Downloaded from http://chromium.woolyss.com/
91
- # Package: Chromium Package (32-bit)
92
- # Version: 37.0.2011.0 (272392)
93
- chromium_exe = File.absolute_path(File.join(__FILE__, '../../bin/chrome-win32/chrome.exe'))
94
- else
95
- chromium_exe = `which chromium-browser`.chomp
96
- end
97
- end
98
- end # BrowserLoader
99
-