ams_layout 0.0.3 → 0.0.4

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: 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
-